Bean的基础装配有三种装配方法:
一:隐式Bean发现机制:
Bean的发现机制基于组件扫描和自动装配两种机制。
组件扫描:
1.在要创建Bean的类上添加注解@Component,然后它生成的Bean ID 会以类名按一定的规则命名,如:类名是FirstClass,则生成的Bean ID 是 firstClass。如果想要自定义Bean Id,使用@component(“自定义的Bean ID”)
2.在配置类中(用@Configuation注解的类为配置类)添加注解@ComponentScan,然后就会扫描配置类所在包及其子包中带有注解@Component的类,然后为它生成Bean。可显示配置要扫描的包,就是@ComponentScan(basePackages={“包名”,“包名”…..}),但是这种方法是类型不安全的,还有另一种方法,@ComponentScan(basePackageClasses={类名1.class,类名2.class……}),这样就会扫描包含类名1和类名2的包。
自动装配:
1.在要注入Bean的方法前添加注解@Autowired实现自动装配。
2.方法可以包括构造器,Set方法等等的任何方法。都可以用@Autowired注解。
二:通过java配置类装配Bean:
1.创建java配置类——用@Configuration注解的类。
2.创建装配Bean的方法,用@Bean注解该方法,例如要装配FirstClass类:
@Configuration
public class FirstConfig
{
@Bean
public FirstClass firstClass()
{
return new FirstClass();
}
}
所创建的BeanId就是你创建该Bean的方法名。
创建需要注入的Bean:假设也是FirstClass,不过要注入SecondClass Bean
@Configuration
public class FirstConfig
{
@Bean
public FirstClass firstClass(SecondClass secondClass("这个是BeanID名"))
{
return new FirstClass(secondClass);
}
}
三:用XML文件实现Bean的装配:
<Bean id="自定义Bean Id" class="要创建Bean的类名">
<Constructor-arg ref="需要注入的Bean Id" /> //构造器注入Bean
<Constructor-arg value="字面量" /> //构造器注入字面量,就是非String之类的
<Constructor-arg>
<list/set等等>
<value>字面量的值</value>
<value>字面量的值</value> //构造器注入字面量集合
</list/set等等>
</Constructor-arg>
<Constructor-arg>
<list/set等等>
<ref:bean="Bean Id" />
<ref:bean="Bean Id" /> //构造器注入Bean集合
</list/set等等>
</Constructor-arg>
<property name="set方法上的参数名" ref="要注入的Bean Id" /> //在set方法注入bean。
<property name="set方法上的参数名" value="要注入的字面量" //在set方法注入字面量。
<property>
<list/set等等>
<value>集合中的字面量</value> //set方法中注入字面量集合
</list/set等等>
</property>
<property>
<list/set等等>
<ref bean="集合中的Bean" /> //set方法中注入Bean集合
<list/set等等>
</property>
</Bean>
注意:Spring中Bean默认是单例的,即多次注入,实际是注入同一个Bean实例。
本文介绍了Spring框架中Bean的三种装配方式:隐式Bean发现机制、通过Java配置类装配Bean及用XML文件实现Bean的装配。文章详细解释了每种方式的具体操作步骤。
1170

被折叠的 条评论
为什么被折叠?



