Spring Boot中Bean管理
Spring Boot 由于没有XML文件,所以所有的Bean管理都放入在一个配置类中实现。
配置类就是类上具有@Configuration的类。这个类就相当于之前的applicationContext.xml
1 新建配置类
com.dudu.config.MyConfig , 规范都是放入到config文件夹中。
注意:配置类要有@Configuration,方法要有@Bean
@Configuration
public class MyConfig {
//访问权限修饰符没有强制要求,一般是protected
//返回值就是注入到Spring容器中实例类型。
// 方法名没有强制要求,相当于<bean >中id属性。
@Bean
protected User getUser(){
User user = new User();
user.setId(1L);
user.setName("张三");
return user;
}
//自定义bean名称
@Bean("user2")
protected User getUser2(){
User user = new User();
user.setId(2L);
user.setName("李四");
return user;
}
}
如果Spring容器中存在同类型的Bean通过Bean的名称获取到Bean对象。或结合@Qualifier使用
@SpringBootTest
public class TestGetBean {
@Autowired
@Qualifier("user2")
private User user;
@Test
public void testGetUser(){
System.out.println(user);
}
}
在配置类的方法中通过方法参数让Spring容器把对象注入。
//自定义bean名称
@Bean("user1")
public User getUser(){
User user = new User();
user.setId(2L);
user.setName("李四");
return user;
}
@Bean
//可以直接从方法参数中取到。
public People getPeople(User user1){
People p = new People();
p.setUser(user1);
return p;
}