Version: Next

Spring配置类

info

干掉applicationContext.xml

完全使用java的方式配置Spring

JavaConfig时Spring的一个子项目,在Spring4之后,它成为了一个核心功能

AppConfig类

新建maven模块,spring-07-appconfig,新建一个包com.bsx.config

新建一个类名字随便

@Configuration

用来将一个类标记为配置类,相当于applicationContext

@Bean

用来注解被@Configuration注解的类下的方法

  • @Bean("xxx")用来指定bean id
  • @Bean -> 此时注解的方法名就是bean id
  • User.java

    @Data
    public class User {
    @Value("我的名字")
    private String name;
    }
  • AppConfig.java

    @Configuration
    public class AppConfig {
    @Bean("user")
    public User getUser(){
    return new User();
    }
    }
  • 测试

    @Test
    public void testAppConfig(){
    ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
    User user = context.getBean("user", User.class);
    System.out.println(user);
    }

@Component + @ComponentScan

  • @Component加在User类上
    • @Component("id") 用来指定bean id , 默认为类名小写
  • @ComponentScan("com.bsx")加载配置类上,开启包扫描
  • User.java

    @Data
    @Component
    public class User {
    @Value("我的名字")
    private String name;
    }
  • AppConfig.java

    @Configuration
    @ComponentScan("com.bsx")
    public class AppConfig {
    }
  • 测试

    @Test
    public void testAppConfig(){
    ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
    User user = context.getBean("user", User.class);
    System.out.println(user);
    }

@ Import(xxx.class)

用来在一个配置类里引入另一个了配置类,传入配置类的class文件