最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

当前资讯!注解:@RequiredArgsConstructor、 @Validated、 @Valid、 @Lazy

来源:博客园

1. lombok注解:@RequiredArgsConstructor

Spring 依赖注入方式1.通过 @Autowire、@Resource 等注解注入,2.通过构造器的方式进行依赖注入。3.setter注入4.lombok 的 @RequiredArgsConstructor

在controller或service层的时候,需要注入很多的service接口或者mapper接口,会写很多的自动注入@Autowired或者@Resource注解,使用lombok的@RequiredArgsConstructor注解写在类上可以简化该操作。代码看起来更清晰。

@RestController@RequiredArgsConstructorpublic class UserController extends BaseController {    private final IUserService userService;}

相关属性:staticName:返回生成静态方法的名称onConstructor:列出的所有注解都放在生成的构造方法上access: 设置构造方法的访问修饰符PUBLIC, MODULE, PROTECTED, PACKAGE, PRIVATE,NONE;NONE:表示不生成任何内容或完全缺乏方法。MODULE:是 Java 9 的新特性。注意:


(资料图片)

1.注入时需要用final定义,或使用@NonNull注解2.如果注入的类有多个实现,需要用 @Qualifier 注解指定要注入的 bean 实现3.@RequiredArgsConstructor 是为每个需要特殊处理的字段生成构造函数。 所有未初始化的带有 final 关键字的字段或标有 @NonNull 注解都会获得构造字段;参数的顺序与字段在类中出现的顺序一致。

2.校验注解 spring注解:@Validated, javax 注解 @Valid

@Validated:Spring的注解,是标准JSR-303的一个变种(补充),提供了一个分组功能,可以在入参验证时,根据不同的分组采用不同的验证机制。@Valid:标准JSR-303规范的标记型注解,用来标记验证属性和方法返回值,进行级联和递归校验。
@Valid/@Validated@PostMapping public Respone saveUser(@RequestBody User user){   return Respone.success();}@PostMapping public Respone saveUser(@RequestBody @Valid/@Validated                         User user){    return Respone.success();}

嵌套校验: 一个类中包含了另外一个实体类,需要在上面加@Validated

public class User{        @validated    private List cardList;}

3.Spring中的 延迟加载 @Lazy注解

解决:

1.循环依赖问题,使用动态代理创建一个代理类。2.第一次调用的时候加载。减少IOC的启动时间。项目启动加快。3.用来解决 Requested bean is currently in creation 的问题

4.hibernate 延迟加载 @Lazy 校验器:hibernate.validator@Lazy

只有在需要时才去数据库中抓取相应的记录。通过延迟加载技术可以避免过多、过早地加载数据表里的数据,从而降低应用的内存开销。

校验器:@Length(max = 6 * 10,groups ={Ordinary.class,Loop.class,Update.class})

关键词: