dadda

 

 

 

它提供了三种主要的装配机制:测试

XML中进行显式配置。ui

Java中进行显式配置。spa

隐式的bean发现机制和自动装配。设计

 

 

 

2.2 自动化装配bean3d

 

2.2.1 建立可被发现的bean,并装配component

 概述:xml

  若是Spring可以进行自动化装配的话,那何苦还要显式地将这些bean装配在一块儿呢?blog

  Spring从两个角度来实现自动化装配:接口

  组件扫描(component scanning):Spring会自动发现应用上下文中所建立的beanci

  自动装配(autowiring):Spring自动知足bean之间的依赖。

  设计理念:@Component注解+@Autowired+接口  利用Java的接口的多肽和Spring的自动装配配合对有依赖的代码组件进行合理的解耦。

 

 1. 扫描设置:

  方式1@ComponentScan+@Configuration注解:默认会扫描与配置类相同的包。由于CDPlayerConfig类(配置     类)

      位于soundsystem包中,所以Spring将会扫描这个包以及这个包下的全部子包,查找带有@Component注解的类。

 

  @ComponentScan(basePackages={“pack1”,”pack2”})

  @ComponentScan(basePackageClasses={“Class1.class”,”Class2.class”})

  例子:

  

  

   

 

  方式2XML <context:component-scan base-package=“”>

 

 2. 为组件扫描的bean命名:

  方式1:默认Spring会根据类名为其指定一个ID,将类名的第一个字母变为小写 相似于 financialService

  方式2:  @Component(“financialService”)

  方式3:Java依赖注入规范(Java Dependency Injection)中所提供的@Named注解  (不多用)

    

 3. 自动装配

  @Autowired注解

  1.用在构造器上

    

  2.用在属性的Setter方法上

    

   

  3.用在属性上

    

   4.无论是构造器、Setter方法仍是其余的方法,Spring都会尝试知足方法参数上所声明的依赖。假

     若有且只有一个bean匹配依赖需求的话,那么这个bean将会被装配进来。

   5.@Autowired的required属性设置为false:没有匹配的bean,不会抛出异常。

  

  4.显式配置

    1.Java

      1.建立JavaConfig配置类,为其添加@Configuration注解

      2.在JavaConfig中声明bean,咱们须要编写一个方法,这个方法会建立所需类型的实例,而后

         给这个方法添加@Bean注解。

    2.XML

      1. 建立一个XML文件,而且要以<beans>元素为根

        2. 声明一个简单的<bean>

         

    

 

 

 

 

 

 

 

 

 

测试:

@RunWith(SpringJUnit4ClassRunner):在测试开始的时候自动建立Spring的应用上下文。

@ContextConfiguration(classes=“配置类.class或者xml路径)  会告诉它须要怎么加载配置

相关文章
相关标签/搜索