以往咱們在使用spring的時候都是用一堆<>這個玩意(尖括號)的xml文件來配置spring,在xml裏都是"xxx"來配置須要的內容信息,在""雙引號內編譯期可不會檢查到你有沒有寫錯,或者是定義了多個相同id的bean,還有就是你修改了Java文件,忘記修改xml配置文件,也不會給你提醒的。結果就是沒多少開發者對xml有好感。因此今天我要說的就是使用Java的方式來配置spring。spring
1.在定義spring配置文件以前還要告訴spring須要掃描的基礎包(這個在xml裏配置啦):編程
<context:component-scan base-package="此處填寫你的基礎包名" />component
2.定義一個至關於xml文件的class:xml
@Configuration開發
public class A { //這就至關於一個spring的xml 文件了,有木有很簡單io
//定義一個bean編譯
@Beanclass
public B b() { //方法名就是bean的id基礎
return new B();配置
}
}
3.對於那些使用構造方法注入的方式以下:
@Bean
public C c() {
return new C(b()); //構造方法注入,有木有很簡單,徹底和Java編程思想統一了
}
4.set方法注入:
@Bean
public D d() {
D d = new D();
d.setB(b()); //這樣就好啦
return d;
}
也行你會說,這樣聲明方法來裝配bean的引用,是否是每次獲取的bean引用都是惟一的啊。這裏有必要說一下,這裏並非調用方法名,若是真的是調用方法名的話,返回的必定是多例的。而spring可不是(默認單例,只返回一個bean引用),經過使用@Bean註解b(),c(),d()方法,會告訴spring咱們但願該方法定義的bean要被註冊進spring的應用上下文中。所以,在其餘的bean的聲明方法中引用這個方法時,spring都會攔截該方法的調用,並嘗試在應用上下文中查找該bean,而不是讓方法建立一個新實例。