zoukankan      html  css  js  c++  java
  • 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.net 结合简单三层实例
    Spring.Net 如何管理您的类___对象的手动装配
    性能优化小结
    C#实例解析适配器设计模式
    谈AOP要step by step
    C#对图片文件的压缩、裁剪操作初探
    Web 前端开发精华文章推荐(jQuery、HTML5、CSS3)
    多线程实现资源共享的问题学习与总结
    ASP.NET 设计模式
    Mac技巧索引
  • 原文地址:https://www.cnblogs.com/memo20/p/13137596.html
Copyright © 2011-2022 走看看