1. 使用 JavaConfig 实现配置
-
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 文件中的 <bean/>,方法名是 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()); } }
-