<b>spring 配置bean可选方案
- 在java中进行显式配置
- 隐式的bean发现机制和自动装配
<b>自动化装配bean
- 组件扫描:spring自动发现<b>应用上下文</b>(如HttpRequest等外部的变量,类似environment)中
下面我们使用一个animal的例子
建立一个接口
public interface IAnimals {
void say();
}
```
####实现以下接口
><b>@Component 注解表示表示该类回座位组件类,并告知spring 要为这个类创建bean
但是由于组件扫描默认是不启用的,所以我们还要显式的配置下spring,命令spring去扫描带有这个注解的类,并创建bean
所以我们需要创建一个config.class文件
```
@Component
public class Dog implements IAnimals {
public void say() {
System.out.println("wang....");
}
}
```
注意需要配置一下pom.xml ,加一下依赖的包
####pom.xml 中需要的依赖
```
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
```
####建立AnimalsConfig.class文件,命令spring去扫描带有component注解的文件
<b>注意:这个文件需要和Dog.class放在一个包中,因为只能扫描同一个包下的类</b>
>//自动扫描这个包下带有component注解的类
```
@Configuration
@ComponentScan
public class AnimalsConfig {
}
```
####测试
>SpringJUnit4ClassRunner:自动创建spring上下文
ContextConfiguration:加载配置
Autowired:bean注入
```
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes =AnimalsConfig.class)
public class TestSpring {
@Autowired
private Dog dog1;
@Test
public void dogSay(){
dog1.say();
}
}
```