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;}// 重载@Overridepublic 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 属性@Beanpublic 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());} }
-