Spring Boot常用注解

简介: Spring Boot常用注解

Spring Boot常用注解

@Service:

注解在类上,表示这是一个业务层bean

@Controller:

注解在类上,表示这是一个控制层bean

@Repository:

注解在类上,表示这是一个数据访问层bean

@Component:

注解在类上,表示通用bean ,value不写默认就是类名首字母小写

@Autowired:

按类型注入.默认属性required= true;当不能确定 Spring 容器中一定拥有某个类的Bean 时, 可以在需要自动注入该类 Bean 的地方可以使用@Autowired(required = false), 这等于告诉Spring:在找不到匹配Bean时也不抛出BeanCreationException 异常。

@Configuration:

注解在类上,表示这是一个IOC容器,相当于spring的配置文件,java配置的方式。 IOC容器的配置类一般与 @Bean 注解配合使用,用@Configuration 注解类等价与 XML 中配置 beans,用@Bean 注解方法等价于 XML 中配置 bean。@Bean: 注解在方法上,声明当前方法返回一个Bean

@Scope:

注解在类上,描述spring容器如何创建Bean实例。

1、singleton: 表示在spring容器中的单例,通过spring容器获得该bean时总是返回唯一的实例

2、prototype:表示每次获得bean都会生成一个新的对象

3、request:表示在一次http请求内有效(只适用于web应用)

4、session:表示在一个用户会话内有效(只适用于web应用)

5、globalSession:表示在全局会话内有效(只适用于web应用)

在多数情况,我们只会使用singleton和prototype两种scope,如果未指定scope属性,默认为singleton

@Value:

注解在变量上,从配置文件中读取

@ConfigurationProperties:

赋值,将注解转换成对象。给对象赋值

@SpringBootApplication:

约定优于配置  @SpringBootApplication=@ComponentScan+@Configuration+@EnableAutoConfiguration。 放在主程序入口类上, 主程序入口类(启动类) 放在root 包下,这样程序启动时所有的相关配置,类都能扫描,查找到

@EnableAutoConfiguration:

启用 Spring 应用程序上下文的自动配置,试图猜测和配置您可能需要的bean。自动配置类通常采用基于你的classpath 和已经定义的 beans 对象进行应用。被 @EnableAutoConfiguration 注解的类所在的包有特定的意义,并且作为默认配置使用。通常推荐将 @EnableAutoConfiguration 配置在 root 包下,这样所有的子包、类都可以被查找到。

@ComponentScan:

注解在类上,扫描标注了@Controller等注解的类,注册为bean 。@ComponentScan 为

@Configuration:

注解的类配置组件扫描指令。@ComponentScan 注解会自动扫描指定包下的全部标有 @Component注解的类,并注册成bean,当然包括 @Component下的子注解@Service、@Repository、@Controller。

@RestController:

@RestController 是一个结合了 @ResponseBody 和 @Controller 的注解(像:resetful接口调用时,返回的是json等就使用)

@PathVariable和@RequestParam:

都是将request里的参数的值绑定到contorl里的方法参数里的,区别在于,URL写法不同。

使用@RequestParam时,URL是这样的:http://host:port/path?参数名=参数值

使用@PathVariable时,URL是这样的:http://host:port/path/参数值

当请求参数username不存在时会有异常发生,可以通过设置属性required=false解决,例如: @RequestParam(value=“username”,required=false)

不写的时候也可以获取到参数值,但是必须名称对应。参数可以省略不写

@RequestMapping: 和请求报文是做对应的

1、value,指定请求的地址

     2、method ,请求方法类型 这个不写的话,自适应:get或者post

     3、consumes ,请求的提交内容类型

     4、produces ,指定返回的内容类型 仅当request请求头中的(Accept)类型中包含该指定类型才返回

     5、 params ,指定request中必须包含某些参数值

     6、headers ,指定request中必须包含指定的header值

7、 name , 指定映射的名称

@RequestMapping(method = RequestMethod.GET)/@GetMapping

@Responsebody:

注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用,通常是在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上@Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。(@RequestMapping(value = “/change”,method = RequestMethod.POST,produces = “application/json;charset=utf-8”))

@EnablCaching:

@EnableCaching注解是spring framework中的注解驱动的缓存管理功能。自spring版本3.1起加入了该注解。如果你使用了这个注解,那么你就不需要在XML文件中配置cache manager了。

@suppresswarnings:抑制警告

@Transactional:事务注解

定时器

@EnableScheduling,开启定时任务功能

@Scheduled,按指定执行周期执行方法

@Schedules,包含多个@Scheduled,可同时运行多个周期配置

@EnableAsync,开启方法异步执行的能力,通过@Async或者自定义注解找到需要异步执行的方法。通过实现AsyncConfigurer接口的getAsyncExecutor()和getAsyncUncaughtExceptionHandler()方法自定义Executor和异常处理。

@Async,标记方法为异步线程中执行

常见的

@SpringBootApplication,替代@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan

@ImportAutoConfiguration,导入配置类,一般做测试的时候用,正常优先使用@EnableAutoConfiguration

@SpringBootConfiguration,替代@Configuration

@ImportResource,将资源导入容器中

@PropertySource,导入properties文件

@PropertySources,@PropertySource的集合

@Role,bean角色定义ROLE_APPLICATION(默认值)、ROLE_SUPPORT(辅助角色)、ROLE_INFRASTRUCTURE(后台角色,用户无感)

@Scope,指定bean的作用域,默认singleton,其他包括prototype、request、session、globalSession

@Lazy,使bean懒加载,取消bean预初始化。用法:bean注册的地方加上@Lazy和用的地方加上@Lazy

@Primary,自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出 异常

@Profile,指定bean在哪个环境被激活

@DependsOn,依赖的bean注册完成,才注册当前类,依赖bean不存在会报错。用于控制bean加载的顺序

@PostConstruct,bean的属性都注入完之后,执行注解标注的方法进行初始化工作

@Autowired, 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用

@Lookup,根据方法返回的类型,去容器中捞出对应的bean。适合单例作用域引用非单例的情况。

@Qualifier,申明bean名字,且可以按bean名字加载bean

@Required,检查bean的属性setXXX()方法,要求属性在配置阶段必须已配置

@Value,值注入,@Value("${xxx}")注入配置文件中的值;@Value("#{xxx}")支持spel,可注入bean、常量等

@SpringBootConfiguration,包装@Configuration

@Description,添加bean的文字描述

@EnableAspectJAutoProxy,启动AspectJ自动代理

@EnableLoadTimeWeaving,启用类加载器动态增强功能,使用Instrumentation实现

@AutoConfigurationPackage,包含该注解的package会被AutoConfigurationPackages注册

@AutoConfigureBefore,在指定配置类初始化前加载

@AutoConfigureAfter,在指定配置类初始化后加载

@AutoConfigureOrder,指定配置类初始化顺序,越小初始化越早

转自 https://www.cnblogs.com/lingboweifu/p/11808294.html


相关文章
|
5天前
|
XML Java 数据格式
SpringBoot入门(8) - 开发中还有哪些常用注解
SpringBoot入门(8) - 开发中还有哪些常用注解
21 0
|
23天前
|
Java Spring
在使用Spring的`@Value`注解注入属性值时,有一些特殊字符需要注意
【10月更文挑战第9天】在使用Spring的`@Value`注解注入属性值时,需注意一些特殊字符的正确处理方法,包括空格、引号、反斜杠、新行、制表符、逗号、大括号、$、百分号及其他特殊字符。通过适当包裹或转义,确保这些字符能被正确解析和注入。
|
12天前
|
XML JSON Java
SpringBoot必须掌握的常用注解!
SpringBoot必须掌握的常用注解!
36 4
SpringBoot必须掌握的常用注解!
|
14天前
|
存储 缓存 Java
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
54 2
|
14天前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
28 1
|
28天前
|
架构师 Java 开发者
得物面试:Springboot自动装配机制是什么?如何控制一个bean 是否加载,使用什么注解?
在40岁老架构师尼恩的读者交流群中,近期多位读者成功获得了知名互联网企业的面试机会,如得物、阿里、滴滴等。然而,面对“Spring Boot自动装配机制”等核心面试题,部分读者因准备不足而未能顺利通过。为此,尼恩团队将系统化梳理和总结这一主题,帮助大家全面提升技术水平,让面试官“爱到不能自已”。
得物面试:Springboot自动装配机制是什么?如何控制一个bean 是否加载,使用什么注解?
|
9天前
|
存储 安全 Java
springboot当中ConfigurationProperties注解作用跟数据库存入有啥区别
`@ConfigurationProperties`注解和数据库存储配置信息各有优劣,适用于不同的应用场景。`@ConfigurationProperties`提供了类型安全和模块化的配置管理方式,适合静态和简单配置。而数据库存储配置信息提供了动态更新和集中管理的能力,适合需要频繁变化和集中管理的配置需求。在实际项目中,可以根据具体需求选择合适的配置管理方式,或者结合使用这两种方式,实现灵活高效的配置管理。
8 0
|
1月前
|
XML Java 数据库
Spring boot的最全注解
Spring boot的最全注解
|
21天前
|
存储 Java 数据管理
强大!用 @Audited 注解增强 Spring Boot 应用,打造健壮的数据审计功能
本文深入介绍了如何在Spring Boot应用中使用`@Audited`注解和`spring-data-envers`实现数据审计功能,涵盖从添加依赖、配置实体类到查询审计数据的具体步骤,助力开发人员构建更加透明、合规的应用系统。
|
1月前
|
XML Java 数据格式
手动开发-简单的Spring基于注解配置的程序--源码解析
手动开发-简单的Spring基于注解配置的程序--源码解析
45 0