javascript
【Spring实战4】04---装配Bean(自动装配)
主要內容:
- 聲明Bean
- 構造器注入和Setter方法注入
- 裝配Bean
- 控制bean的創建和銷毀
Spring裝配Bean的3種機制
- 在XML中進行顯式配置
- 在Java中進行顯式配置
- 隱式的bean發現機制和自動裝配
1、自動化裝配Bean,
組件掃描:spring會自動發現應用上下文所創建的Bean
自動化裝配:Spring自動滿足bean之間的依賴
例:CD需要插入Cd播放器中,那么cd才可以播放或者或者說注入,以spring編寫
定義Cd的概念,實現CompactDisc接口
package nh.spring.ioc.beans;/*** Created by niuh on 11/2/2016.*/ public interface CompactDisc {void play(); }Cd可以有很多實現類,比如某人的某個專輯,用@Component注解完成實現類
package nh.spring.ioc.beans;import org.springframework.stereotype.Component;/*** Created by niuh on 11/2/2016.*/@Component public class sgtPappers implements CompactDisc {private String title = "nice!!!!!!!";private String artist = "heng";@Overridepublic void play() {System.out.print("title is " + title + " by " + artist);} }@Component注解,表面該類是個組件類,告知Spring要為這個類自動創建bean,不過默認組件掃描是不啟用的,利用@ComponentScan啟用組件掃描
package nh.spring.ioc.beans;import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration;/*** Created by niuh on 11/2/2016.**/@Configuration @ComponentScan public class CdPlayConfig { }?
整理一下,類CdPlayConfig在實例化時,通過java定義的spring裝配規則,@ComponentScan注解在Spring中啟用組件掃描,默認掃描與配置類相同的包,以及子包。查找所有帶有@Component注解的類,這樣就能找到CompactDisc,并為其創建一個Bean,完成組件掃描與自動裝配。
?
在上面代碼中Spring應用上下文會為Bean自動分配一個id,規則為首字母小寫,如果期望可以自定義id,則如下:
@Component("myId")
也可以使用java依賴注入中提供@Named設置ID
@Named("myId")
通過ComponentScan的basePackages屬性設置自動掃描的包
@ComponentScan(basePackages = "nh.spring.ioc")
?
最后通過注解為bean實現自動裝配
package nh.spring.ioc.beans;import org.springframework.beans.factory.annotation.Autowired;/*** Created by niuh on 11/2/2016.*/ public class CDplay implements MediaPlayer {private CompactDisc cd;@Autowiredpublic CDplay(CompactDisc cd) {this.cd = cd;}@Overridepublic void play() {cd.play();} }使用Spring應用上下文尋找匹配摸個bean需求的其他bean,例子中表面Spring創建Cdplay時,會通過構造器來進行實例化并要找到一個CompactDisc類型的bean;
?
轉載于:https://www.cnblogs.com/hylinux/p/6023850.html
總結
以上是生活随笔為你收集整理的【Spring实战4】04---装配Bean(自动装配)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: devstack 安装trove new
- 下一篇: Office365邮箱Imap迁移步骤