6.使用Java的方式配置spring
一.基于Java的方式配置spring
-
我们可以完全不使用Spring的xml方式去配置,而是全部由Java的方式配置!
-
JavaConfig是Spring的一个子项目,在Spring4后成为了核心功能
1.实体类User.java
-
@Component:bean注入<bean id="user" class="ustc.wzh.pojo.User"></bean>
-
@Value("xxx"):属性值注入<property name="name" value="小王"/>
1 //bean注入<bean id="user" class="ustc.wzh.pojo.User"></bean> 2 @Component 3 public class User { 4 5 private String name; 6 7 public String getName() { 8 return name; 9 } 10 11 //属性值注入<property name="name" value="小王"/> 12 @Value("小王") 13 public void setName(String name) { 14 this.name = name; 15 } 16 17 @Override 18 public String toString() { 19 return "User{" + 20 "name='" + name + '\'' + 21 '}'; 22 } 23 }
2.Java配置类
(1)appConfig.java:
-
@Configuration:相当于配置的beans.xml文件,将其注册到容器给Spring托管,它本身就是一个@Component
-
@ComponentScan("ustc.wzh.pojo"):指定要扫描的包
-
@Import(appConfig2.class):导入其他配置文件,参数为配置文件的Java类class对象
1 //@Configuration相当于配置的beans.xml文件,将其注册到容器给Spring托管,它本身就是一个@Component 2 @Configuration 3 @ComponentScan("ustc.wzh.pojo") 4 //@Import用于导入其他配置文件 5 @Import(appConfig2.class) 6 public class appConfig { 7 8 //注册一个bean,相当于一个bean标签<bean id="user" class="ustc.wzh.pojo.User"></bean> 9 //方法名为id属性值,返回类型为class属性值 10 @Bean 11 public User user() { 12 return new User(); 13 } 14 }
(2)appConfig2.java:
1 @Configuration 2 public class appConfig2 { 3 }
3.测试类
-
AnnotationConfigApplicationContext:完全使用Java的方式配置Spring,我们只能通过AnnotationConfigApplicationContext来获得容器,通过配置类的class对象加载
1 public class MyTest { 2 3 public static void main(String[] args) { 4 5 //完全使用Java的方式配置Spring,我们只能通过AnnotationConfigApplicationContext来获得容器,通过配置类的class对象加载 6 ApplicationContext context = new AnnotationConfigApplicationContext(appConfig.class); 7 User user = (User) context.getBean("user"); 8 9 System.out.println(user.getName()); 10 } 11 }