ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

注解

2022-05-12 08:31:07  阅读:163  来源: 互联网

标签:验证 注释 嵌套 bean 注解 属性


注解的含义

@Nullable:

字段标记了这个注解,说明这个字段可以为null。

@Autowired:

如果显示定义了Autowired的required属性为false,
说明这个对象可以为null,否则不可以为空 Autowired(required=false)
自动装配类型,通过名字。
如果不能唯一自动装配属性,则需要通过@Qualifier(value=xxx)
去配置@Autowired的使用,指定唯一的bean对象注入!

@Resources:

自动装配,通过名字类型
@Value("超哥"):
相当于,属性注入

衍生注解 这四个注解功能都是一样的,都代表将某个类注解的到spring容器中,装配bean

@Component:

​ 组件,放在类上,说明这个类被spring管理了,就是bean
​ 相当于 自动装配
dao @Repository
service @Service
controller @Controller

作用域

@Scope("prototype")

​ prototype:原型模型,singleton:单例模型

错误抑制

@SuppressWarnings("unchecked") :

抑制单类型的警告]

@SuppressWarnings("unchecked","rawtypes") :

抑制多类型的警告

@SuppressWarnings("unchecked") :

抑制所有类型的警告

@Configuration

也是spring容器托管,注册到容器中,本身也是也是一个Component,
是一个配置类,就是bean.xml

@Bean

@Bean
public User user(){
return new User(); return返回要注入的对象
}
注册一个bean,就相当于bean标签,
方法的名字,就相当于bean标签中的id属性
方法的返回值,就相当于bean标签中的class属性

@ComponentScan("com.wyc.pojo")

​ 扫描相应的包

@Import(WycConfig.class)

​ 导入配置类

@Aspect

标记注解是一个切面

@PathVariable:

让方法参数的值对应绑定到一个URL模板变量上

RequestParam:

前端接收的参数

@ResponseBody:

与@Controller一起使用,不会走视图解析器,直接返回一个字符串

RestController:

不会走视图解析器,直接返回一个字符串

@ApiModelProperty:

用于方法,字段; 表示对model属性的说明或者数据操作更改
value–字段说明
name–重写属性名字
dataType–重写属性类型
required–是否必填
example–举例说明
hidden–隐藏

@TableLogic:

注解表示逻辑删除

@Valid:

javax提供了@Valid(标准JSR-303规范),配合BindingResult可以直接提供参数验证结果。其中对于字段的特定验证注解比如@NotNull等.

可以用在方法、构造函数、方法参数和成员属性(字段)上

用在方法入参上无法单独提供嵌套验证功能。能够用在成员属性(字段)上,提示验证框架进行嵌套验证。能配合嵌套验证注解@Valid进行嵌套验证。

@Validated:

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

可以用在类型、方法和方法参数上。但是不能用在成员属性(字段)上

用在方法入参上无法单独提供嵌套验证功能。不能用在成员属性(字段)上,也无法提示框架进行嵌套验证。能配合嵌套验证注解@Valid进行嵌套验证。

BindingResult:

BindingResult用在实体类校验信息返回结果绑定。

实体类常用的校验注解有:

@Null 被注释的元素必须为null
@NotNull 被注释的元素不能为null
@AssertTrue 该字段只能为true
@AssertFalse 该字段的值只能为false
@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(“value”) 被注释的元素必须是一个数字,验证小数的最小值
@DecimalMax(“value”) 被注释的元素必须是一个数字,验证小数的最大值
@Size(max,min) 查该字段的size是否在min和max之间,可以是字符串、数组、集合、Map等
@Digits(integer,fraction) 检查是否是一种数字的整数、分数,小数位数的数字
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
@Pattern(regexp = “[abc]”) 被注释的元素必须符合指定的正则表达式。
@Email 被注释的元素必须是电子邮件地址
@Length(max=5,min=1,message=“长度在1~5”) 检查所属的字段的长度是否在min和max之间,只能用于字符串
@NotEmpty 被注释的字符串必须非空
@Range 被注释的元素必须在合适的范围内

@CreditCardNumber 对信用卡号进行一个大致的验证

@NotBlank 不能为空,检查时会将空格忽略

@NotEmpty 不能为空,这里的空是指空字符串

@Valid和BindingResult配套使用,@Valid用在参数前,BindingResult作为校验结果绑定返回。

bindingResult.hasErrors()判断是否校验通过,校验未通过,bindingResult.getFieldError().getDefaultMessage()获取在TestEntity的属性设置的自定义message,如果没有设置,则返回默认值"javax.validation.constraints.XXX.message"。

注意:
在实体类使用校验注解时,controller一定要使用bindingResult处理校验结果,且实体类作为查询参数时,避免被其他方法使用,不然的地方需要限制,有的没有,不需要限制的方法会报错。


标签:验证,注释,嵌套,bean,注解,属性
来源: https://www.cnblogs.com/super-brother/p/16260818.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有