使用注解的优势:
1.采用纯java代码,不在需要配置繁杂的xml文件
2.在配置中也可享受面向对象带来的好处
3.类型安全对重构可以提供良好的支持
4.减少复杂配置文件的同是亦能享受到springIoC容器的功能
以下是常用常见的注解:
@Service 服务层组件,用于标注业务层组件,表示定义一个bean(实体类)
@Repository 在数据访问层使用(dao层)
@Controller 用于定义控制类,在spring项目中空气负责将用户发来的URL请求转发对应的服务层接口(service层),一般这个注解在类中,通常方法需要配合注解@RequestMapping。
@RestController 用于标注控制层组件,@ResponseBody和@Controller的合集
@RequestMapping:提供路由信息,负责URL到Controller中的具体函数的映射。
@Component、@Controller、@Service等这些注解的类,并注册为Bean,可以自动收集所有的Spring组件,包括@Configuration类。我们经常使用@ComponentScan注解搜索beans,并结合@Autowired注解导入。可以自动收集所有的Spring组件,包括@Configuration类。我们经常使用@ComponentScan注解搜索beans,并结合@Autowired注解导入。如果没有配置的话,Spring Boot会扫描启动类所在包下以及子包下的使用了@Service,@Repository等注解的类。
@ApiModelProperty()用于方法,字段; 表示对model属性的说明或者数据操作更改 (value–字段说明 name–重写属性名字 dataType–重写属性类型 required–是否必填 example–举例说明 hidden–隐藏)
@TableName(“”)指向表 **
@TableId(value=“id”,type = IdTyp.AUTO)指向表中的Id
@TableField(“user_id”) 指向表中user_id,点表中的字段与所使用的字段不一样时使用
@JsonSerialize(using=**.class)可以实现数据类型的转换,该注解作用在属性的getter()方法上
@JsonProperty 此注解用于属性上,作用是该属性的名称序列化为另一个名称,如把trueName属性序列化为name,@JasonProperty(“name”),对属性名称重命名,比如在很多场景下Java对象的属性是按照规范的驼峰书写,但是数据库设计时是下划线连接方式,此处在进行映射的时候就可以使用该注解
@JsonIgnore此注解用于属性或者方法上(最好是属性上),用来完全忽略被注解的字段和方法对应的属性,即便这个字段或方法可以被自动监测到或者还有其他的注解,一般标记在属性或者方法上,返回的json数据即不包括该属性。
使用场景:需要把一个List<CustomerInfo >转换成json格式的数据传递给前台。但实体类中基本属性字段的值都存储在快照属性字段中。此时我可以在业务层中做处理,
把快照属性字段的值赋给实体类中对应的基本属性字段。最后,我希望返回的json数据中不包含这两个快照字段,那么在实体类中快照属性上加注解@JsonIgnore
可以参考:
https://www.cnblogs.com/benming/p/11583545.html
https://www.cnblogs.com/Trainoo/p/8044544.html
https://blog.csdn.net/weixin_40753536/article/details/81285046
网友评论