码迷,mamicode.com
首页 > 其他好文 > 详细

自动装配

时间:2019-11-28 01:32:41      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:nts   context   auto   pack   wired   out   can   service   style   

1 概述

  • Spring利用依赖注入(DI),完成对IOC容器中各个组件的依赖关系的赋值。

 

2 @AutoWired注解&&@Qualifier注解&&@Primary注解

2.1 @AutoWired注解

  • 示例:
@Service
public class BookService {
    @Autowired
    private BookDao bookDao;

    public void print(){
        System.out.println(bookDao);
    }
}
  • 默认情况下,是按照类型去容器中寻找对应的组件。相当于
applicationContext.getBean(BookDao.class);
  • 如果有多个相同类型的组件,再将属性名作为组件的id去容器中寻找。相当于
applicationContext.getBean("bookDao");

 

  • 示例:
  • BookDao.java
package com.sunxiaping.dao;

import org.springframework.stereotype.Repository;

@Repository
public class BookDao {
}
  • BooService.java
package com.sunxiaping.serivice;

import com.sunxiaping.dao.BookDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class BookService {
    @Autowired
    private BookDao bookDao;

    public void print(){
        System.out.println(bookDao);
    }
}
  • BookController.java
package com.sunxiaping.controller;

import com.sunxiaping.serivice.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

@Controller
public class BookController {
    @Autowired
    private BookService bookService;

    public void print(){
        System.out.println(bookService);
    }
}
  • SpringConfig.java
package com.sunxiaping.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;


@ComponentScan(value = "com.sunxiaping")
@Configuration //告诉Spring这是一个配置类
public class SpringConfig {


}
  • 测试:
package com.sunxiaping.test;


import com.sunxiaping.config.SpringConfig;
import com.sunxiaping.controller.BookController;
import com.sunxiaping.serivice.BookService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class SpringTest {

    @Test
    public void test() {
        ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);

        BookController bookController = context.getBean(BookController.class);

        bookController.print();

        BookService bookService = context.getBean(BookService.class);

        bookService.print();

    }

}

2.1 @Qualifier注解

 

自动装配

标签:nts   context   auto   pack   wired   out   can   service   style   

原文地址:https://www.cnblogs.com/xuweiweiwoaini/p/11946403.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!