如何不依靠XML配置文件而使用JavaConfig来实现对Spring的配置。
@Configration:
用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或者AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器(应用上下文)。
下面做一个小案例:
写一个实体类User:
package com.cyf.pojo;
import org.springframework.beans.factory.annotation.Value;
public class User {
private String name;
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
@Value("xxx") //给属性写一个值
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
Configration类:
@Configuration
@ComponentScan("com.cyf.pojo") //相当于<context:component-scan base-package="com.cyf.pojo"/>
public class Configration {
@Bean
public User getUser(){
return new User();
}
}
测试一下:
public class MyTest {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(Configration.class);
User getUser = (User) context.getBean("getUser");
System.out.println(getUser.getName());
}
}
@Configuation相当于是<Beans></Beans>
@Bean相当于是<Bean></Bean>
@ComponentScan("com.xxx") 相当于<context:component-scan base-package="com.xxx"/>
注意点:
- @Configuration不可以是final类型;
- @Configuration不可以是匿名类;
- 嵌套的configuration必须是静态类。