Spring中主要的Bean裝配方式可以分爲 基於XML文件的裝配和Annotation註解裝配兩種:
1.裝配Bean
1.1 XML文件裝配:
XML文件的根元素是beans,包含多個bean子元素。
每個bean子元素 包含id、name、class、scope(分別是Bean的唯一標識、Bean的名稱供getBean獲取、Bean的具體實現類、Bean實例的作用域)等屬性。
若Bean沒指定name和id屬性,則Spring會將class值當做id使用;
基於XML配置文件裝配Bean又可以分爲:構造器實例化、靜態工廠實例化、實例工廠實例化 3 種方式(構造器最常用):
構造器實例化demo:
靜態工廠實例化demo:
實例工廠實例化demo:
1.2 Annotation裝配
(避免XML文件裝配Bean,導致XML文件過於臃腫)
@Component:用於表示Spring中的一個Bean,比較泛化;
@Repository: 用於將數據訪問層Dao層的類標識爲一個Bean;
@Service: 用於將服務層Service層的類標識爲一個Bean;
@Controller:用於將控制層Controller的類標識爲一個Bean;
@Autowired:用於對Bean的屬性注入(藉助於構造函數、對應屬性的setter方法);
@Resource: 與Autowired作用一致,有name、type兩個屬性,分別解析爲Bean的實例名稱和Bean的實例數據類型;
demo:
2. Bean的屬性注入:
2.1 通過配置Bean的autowire屬性,自動注入:
2.2 添加子節點
通過在XML配置文件 對應bean節點添加子節點constructor-arg或property來注入Bean的屬性:
3.Bean的作用域
通過Bean 的 scope屬性來配置bean的作用域,常用的作用域:singleton、prototype: