JavaConfig 是 Spring 项目的一个子项目,Spring 4 后成为核心功能。
注意:
@Bean 只写在方法上,返回的是一个对象,但一般不获取已经在容器中的对象。@Bean 可以用于通过方法获取数据库连接池 Connection 这种对象。实现配置案例
/**
* TODO
* 用户类
* @author why
* @since 2021/7/5 15:51
*/
// 说明这个实体类注册到 Spring 中了
@Component
public class User {
// 为属性注入值
@Value("why")
public String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
// 重载
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}
配置类
/**
* TODO
* 配置类
* @author why
* @since 2021/7/5 16:14
*/
// 本身就是一个 @Component,说明此类也注册到 Spring 中了
// 相当于 beans.xml,说明此类是一个配置类
@Configuration
// 扫描包,使此包内的所有注解有效
@ComponentScan("com.why.pojo")
// 引入其他配置
@Import(WhyConfig.class)
public class MyConfig {
// 相当于 XML 文件中的 ,方法名是 id 属性,返回值是 class 属性
@Bean
public User getUser(){
return new User(); // 返回要注入到 bean 的对象
}
}
测试类
/**
* TODO
* 测试类
* @author why
* @since 2021/7/5 16:28
*/
public class MyTest {
public static void main(String[] args) {
// 通过注解获得上下文
ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
User user = (User) context.getBean("getUser");
System.out.println(user.getName());
}
}