使用java方式配置spring
我们现在要完全不使用Spring的xml配置了,全权交给Java来做
JavaConfig是Spring的一个子项目,在Spring之后变成了核心功能
User.java
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
//这里这个注解的意思就是说这个类被spring接管,注册到容器中
@Component
public class User {
private String name;
public String getName() {
return name;
}
@Value("xiaotan")//注入值
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}
MyConfig.java 配置类
import com.txy.pojo.User;
import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration//这个也会被spring容器托管,注册到容器中,他本来也是一个@Component
// @Configration代表这是一个配置类,就和我们之前的beans.xml
public class MyConfig {
//注册一个bean就相当于我们之前写的bean标签
//这个方法的名字就相当于bean标签中的id属性
//这个方法的返回值就相当于bean标签中的class属性
@Bean
public User getUser(){
return new User();//返回要注入到bean的对象
}
}
MyTest.java
import com.txy.config.MyConfig;
import com.txy.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class MyTest {
public static void main(String[] args) {
//如果完全使用了配置类方式去做,我们就只能通过AnnotationConfig上下文来获取容器,通过配置class对象加载
ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
User user = (User) context.getBean("getUser");
System.out.println(user.getName());
}
}
这种纯Java的配置方式,在SpringBoot中广泛运用