SpringBoot注解

1.RestController:
一个方便的注释,它本身用@Controller和@ResponseBody注释。
携带此注释的类型被视为控制器,其中@RequestMapping方法默认采用@ResponseBody语义。
注意:如果配置了适当的HandlerMappingHandlerAdapter对,例如RequestMappingHandlerMappingRequestMappingHandlerAAdapter对,则会处理@RestController,这是MVC Java配置和MVC命名空间中的默认值。

 2.RequestMapping:用于将web请求映射到具有灵活方法签名的请求处理类中的方法的注释。Spring MVC和Spring WebFlux都在各自的模块和包结构中通过RequestMappingHandlerMapping和RequestMappingHandlerAdapter支持此注释。有关每个支持的处理程序方法参数和返回类型的确切列表,请使用以下参考文档链接:Spring MVC方法参数和返回值Spring WebFlux方法参数和返回值。注意:(1)该注释可以在类和方法级别使用。在大多数情况下,在方法级别,应用程序更倾向于使用特定于HTTP方法的变量@GetMapping、@PostMapping、@PutMapping、@DeleteMapping或@PatchMapping之一。(2)当使用控制器接口(例如用于AOP代理)时,请确保始终将所有映射注释(例如@RequestMapping和@SessionAttributes)放在控制器接口上,而不是放在实现类上。例:("/admin/XXX")

3.Api: 用在请求的类上,表示对类的说明

  • tags="说明该类的作用,可以在前台界面上看到的注解"
  • value="该参数无意义,在UI界面上看不到,不需要配置"
  • 例:
    @Api(
            value = "医器审评业务",
            tags = {"医器审评业务"}
    )

4.Autowired:将构造函数、字段、setter方法或config方法标记为由Spring的依赖注入工具自动连接。这是JSR-330 javax.inject的替代方案。注入注释,添加必需的和可选的语义。自动连线构造器作用:1.在构造函数上 2.在类属性 3.在方法上

5.ApiOperation:描述针对特定路径的操作或HTTP方法。具有等效路径的操作被分组在单个操作对象中。HTTP方法和路径的组合将创建唯一的操作。

例:@ApiOperation( value = "查询医器审评列表", notes = "查询医器审评列表" )

6.GetMapping:用于将HTTP GET请求映射到特定处理程序方法的注释。具体来说,@GetMapping是一个组合注释,充当@RequestMapping(method=RequestMethod.GET)的快捷方式。

例:@GetMapping("/list")

7.PutMapping:用于将HTTP PUT请求映射到特定处理程序方法的注释。具体来说,@PutMapping是一个组合注释,充当@RequestMapping(method=RequestMethod.PUT)的快捷方式。

例:@PutMapping(value = "submitSub")

8.PostMapping:用于将HTTP POST请求映射到特定处理程序方法的注释。具体来说,@PostMapping是一个组合注释,充当@RequestMapping(method=RequestMethod.POST)的快捷方式。

9.DeleteMapping:用于将HTTP DELETE请求映射到特定处理程序方法的注释。具体来说,@DeleteMapping是一个组合注释,充当@RequestMapping(method=RequestMethod.DELETE)的快捷方式。

例:@DeleteMapping("/{ids}")

 10.Log:自定义注解,企业自己jar包封装

例:@Log(title = "医疗器械注册证(Ⅱ类)", businessType = BusinessType.INSERT)

11.PathVariable:指示方法参数应绑定到URI模板变量的注释。支持RequestMapping注释处理程序方法。如果方法参数为Map<String,String>,则映射将填充所有路径变量名称和值。

例:@PathVariable("id") String id

12.RequestBody:指示方法参数的注释应绑定到web请求的主体。请求的主体通过HttpMessageConverter传递,以根据请求的内容类型解析方法参数。或者,可以通过使用@Valid注释参数来应用自动验证。支持带注释的处理程序方法。

例:@RequestBody HMedical param

 

13.PreAuthorize:用于指定方法访问控制表达式的注释,该表达式将被求值以决定是否允许方法调用。

例:@PreAuthorize("@ss.hasPermi('admin:hMedicalYqh:export')")

 

14.ResponseBody:指示方法返回值应绑定到web响应主体的注释。支持带注释的处理程序方法。从4.0版起,该注释也可以添加到类型级别,在这种情况下,它是继承的,不需要添加到方法级别。

15.RequestParam:指示方法参数应绑定到web请求参数的注释。Spring MVC和Spring WebFlux中的注释处理程序方法支持如下:在SpringMVC中,“请求参数”映射到多部分请求中的查询参数、表单数据和部分。这是因为Servlet API将查询参数和表单数据组合到一个名为“parameters”的映射中,其中包括请求主体的自动解析。在SpringWebFlux中,“请求参数”仅映射到查询参数。要处理所有3、查询、表单数据和多部分数据,可以使用数据绑定到用ModelAttribute注释的命令对象。如果方法参数类型为Map,并且指定了请求参数名称,则假设有适当的转换策略可用,则将请求参数值转换为Map。如果方法参数是Map<String,String>或MultiValueMap<String、String>,并且未指定参数名称,那么将使用所有请求参数名称和值填充Map参数。

例:1.@RequestParam MultipartFile file

2. @RequestParam(defaultValue = "false") boolean isOne

16.Validated:JSR-303的javax.validation的变体。有效,支持验证组规范。设计用于方便使用Spring的JSR-303支持,但不是JSR-303特定的。例如,可以与Spring MVC处理程序方法参数一起使用。通过org.springframework.validation支持。SmartValidator的验证提示概念,验证组类充当提示对象。也可以与方法级验证一起使用,表示特定类应该在方法级进行验证(充当相应验证拦截器的切入点),但也可以在带注释的类中为方法级验证指定验证组。在方法级别应用此注释允许覆盖特定方法的验证组,但不作为切入点;然而,类级注释对于触发特定bean的方法验证是必要的。也可以用作自定义原型注释或自定义组特定的验证注释上的元注释。

例:@Validated  SAttach sAttach

17.Slf4j:使lombok生成日志字段

 18.Data:为所有字段生成getter,一个有用的toString方法,以及检查所有非瞬时字段的hashCode和equals实现。还将为所有非final字段以及构造函数生成setter。相当于@Getter@Setter@RequiredArgsConstructor@ToString@EqualAndHashCode。

19.NoArgsConstructor:生成无参数构造函数。如果由于存在final字段而无法编写此类构造函数,则将生成错误消息。完整的文档可以在@Constructor的项目lombok功能页面中找到。即使未列出,此注释也具有onConstructor参数。有关详细信息,请参阅完整文档。注意:当然,带有@NonNull等约束的字段不会在@NoArgsConstructor构造函数中检查!

20.Excel:Java领域解析,生成Excel比较有名的框架有Apache poi,Jxl等,但他们都存在一个严重的问题就是非常的耗内存,如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的full gc.
EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单,节省内存著称,今天我们来使用阿里巴巴开源的EasyExcel框架来实现Excel的导入导出功能。

例:@Excel(name = "文书id")

21.ApiModelProperty:添加和操作模型属性的数据

例:@ApiModelProperty(value = "文书id")

22.JsonFormat:用于配置如何序列化属性值的详细信息的通用注释。和大多数其他Jackson注释不同,注释并没有特定的通用解释:相反,效果取决于所注释属性的数据类型(或者更具体地说,所使用的反序列化程序和序列化程序)。常见的用法包括在替代表示之间进行选择——例如,是否java.util。日期将被序列化为数字(Java时间戳)或字符串(如ISO-8601兼容的时间值)——以及使用模式属性配置确切的细节。

从Jackson 2.6开始,已知的特殊处理包括:java.util。日期:形状可以是JsonFormat.Shape。STRING或JsonFormat.Shape。数量;模式可以包含java.text。SimpleDateFormat兼容的模式定义。也可以用于类(类型),用于修改的默认行为,可能被每个属性注释覆盖。

枚举:形状JsonFormat.Shape。STRING和JsonFormat.Shape。NUMBER可用于在数字(索引)和文本(名称或toString())之间切换;但也可以使用JsonFormat.Shape。OBJECT将枚举序列化(但不反序列化)为JSON对象(就像它们是POJO一样)。注意:序列化为JSON对象仅适用于类注释;将无法按照属性注释工作。

java.util。如果是JsonFormat.Shape,集合可以序列化为JSON对象(并从中反序列化)。使用OBJECT。注:只能用作类注释;将无法按照属性注释工作。如果JsonFormat.Shape,数字子类可以序列化为完整对象。使用OBJECT。否则,将首选序列化为标量数值的默认行为。注:只能用作类注释;将无法按照属性注释工作。

例:@JsonFormat(pattern = "yyyy-MM-dd")

23. NotBlank:带注释的元素不能为空,并且必须至少包含一个非空白字符。接受CharSequence。

例:@NotBlank(message = "参数名不能为空")

24.ChangeLogEntity:changelog——0.7.0-SNAPSHOT

例:@ChangeLogEntity( name = "地区名称" )

25.ApiModel:提供有关Swagger型号的其他信息。当类在操作中被用作类型时,它们将被自动内省,但您可能需要操纵模型的结构。

例:@ApiModel(value = "XXX")

26.Repository:表示带注释的类是“存储库”,最初由域驱动设计(Evans,2003)定义为“模拟对象集合的封装存储、检索和搜索行为的机制”。实现传统Java EE模式(如“数据访问对象”)的团队也可以将这个原型应用于DAO类,但在这样做之前,应该注意理解数据访问对象和DDD样式存储库之间的区别。这个注释是一个通用的原型,各个团队可以缩小它们的语义并酌情使用。当与PersistenceExceptionTranslationPostProcessor一起使用时,这样注释的类有资格进行SpringDataAccessException转换。出于工具、方面等的目的,注释类也被阐明了其在整个应用程序架构中的作用。从Spring2.5开始,这个注释也作为@Component的专用化,允许通过类路径扫描自动检测实现类。

 27.Param:指定参数名称的注释。

例:@Param("var4") String var4

28.Select:指定用于检索记录的SQL的注释。

例:@Select("select id,is_read from ylqx_attach_user where attach_id = #{id}")

29.Insert:指定用于插入记录的SQL的注释。

例:@Insert("insert into ylqx_attach_user (attach_id, user_id, nick_name, is_read) values (#{attachId}, #{userId}, #{userName}, '1')")

30.Service:表示带注释的类是一个“服务”,最初由域驱动设计(Evans,2003)定义为“作为接口提供的操作,在模型中独立,没有封装状态”。也可能表示类是“业务服务外观”(在核心J2EE模式意义上)或类似的东西。这个注释是一个通用的原型,各个团队可以缩小它们的语义并酌情使用。这个注释作为@Component的专用化,允许通过类路径扫描自动检测实现类。

 

31.DataScope:自定义注解,企业自己jar包封装

32.Value:在字段或方法/构造函数参数级别使用的注释,指示注释元素的默认值表达式。通常用于表达式驱动或属性驱动的依赖注入。还支持处理程序方法参数的动态解析-例如,在SpringMVC中。一个常见的用例是使用#{systemProperties.myProp}样式的SpEL(Spring表达式语言)表达式注入值。或者,可以使用${my.app.myProp}样式的属性占位符注入值。请注意,@Value注释的实际处理是由BeanPostProcessor执行的,这反过来意味着您不能在BeanPostProcessor或BeanFactoryPostProcessor类型中使用@Value。请查阅javadoc中的AutowiredAnnotationBeanPostProcessor类(默认情况下,它会检查是否存在此注释)。

例:@Value("${hxzk.dictKey}")

33.Transactional:描述单个方法或类的事务属性。

在类级别,此注释作为默认应用于声明类及其子类的所有方法。注意,它不适用于类层次结构上的祖先类;方法需要在本地重新声明,以便参与子类级别的注释。

此注释类型通常与Spring的org.springframework.transaction.interceptor.RuleBasedTransactionAttribute类直接相当,事实上AnnotationTransactionAttributeSource将直接将数据转换为后者类,因此Spring的事务支持代码不必知道注释。如果没有应用自定义回滚规则,则事务将在RuntimeException和Error时回滚,但不会在选中的异常时回滚。

有关此注释属性语义的具体信息,请参阅TransactionDefinition和org.springframework.transaction.interceptor.TransactionAttribute javadocs。此注释通常用于org.springframework.transaction.PlatformTransactionManager管理的线程绑定事务,将事务公开给当前执行线程中的所有数据访问操作。注意:这不会传播到方法中新启动的线程。或者,此注释可以划分由org.springframework.transaction.ReactiveTransactionManager管理的反应式事务,该事务使用Reactor上下文而不是线程本地属性。因此,所有参与的数据访问操作都需要在同一反应管道中的同一反应器上下文中执行。

34.Resource:Resource注释标记应用程序所需的资源。此注释可以应用于应用程序组件类,或应用于组件类的字段或方法。当注释应用于字段或方法时,容器将在组件初始化时将所请求资源的实例注入到应用程序组件中。如果注释应用于组件类,则注释声明应用程序将在运行时查找的资源。即使此注释未标记为Inherited,部署工具也需要检查任何组件类的所有超类,以发现此注释在所有超类中的所有用法。所有这样的注释实例都指定应用程序组件所需的资源。注意,这个注释可能出现在超类的私有字段和方法上;在这些情况下,容器也需要执行注射。

 35.Component:指示带注释的类是“组件”。当使用基于注释的配置和类路径扫描时,此类类被视为自动检测的候选类。其他类级注释也可以被视为标识组件,通常是一种特殊类型的组件:例如@Repository注释或AspectJ的@Aspect注释。

36.Configuration:Configuration正文类表明其次要目标是作为bean定义的源;@Configuration类容许通过调用同一类中的其余@Bean办法来定义bean之间的依赖关系

37.PostConstruct:PostConstruct注释用于在完成依赖注入以执行任何初始化之后需要执行的方法。必须在类投入服务之前调用此方法。所有支持依赖注入的类都必须支持此注释。即使类没有请求注入任何资源,也必须调用用PostConstruct注释的方法。只能使用此注释对一个方法进行注释。应用PostConstruct注释的方法必须满足以下所有条件:该方法不能有任何参数,除非是拦截器,在这种情况下,它采用拦截器规范定义的InvocationContext对象。

拦截器类上定义的方法必须具有以下签名之一:void<METHOD>(InvocationContext)对象<METHOD>(InvocationContext)抛出异常。注意:PostConstruct拦截器方法不能抛出应用程序异常,但如果同一拦截器方法除了生命周期事件之外还插入了业务或超时方法,则可以声明为抛出已检查的异常,包括java.lang.Exception。如果PostConstruct拦截器方法返回值,则容器将忽略该值。

在非拦截器类上定义的方法必须具有以下签名:void<METHOD>()应用PostConstruct的方法可以是public、protected、package private或private。除应用程序客户端外,该方法不得是静态的。该方法可能是最终的。如果该方法抛出未检查的异常,则该类不能投入服务,除非EJB可以处理异常,甚至可以从异常中恢复。

 

38.SpringBootApplication:指示声明一个或多个@Bean方法并触发自动配置和组件扫描的配置类。这是一个方便的注释,相当于声明@Configuration、@EnableAutoConfiguration和@ComponentScan。

例:@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})

39.ComponentScan:配置用于@Configuration类的组件扫描指令。提供与SpringXML的<context:componentscan>元素并行的支持。可以指定basePackageClasses或basePackages(或其别名值)来定义要扫描的特定包。如果未定义特定的包,则将从声明此注释的类的包进行扫描。注意,<context:componentscan>元素具有annotationconfig属性;然而,此注释没有。这是因为在几乎所有情况下,当使用@ComponentScan时,都假定默认的注释配置处理(例如处理@Autowired和朋友)。此外,当使用AnnotationConfigApplicationContext时,注释配置处理器始终被注册,这意味着在@ComponentScan级别禁用它们的任何尝试都将被忽略。

例:@ComponentScan(basePackages = {"com.supervise.*","com.hisicom.*"})

40.MapperScan:使用Java Config时,使用此注释注册MyBatis映射器接口。它通过MapperCannerRegister执行与MapperCanner Configurer相同的工作。可以指定basePackageClasses或basePackages(或其别名值)来定义要扫描的特定包。从2.0.4开始,如果未定义特定的包,则将从声明此注释的类的包进行扫描。

例:@MapperScan({"com.hisicom.**.mapper"})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值