springboot 项目注解

@Configuration可理解为用spring的时候xml里面的<beans>标签

@Bean可理解为用spring的时候xml里面的<bean>标签

(原文地址:https://blog.csdn.net/u012260707/article/details/52021265)

1、@controller 控制器(注入服务)
2、@service 服务(注入dao)
3、@repository dao(实现dao访问)
4、@component (把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>))(原文地址:https://blog.csdn.net/thinkingcao/article/details/71171222)

@MappedSuperclass 标注为@MappedSuperclass的类将不是一个完整的实体类,他将不会映射到数据库表,但是他的属性都将映射到其子类的数据库字段中。(原文地址:http://blog.sina.com.cn/s/blog_7085382f0100uk4p.html

@GeneratedValue  PA的@GeneratedValue注解,在JPA中,@GeneratedValue注解存在的意义主要就是为一个实体生成一个唯一标识的主键(原文地址:https://blog.csdn.net/u012493207/article/details/50846616

@profile  例如在开发环境与生产环境使用不同的参数,可以配置两套配置文件,通过@profile来激活需要的环境(原文地址:https://blog.csdn.net/hj7jay/article/details/53634159)

@Intercepts Mybatis的插件都要有Intercepts注解来指定要拦截哪个对象的哪个方法。(原文地址:https://www.jianshu.com/p/7c7b8c2c985d     https://blog.csdn.net/yhjyumi/article/details/49188051)
@ExceptionHandler @ControllerAdvice 用于异常 (原味地址:https://blog.csdn.net/w372426096/article/details/78429141   https://blog.csdn.net/w372426096/article/details/78429132?utm_source=blogxgwz3)

@RestController 表示这个类返回的都是json数据 (地址:https://www.cnblogs.com/shuaifing/p/8119664.html

==================================================

@Column(unique = true)

详细解释:

  • unique=true是指这个字段的值在这张表里不能重复,所有记录值都要唯一,就像主键那样。

  • nullable=false是这个字段在保存时必需有值,不能还是null值就调用save去保存入库。

  • 这两个用法是不同的,需要看个人需要,互相不可取代,根据个人需要可以两个都设置也可以只设置其中一个。

  • hibernate常用方法介绍:

  1. delete(Object entity) 删除指定的持久化实例在程序中一般先用    Assert.notNull和 Assert.isTrue断言entity是否为空 和 entity的id是否大于0,否则事务回滚。再用get(Class entityClass,Serializable id,LockMode lockMode)加锁查询出持久化实例,一般用lockMode.update悲观锁,最后用delete(Object entity)来删除此实例。

  2. deleteAll(Collection entities) 删除集合内全部持久化实例entities必须为持久化实例,否则报数据库异常错误。

  3. find(String queryString) 根据HQL查询字符串来返回实例集合find方法在执行时会先查找缓存,如果缓存找不到再查找数据库,如果再找不到就会返回null。

  4. get(Class entityClass,Serializable id)根据主键加载特定持久化实例在程序中一般先用     Assert.isTrue断言id是否大于0,若大于0继续执行,若查到数据则返回实例,否则返回空不同于load,load若有数据则返回实例,否则报出ObjectNotFoundEcception异常,相比来说get效率高些。

  5. save(Object entity) 保存新的实例,在程序中一般先用    Assert.notNull断言实体是否为空,在进行保存。

==================================================

=====================================================

Swagger 注解  Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件

(原文地址: https://www.jianshu.com/p/8033ef83a8ed   | https://blog.csdn.net/xupeng874395012/article/details/68946676/   |  https://blog.csdn.net/java_yes/article/details/79183804  |  https://blog.csdn.net/y_hai_yang/article/details/77839447   )

@Api:

作用在类上,用来标注该类具体实现内容。表示标识这个类是swagger的资源 。 
参数: 
1. tags:可以使用tags()允许您为操作设置多个标签的属性,而不是使用该属性。 
2. description:可描述描述该类作用。

@ApiImplicitParam:
作用在方法上,表示单独的请求参数 
参数: 
1. name :参数名。 
2. value : 参数的具体意义,作用。 
3. required : 参数是否必填。 
4. dataType :参数的数据类型。 
5. paramType :查询参数类型,这里有几种形式:
在这里我被坑过一次:当我发POST请求的时候,当时接受的整个参数,不论我用body还是query,后台都会报Body Missing错误。这个参数和SpringMvc中的@RequestBody冲突,索性我就去掉了paramType,对接口测试并没有影响。

@ApiImplicitParams:

用于方法,包含多个 @ApiImplicitParam

@ApiModel:

用于类,表示对类进行说明,用于参数用实体类接收;

@ApiModelProperty:

用于方法,字段 ,表示对model属性的说明或者数据操作更改 

@ApiOperation:

用于方法,表示一个http请求的操作 。

@ApiResponse:

用于方法,描述操作的可能响应。

@ApiResponses:

用于方法,一个允许多个ApiResponse对象列表的包装器。 

@ApiParam:
用于方法,参数,字段说明,表示对参数的添加元数据(说明或是否必填等)

@Authorization:
声明要在资源或操作上使用的授权方案。

@AuthorizationScope:
介绍一个OAuth2授权范围。

@ResponseHeader:
响应头设置,使用方法。

======================================================

@CrossOrigin @CrossOrigin可以处理跨域请求,让你能访问不是一个域的文件。 (原文地址:https://blog.csdn.net/zjy15203167987/article/details/77330992 | https://www.cnblogs.com/mmzs/p/9167743.html

@Validated  验证,校验的错误信息 (原文地址: https://blog.csdn.net/qq_15037231/article/details/80583839?utm_source=blogxgwz7https://blog.csdn.net/LittleSkey/article/details/52224352 | https://blog.csdn.net/zhenwei1994/article/details/81460419  | https://blog.csdn.net/gaojp008/article/details/80583301)

 

 

@Entity  对实体注释。任何Hibernate映射对象都要有这个注释

@Table  声明此对象映射到数据库的数据表,通过它可以为实体指定表(talbe),目录(Catalog)和schema的名字。该注释不是必须的,如果没有则系统使用默认值(实体的短类名)。

 @Version  该注释可用于在实体Bean中添加乐观锁支持。

@Column  就像@Table注解用来标识实体类与数据表的对应关系类似,@Column注解来标识实体类中属性与数据表中字段的对应关系。(原文地址:https://blog.csdn.net/qq_16769857/article/details/80347459 |   https://blog.csdn.net/TuxedoLinux/article/details/80875261?utm_source=blogxgwz0

===================================================

lombok 注解 (注解介绍地址:https://blog.csdn.net/sunsfan/article/details/53542374)

@Data 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter :注解在属性上;为属性提供 setting 方法
@Setter :注解在属性上;为属性提供 getting 方法
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象

@Slf4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象
@NoArgsConstructor :注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor :注解在类上;为类提供一个全参的构造方法
@Cleanup : 可以关闭流
@Builder : 被注解的类加个构造者模式
@Synchronized : 加个同步锁
@SneakyThrows : 等同于try/catch 捕获异常
@NonNull : 如果给参数加个这个注解 参数为null会抛出空指针异常
@Value : 注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法。

@ToString/@EqualsAndHashCode
这两个注解也比较好理解,就是生成toString,equals和hashcode方法,同时后者还会生成一个canEqual方法,用于判断某个对象是否是当前类的实例,生成方法时只会使用类中的非静态和非transient成员变量。

=====================================================

@Conditional @ConditionalOnBean、@ConditionalOnMissingBean (原文地址:https://blog.csdn.net/xcy1193068639/article/details/81517456)

@FeignClient 使用Spring Cloud搭建各种微服务之后,服务可以通过@FeignClient使用和发现服务场中的其他服务。(原文地址:https://blog.csdn.net/kangkanglou/article/details/76407623  )

@EnableFeignClients 通过当前service服务要调用到其他service服务的api接口时,可通过EnableFeignClients调用其他服务的api (原文地址: https://www.cnblogs.com/UniqueColor/p/7130782.html |  https://blog.csdn.net/xcy1193068639/article/details/81491071

 

=========================

实体类:

@Temporal() :时间类型 加不加分秒 可以自选

 

 


 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot项目中,@Scheduled注解用于配置定时任务。通过使用该注解,可以将方法标记为定时任务,并设置任务的触发时间。在使用@Scheduled注解之前,需要在启动类上添加@EnableScheduling注解。 在配置多个定时任务时,需要注意以下几点: 1. 同一任务的同步执行:当配置多个相同的定时任务时,任务将在上一次任务执行完毕后的下一次配置时间开始执行。可以使用cron表达式指定任务的触发时间。 2. 多个任务之间串行:使用@Async注解,可以实现多个任务之间的串行执行,即一个任务执行完毕后才会执行下一个任务。同时,单个任务的执行是非阻塞的异步执行。可以通过配置ThreadPoolTaskScheduler的@Scheduled注解来指定线程池中的线程数量。 3. 多个任务之间并行:使用@Async注解,可以实现多个任务之间的并行执行,即多个任务可以同时执行。同时,单个任务的执行是非阻塞的异步执行。同样,可以通过配置ThreadPoolTaskScheduler的@Scheduled注解来指定线程池中的线程数量。 在Spring Boot中,默认情况下,ThreadPoolTaskScheduler的线程池大小为1,因此每次只会启动一个定时任务。如果需要启动多个定时任务,可以通过设置ThreadPoolTaskScheduler的poolSize属性来调整线程池的大小。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值