Spring Boot 注解

一. 注解

  1. @SpringBootApplication项目的入口类注释(启动类)。

  2. @Component , @Controller:类的实例的创建由spring框架负责。

  3. @Autowired
    为属性注入值。由Spring框架定义,来描述类中的属性和方法。
    依赖查找+依赖注入:
    Spring Boot 注解

  4. @Lazy
    特点:按需加载,何时需要何时加载。
    使用场景:使用次数少但占用内存大的对象。
    作用:高效、低耗、节省内存资源。
    @Scope(singleton)和 @Lazy 配合使用。

  5. @Scope:Bean对象作用域
    singleton:单例作用域。spring容器内部有一个,整个内存有一份Bean实例,此实例何时创建与类的延迟加载特性配置有关,此实例创建以后,生命周期会由spring框架管理。(频繁使用的对象)
    prototype:多例作用域。每次获取都会创建新实例,此实例会在需要时创建,与lazy特性无关,这个实例创建以后,不会交给spring管理,spring可以对其创建和初始化,但不负责生命周期和销毁。(稀少使用的对象)

    享元模式:享元模式的应用有变量池、连接池(池化思想)。创建完对象后,将对象放到池里面,下次使用对象时直接在池里面拿对象,不需要重新创建。

  6. @PostConstruct 注解
    用于描述bean对象生命周期方法中的初始化方法,此方法会在对象的构造方法之后执行。
    @PostConstruct //构造方法执行后执行此方法,不是必须要设计的
    public void init() {
    System.out.println(“init”);
    }

  7. @PreDestroy 注解
    用于描述Bean对象生命周期方法中的销毁方法,此方法会在对象销毁之前最后执行(当作用域为prototype时,此方法不会执行)。
    @PreDestroy
    public void destory() { //对象销毁之前做一些事情
    //prototype作用域:spring负责创建单不负责销毁
    System.out.println(“destory”);
    }

  8. @Qualifier(“weakCache”):配合@Autowired注解一起使用,表示注入类型为指定类型。例如:weakCache类型。