Spring总结(一)

Bean的自动装配

  • 经过@ComponentScan扫描发现将要装配到ApplicationContext中的Bean@ComponentScan中若是没有写包名,那么默认扫描当前修饰类同包名。经过扫扫描装配的类有一个默认ID,就是把类的名字首字母小写的类名。
  • 经过@Autowire知足Bean的依赖,依赖的地方能够写接口,可是若是在容器中没有实现类或者有多个实现类的时候,报出装配异常。
  • @Configuration用来修饰一个类,表示这个类是用来生成Bean用的,若是这个类上有ComponentScan,则自动装配。若是这个类的方法有@Bean修饰,就成为第二种Bean的装配方式:Java代码生成Bean;
  • 要自动装配的类要保留默认构造函数,须要装配的属性使用@Autowire来装配。

Java代码装配Bean

  • 在一些状况下,第三方的类库中的类想要归入到容器管理,这种状况自动装配是实现不了的。只能采用显示装配。显示装配分为两种,一种是Java代码装配,一种是Xml装配。JavaConfig文件使用Java类书写,不含有任何的业务逻辑,只是装配Bean的配置信息,通常在项目中分开到单独的包中书写。
  • 使用@Configuration标注一个类成为配置类。
    使用@Bean修饰一个方法来表示在容器中实例化一个类。在被@Bean修饰的方法中,能够使用任何一种方式构建一个Bean并返回,返回的对象实例会被注册到容器中。默认状况下,装配的Bean的ID是方法的名字。

使用Xml配置:

基本配置

<beans>
<bean id="person" class="com.example.Person" />
</beans>
  • 其中bean属性的ID能够省略,会自动生成一个全类名#No样子的ID名称。
    和JavaConfig相比,上面这种形式的xml中的Bean是Spring调用默认构造函数生成的。

也能够使用下面的构造函数的参数的方式来进行装配Bean:

<bean id="cdPlayer" class="soundsystem.CDPlayer">
<constructor-arg ref="compactDisc" />
</bean>
  • 在一个Spring环境的应用中,Bean装配方式能够混合。在进行依赖注入的时候,Autoware并不区分Bean的构造来源。
相关文章
相关标签/搜索