SpringBoot 中的基本注解

@SpringBootApplication 注解

任何一个项目都有一个入口,在SpringBoot启动类需要有@SpringBootApplication 注解进行藐视,并且在类中定义一个main方法,main方法在运行时会读取配置文件,并加载指定资源,然后进行初始化操作.
所以:SpringBoot 项目在启动是时,首选基于启动入口类上的注解描述,进行自动配置并扫描指定包以及子包中的类进行加载.

@SpringBootTest 注解

顾名思义 SpringBoot工程中的单元测试需要使用@SpringBootTest 注解进行描述,用于告诉spring框架,次此测试类交由spring管理

@Autowired 注解

简单来说,@Autowired 注解就是告诉spring框架运行时为此属性注入一个值

 例如: 
 @SpringBootTest
public class DefauleCacheTests {

@Autiwired

 private DefaultCache defaultCache;
 

@Test

 void test DefaultCache(){
  System.out.println("defaultCache:"+ defaultCache);    
 }
输出结果为:
 defaultCache:com.cy.pj.common.cache.DefaultCache@6e33c391

@Component 注解

@Component 注解时Spring中用于描述Bean类的一个注解,用于告诉Spring这个类的实例由Spring创建,当此对象有Spring管理和创建是,会默认将对象存储到池中(Bean池)中.

@Scope 注解

@Scpoe注解 是Spring中用于定义Bean对象作用域的一个注解 常用的值有@Scope(singleton) @scpoe(prototype)

 @Scope(singleton):@Scope的默认值,单例作用域.既整个内存只有一份Bean实例,此实例创建与类延迟加载特性配置有关(@Lazy),此实例创建后生命周期会由spring框架管理. 
 @Scope(prototype): 多例作用域,每次获取都会创建新的实例,此实例会在需要的时创建,与Lazy特性无关,这个实例创建以后,并不会交给spring管理,spring可以对其初始化,但不负责销毁.
 

@Lazy 注解

@Lazy 注解用于描述类,其目的是告诉Spring框架,此类支持延迟加载通常配合单例作用域(@singleton)使用
简单来说,就是它描述的类的实例,假如暂时用不到,就不要先创建实例(@Lazy(true) 默认值,适用于大对象,稀少用)

@PostConstruct 注解

@PostConstruct 注解描述的方法会在对象构建以后执行,用于执行一些初始化操作

@PreDestroy 注解

@PreDestroy 注解描述的方法会在单例对象销毁之前执行,spring容器在销毁之前,会先将容器(Bean)中的对象移除,在移除对象时,假如对象中定义了生命周期销毁方法,此时还会调用对象的生命周期销毁方法(在这样的方法中可以做一些资源释放操作)

## 总结

  1. @SpringBootApplication @SpringBootTest @Component
    @Lazy @scope 主要用于类上
    @PostConstruct @PreDestroy 主要用于方法上

    1. @Lazy和@PreDestroy 可以与适用于单例作用域使用 @Scope(singleton),但不适用于多例作用域@Scope(prototype).

LeoXiong
1 声望0 粉丝