Spring注入Bean的几种方式
通过注解注入Bean
使用xml文件,一个一个的注入,就例如下面这样
<bean id="bean" class="beandemo.Bean" />
xml扫描包的方式
<context:component-scan base-package="com.company.beandemo"/>
通过注解注入的一般形式
般情况下,注入Bean有一个最直白,最易懂的方式去实现注入
public class MyBean{
}
//创建一个class配置文件
@Configuration
public class MyConfiguration{
//将一个Bean交由Spring进行管理
@Bean
public MyBean myBean(){
return new MyBean();
}
}
与xml有一点不同,这里在Test中,实例化的不再是ClassPathXmlApplicationContext,而是获取的AnnotationConfigApplicationContext实例。
ApplicationContext context = new AnnotationConfigApplicationContext(MyConfiguration.class);
MyBean myBean = cotext.getBean("myBean",MyBean.class);
System.out.println("myBean = " + myBean);
上面的代码中MyBean也就是我们需要Spring去管理的一个Bean,他只是一个简单的类。而MyConfiguration中,我们首先用@Configuration注解去标记了该类,这样标明该类是一个Spring的一个配置类,在加载配置的时候会去加载他。
在MyConfiguration中我们可以看到有一个方法返回的是一个MyBean的实例,并且该方法上标注着@Bean的注解,标明这是一个注入Bean的方法,会将下面的返回的Bean注入IOC。
通过构造方法注入Bean
通过set方法注入Bean
通过属性去注入Bean
@Component
public class MyBeanProperty {
@Autowired
private AnotherBean anotherBeanProperty;
@Override
public String toString() {
return "MyBeanProperty{" +
"anotherBeanProperty=" + anotherBeanProperty +
'}';
}
}
使用AnotherBean这个实例对象,我们可以通过@AutoWired去自动装配它。