一.基于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 }