Spring Boot注解使用指南
Posted go4it
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot注解使用指南相关的知识,希望对你有一定的参考价值。
@Configuration
@Configuration包含了@Component,所以被其注解的类自身也会被纳入到bean容器中,但是纳入的是经过cglib增强的子类(代理类)。
@Configuration标记的类必须符合下面的要求:
- 配置类必须以类的形式提供(不能是工厂方法返回的实例)。允许通过生成子类在运行时增强(cglib 动态代理),所以配置类不能是 final 类(没法动态代理)。
- 配置注解通常为了通过 @Bean 注解生成 Spring 容器管理的类,
- 配置类必须是非local的(即不能在方法中声明,不能是 private)。
- 任何嵌套配置类都必须声明为static。
- @Bean方法可能不会反过来创建进一步的配置类(也就是返回的 bean 如果带有 @Configuration,也不会被特殊处理,只会作为普通的 bean)。
@Configuration
public class Test {
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
Map<String, Test> map = ac.getBeansOfType(Test.class);
System.out.println();
System.out.println(map);
System.out.println(map.get("test").getStr() == ac.getBean("getStr")); // true, Test类型在容器中的实例其实是被cglib增强的代理子类,所以行为上和原类是不一样的。
}
@Bean
public String getStr(){
return "hello";
}
}
@Primary
用于修改优先权的注解。当发现多个同样类型的Bean时,请优先使用其进行注入,常常和@Component结合使用。
@Qualifier
和@Autowired结合使用,@Autowired是通过类型进行自动装配,这个注解则是通过名字进行装配。
@Lazy
和@Component一起使用,该bean会被惰性初始化。如果和@Configuration一起使用,那么该类所有被@Bean修饰的方法产生的bean都会被惰性初始化。
@Value
注入bean的属性值,支持Spring EL(#{} or ${})。
以上是关于Spring Boot注解使用指南的主要内容,如果未能解决你的问题,请参考以下文章
Spring boot:thymeleaf 没有正确渲染片段
如何使用 Spring Security @Secured 注解测试 Spring Boot @WebFluxTest