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 }

猜你喜欢

转载自www.cnblogs.com/zhihaospace/p/12324586.html
今日推荐