Spring注入Bean的幾種方式
通過注解注入Bean
使用xml檔案,一個一個的注入,就例如下面這樣
xml掃描包的方式
通過注解注入的一般形式
般情況下,注入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去自動裝配它。