实体-model注解
lombok注解
@Data
@Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法
@NoArgsConstructor
生产一个无参的构造方法
@Accessors(chain = true)
开启链式编程,可以通过对象连续的调用set()方法
@ToString(callSuper = true)
重写ToString方法
@EqualsAndHashCode(callSuper = true)
参考链接:https://blog.csdn.net/qq_42888567/article/details/105145024
在类是继承父类的情况下:EqualsAndHashCode实则就是在比较两个对象的属性;
当@EqualsAndHashCode(callSuper = false)时不会比较其继承的父类的属性可能会导致错误判断;
当@EqualsAndHashCode(callSuper = true)时会比较其继承的父类的属性;
@TableName(value = “数据库表名称”)
用来标识实体类名称和数据表的对应关系
------------属性上添加的注解------------------------------------------------------
@ApiModelProperty
@ApiModelProperty()用于方法,字段; 表示对model属性的说明或者数据操作更改
value–字段说明
name–重写属性名字
dataType–重写属性类型
required–是否必填
example–举例说明
hidden–隐藏
@Column注解
用来标识实体类中属性与数据表中字段的对应关系
示例:
实体-model-时间格式转换注解
@JsonFormat注解和@DateTimeFormat
注解@JsonFormat主要是后台到前台的时间格式的转换
@JsonFormat(pattern=“yyyy-MM-dd”,timezone = “GMT+8”)
pattern:是你需要转换的时间日期的格式
timezone:是时间设置为东八区,避免时间在转换中有误差
提示:@JsonFormat注解可以在属性的上方,同样可以在属性对应的get方法上,两种方式没有区别
注解@DataFormAT主要是前后到后台的时间格式的转换
示例:
JAVA注解
@Resource
@Resource注解与@Autowired类型,也是用来依赖注入的,@Resource是java层面提供的注解,@Autowired是Spring所提供的注解,它们依赖注入的底层实现逻辑不同。
@Resource注解的name属性
针对@Resource注解中name属性是否有值,@Resource的依赖注入底层流程也不同
@Resource注解中name属性有值
Spring会直接根据所指定的name值去Spring容器找Bean对象,找到则成功,没有找到则报错。
@Resource注解中name属性没有值
1、先判断该属性名字在Spring容器中是否存在Bean对象
2、存在,成功找到Bean对象进行注入
3、不存在,根据属性类型去Spring容器找Bean对象,找到一个则进行注入
@Value注解
@Value注解也是对属性进行依赖注入的,是用来从Properties文件中获取值的,也可以解析SpEL(Spring表达式)
@Value注解的三种用法
@Value(“liu”):直接将字符串“liu”赋值给属性,如果属性不是String类型,无法进行类型转换,则报错
@Value("
l
i
u
"
)
:
会
把
{liu}"):会把
liu"):会把{}中的字符串当做key去配置文件中找出对应的value 复制给属性,如果没有找到会把“${liu}”当做普通字符串注入给属性
@Value("#{liu}"):会将#{}中的字符串当做Spring表达式进行解析,Spring会把“liu”当做beanName,并从Spring容器中找到对象Bean,如果找到则进行属性注入,没找到则报错
@Override
表示重写方法
目的:
1、方便阅读;
2、添加上@Override注解编译器会检查是否正确并给出提示,
如果父类的方法是私有的,加上此注解会提示:方法不会覆盖或实现超类型的方法
如果不添加此注解,编译器无法检查出是否存在问题,子类的方法是一个全新的方法,而不是重写的父类的方法,也不会覆盖父类的方法
Spring注解
跨域注解@CrossOrigin
1、springMVC4.2以上版本才支持@CrossOrigin注解
将此注解添加到Controller上,可以为整个controller启用@CrossOrigin
其中@CrossOrigin中的2个参数:
origins : 允许可访问的域列表
maxAge:准备响应前的缓存持续的最大时间(以秒为单位)
@RestController
用于标注控制层组件
Spring4之后新加入的注解
是@ResponseBody和@Controller的组合注解,可以看到@RestController上有这两个注解7
@Service
用于标注业务层组件
@Component
泛指组件
@Repository
用于标注数据访问组,DAO组件
@Transactional
事务管理
@AutoWired注解
表示某个属性是否需要进行依赖注入,可以卸载属性和方法上。注解中的required默认为true,表示如果没有对象可以注入给属性则抛出异常
@Autowired加在对象的属性上
如果一个对象的属性加了@Autowired注解,Spring进行Bean的声明周期过程中的属性填充这一步骤,
会基于实例化出来的对象对该对象中加了@Autowired的属性自动赋值
@Autowired加在方法上
Spring在Bean生命周期的属性填充阶段,会根据方法的参数类型、参数名字从Spring容器找到对象当做方法入参,自动反射调用该方法
@Autowired加在构造方法上
@Autowired加在构造方法上,Spring会在推断构造方法阶段,选择该构造方法来进行实例化,在反射调用构造方法之前,会先根据构造方法参数类型、 参数名从Spring容器中找到Bean对象,当做构造方法入参
@RequestMapping
SpringMVC以前的版本使用@RequestMapping
使用RequestMapping实现get请求类型的方法
最新的Spring中使用以下注解
@GetMapping(value = {"/get/{id}"})
处理GET类型请求的方法
@PostMapping(value = {"/create"})
处理POST类型请求的方法
@DeleteMapping(value = {"/delete/{id}"})
处理DELETE类型请求的方法
@PutMapping(value = {"/deleteByIds"})
处理PPUT类型请求的方法
swagger注解
@Api
用于类,表示当前类是swagger的资源
@ApiOperation
value:方法描述; notes:用于提示内容;
用于方法,表示一个http请求的操作
@ApiParam(value = “主键id”, required = true)
name:参数名; value:参数说明; required:是否必填
用于方法,参数,字段说明,标识对参数添加元数据,说明是否必填等
@ApiModel()
用于类,表示对类进行说明,用于参数用实体类接收
@ApiModelProperty()
value:字段说明;name:重写属性名字;dataType:重写属性类型;required:是否必填;example:举例说明;hidden:隐藏;
用于方法,字段,标识对model属性的说明或数据操作
@ApiImplicitParam(name = “ids”, value = “ids”, dataType = “List”, required = true)
用于方法,表示单独的请求参数
@ApiImplicitParams()
用于方法,包含多个@ApiImplicitParam
@PathVariable String id
获取url中的数据(获取url中id的值)
@RequestParam(required = false)
获取请求参数的值
@RequestBody
接收请求体中的数据
@ApiIgnore()
用于类、方法、方法参数,表示这个类或方法被忽略