一、@ComponentScan
1.
@Configuration //說明此類是配置文件 @ComponentScan //開啟掃描,會掃描當前類的包及其子包 public class CDPlayerConfig { }
2.
@ComponentScan(basePackages={"soundsystem", "video"})//掃描多個包 public class CDPlayerConfig { }
3.
@ComponentScan(basePackageClasses={CDPlayer.class,AAA.class})//指定要掃描的類 public class CDPlayerConfig { }
?
二、@Autowired
1.可以在構造方法中用
@Component public class CDPlayer implements MediaPlayer {private CompactDisc cd;@Autowired//@Injectpublic CDPlayer(CompactDisc cd) {this.cd = cd;}public void play() {cd.play();}}
2.在set方法中
@Autowired public void setCompactDisc(CompactDisc cd) { this.cd = cd; }
3.在一般的方法中
@Autowired public void insertDisc(CompactDisc cd) { this.cd = cd; }
4.如果依賴不是必需的,可設置屬性
@Autowired(required=false) public CDPlayer(CompactDisc cd) { this.cd = cd; }
5.可用@Inject替代
1 package soundsystem; 2 import javax.inject.Inject; 3 import javax.inject.Named; 4 @Named 5 public class CDPlayer { 6 ... 7 @Inject 8 public CDPlayer(CompactDisc cd) { 9 this.cd = cd; 10 } 11 ... 12 }
?