-002-@ComponentScan@Autowired的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了-002-@ComponentScan@Autowired的用法相关的知识,希望对你有一定的参考价值。

一、@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
  //@Inject
  public 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 }

 

以上是关于-002-@ComponentScan@Autowired的用法的主要内容,如果未能解决你的问题,请参考以下文章