1. lombok注解:@RequiredArgsConstructor

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

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

@RestController
@RequiredArgsConstructor
public 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<Card> 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})

注解:@RequiredArgsConstructor、 @Validated、 @Valid、 @Lazy的更多相关文章

  1. springmvc的@Validated/@Valid注解使用和BindingResult bindingResult

    关于@Valid和Validated的比较 @Valid是使用hibernate validation的时候使用 @Validated 是只用spring  Validator 校验机制使用 一:@V ...

  2. Spring注解之@validated的使用

    spring-boot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理.比如,我们判断一个输入参数是否合法,可以用如下方式 一 基础使用 因为spring-b ...

  3. 参数验证 @Validated 和 @Valid 的区别

    来源:blog.csdn.net/qq_27680317/article/details/79970590 整编:Java技术栈(公众号ID:javastack) Spring Validation验 ...

  4. @Validated和@Valid的区别?校验级联属性(内部类)

    每篇一句 NBA里有两大笑话:一是科比没天赋,二是詹姆斯没技术 相关阅读 [小家Java]深入了解数据校验:Java Bean Validation 2.0(JSR303.JSR349.JSR380) ...

  5. @Validated和@Valid区别

    注解地方 @Validated:可以用在类型.方法和方法参数上.但是不能用在成员属性(字段)上 @Valid:可以用在方法.构造函数.方法参数和成员属性(字段)上 两者是否能用于成员属性(字段)上直接 ...

  6. @Valid与@Validated

    Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR- ...

  7. @Validated和@Valid校验参数、级联属性、List

    @Validated和@Valid的区别 在Controller中校验方法参数时,使用@Valid和@Validated并无特殊差异(若不需要分组校验的话): @Valid:标准JSR-303规范的标 ...

  8. @Validated和@Valid区别:Spring validation验证框架对入参实体进行嵌套验证必须在相应属性(字段)加上@Valid而不是@Validated

    Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR- ...

  9. SpringMvc @Validated注解执行原理

    @Validated和@Valid对比 Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303规范,是标准JSR-303的一个变种),j ...

  10. @Valid和@Validated 区别

    Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR- ...

随机推荐

  1. OperationContext

    public void Add(double x, double y) { double result = x + y; ICallback callback = OperationContext.C ...

  2. CMake制作我的第一个自己写的项目

    首先写好CMakeList.txt ,然后把目标文件(.off格式)和 源文件(.cpp) 放在同一目录下吗,对该目录进行Cmake 生成build文件,打开.sln 文件,运行ALL_BUILD , ...

  3. form表单 css的选择器和一些属性以及盒子模型,浮动

    form表单 <form action='' method='' enctype=''> <input type='text'> input:更下type属性就可以得到对应的效 ...

  4. ssh原理及应用

    SSH原理与运用(一):远程登录 SSH原理与运用(一):远程登录 SSH原理与运用(二):远程操作与端口转发 SSH原理与运用(二):远程操作与端口转发 mitm应用: python开源三方库:ss ...

  5. 【javascript】关于charCodeAt()方法

    在做算法题目leetcode 2283时,看见某些答案会使用charCodeAt(),因为自己没用过,所以作此纪录 描述在 JavaScript 中,charCodeAt() 是一种字符串方法,用于检 ...

  6. Postman设置Cookie参数为全局变量-环境变量设置IP参数

    前提:在遇到多接口测试时,容易出现限制登录的情况 可以使用两种情况: 1.在调用其他接口前,先调用登录接口:这个方法在一般情况下可以,但是对于有些环境,比如像小程序登录时token(或cookie)是 ...

  7. Bootstarp5第四弹

    六.颜色 <div class="container mt-3">最基本的文本 <p class="text-muted">柔和的文本& ...

  8. springboot多环境开发兼容问题(Maven和boot)

    <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven ...

  9. EF Core如何使用DbFirst

    首先安装好 Microsoft.EntityFrameworkCore.SqlServer   [ef 的数据库驱动程序 如果是其他数据库这个要换成对应的数据库驱动] Microsoft.Entity ...

  10. 钛度守望者旗舰版TSG550鼠标(原相3335芯片)拆解

    鼠标整体外观 鼠标按键支柱,采用的十字形的按键柱,没有采用现在市面上多数鼠标的平面贴片形的按键柱设计,但是耐用性比一字型的按键柱会好很多. 可换微动设计,原装的是凯华GM8.0黑曼巴8000万次微动, ...