Spring实战第四版笔记-(2)装配Bean

一、Spring配置的可选方案  

  创建应用对象之间协作关系的行为通常称为装配(wiring),这也是依赖注入(DI)的本质。Spring装配容器最常见有三种方法:

  1、在XML中进行显式配置;

  2、在Java中进行显式配置(JavaConfig);

  3、隐式的bean发现机制和自动装配(基于注解)。

  Spring的配置风格是可以互相搭配的,所以你可以选择使用XML装配一些bean,使用Spring基于Java的配置(JavaConfig)来装配另一些bean,而将剩余的bean让Spring去自动发现。即便如此,我的建议是尽可能地使用自动配置的机制。显示配置越少越好。当必须要显示配置bean的时候(比如有些源码不是由你来维护的,而当你需要为这些代码配置bean的时候),我推荐使用类型安全并且比XML更加强大的JavaConfig。最后,只有当你想要使用便利的XML命名空间,并且在JavaConfig中没有同样的实现时,才应该使用XML。Spring框架的核心是Spring容器。

二、自动化装配Bean(隐式的bean发现机制和自动装配)

  Sprign从两个角度来实现自动化装配:

  1、组件扫描(component scanning):Spring会自动发现应用上下文中创建的bean。

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

  组件扫描和自动装配组合在一起就能发挥出强大的威力,它们能够将你的显示配置降低到最少(组件扫描需要去显示的开启)。

三、一些注解:

  @Configuration 配置注解,告诉Spring这个类为配置类。

  @Component("Id") 组件注解,这个注解会告知Spring去为该类创建bean,Id除非特殊声明否则将使用默认的。

  @ComponentScan 组件扫描注解,通常配置在配置类中,声明对某个类(@ComponentScan(basePackageClasses={Class1.class,Class2.class}))或某个包(@ComponentScan(basePackages={"package1","package2"}))中的组件进行扫描生成bean加入到容器中。

  @Autowired 自动装载,根据引用类型进行装载。该注解不仅能用在构造方法上还能用在Setter方法上,如:

      

  @ImportResource 在JavaConfig导入XML的配置,如:@ImportResource("classpath:cd-config.xml")

  @Import JavaConfig导入其他的JavaConfig,可以一次性导入多个,如:@Import({CDPlayerConfig.class,CDConfig.class})

  XML可以使用<import resource = "cd-config.xml" /> 导入其他的XML配置,导入JavaConfig的配置需要使用<bean class = "soundpackage.CDConfig" />,目前没有其他熟知的元素能够用来将Java配置导入到XML配置中。

 

四、Bean的生命周期

  

               

 

posted @ 2018-11-05 15:51  像风抓不住  阅读(165)  评论(0)    收藏  举报