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)中的对象移除,在移除对象时,假如对象中定义了生命周期销毁方法,此时还会调用对象的生命周期销毁方法(在这样的方法中可以做一些资源释放操作)
## 总结
@SpringBootApplication @SpringBootTest @Component
@Lazy @scope 主要用于类上
@PostConstruct @PreDestroy 主要用于方法上- @Lazy和@PreDestroy 可以与适用于单例作用域使用 @Scope(singleton),但不适用于多例作用域@Scope(prototype).
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。