Java开发常用注解

2020-05-24

一、java注解

注释作用
@Override覆盖父类方法
@interface@interface MyTest{}自定义注解
@Inherited标注与父类,子类继承父类注解

二:Lombok:

依赖:

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.10</version>
    <scope>provided</scope>
</dependency>

优点:

  1. 精华代码,通过注解实现,@Data可以简单定义一个java Bean
  2. @ToString、@EqualsAndHashCode、@Getter、@Setter等注解省去大量的get、set、toString,提高效率,代码更加简洁
  3. 总之就是使用之后代码更加简洁,对于实体类只需要定义属性,不需要编写大量get、set、toString

缺点:

  1. 需要安装对应依赖,项目中一个人使用,大家都得使用
  2. 代码可读性降低,在编写阶段,调试容易带来一定问题
  3. 使用需要阅读底层原理,避免出现bug,eg:当我们使用@Data注解时候调用equals时如果没使用@EqualsAndHashCode(callSuper=true)就会出现只比较子类属性,不会比较父类继承属性
  4. 默认注解方法全部为public,安全性、封装性降低
注解使用说明
@Data会自动生成get、set、equal、同String、hashCode等相关方法
@Getter属性生成对应属性的getter方法
@Setter属性生成对应属性的setter
@NonNull属性、构造器非空声明、避免空指针
@Cleanup局部变量自动调用close()方法(eg:文件流读取)
@EqualsAndHashCode默认使用所有属性来生成equals和hasCode,也能通过exclude注解来排除一些属性
@ToString生成对应tostring方法
@NoArgsConstructor,无参构造器
@RequiredArgsConstructor部分参数构造器
@AllArgsConstructor全部参数构造器###

依赖:

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.6</version>
</dependency>

三、mybatis

mybatis最初配置信息是基于 XML ,SQL定义在 XML 中的。而MyBatis 3提供了新的基于注解的配置

注解说明
@select查询
@results数据库表与bean字段的映射关系
@update更新
@insert新增
@delete删除
@ResultMap设置返回类型映射
@MapKey查询数据转化为Map<>
@Param重命名参数

PS:# and $ 区别

#{}采用预编译处理,之后通过参数替换?可以有效防止SQL注入问题

${}采用直接赋值,未经过预编译处理,非安全,存在SQL注入

四、Spring系列

1、

注解说明
@Controller标注控制层组件
@Service标注业务层组件
@Bean标注作为Spring中的bean
@Scope作用域
@Autowired按类型装配注入
@Requiredbean的setter方法,属性必须在xml文件填充否则抛出异常
@Qualifier指明哪个bean被真正装配
@ResponseBody接收前端数据
@RestController标识控制层组件,传递数据为json类型,@ResponseBody和@Controller
@RequestMapping处理请求地址映射注解
@GetMapping表明是一个查询URL映射
@PutMapping表明是一个更新URL映射
@PostMapping表明是一个怎加URL映射
@DeleteMapping表明是一个删除URL映射
@Async用于异步方法调用
@EnableAutoConfiguration自动配置
@ComponentScan组件扫描,自动发现装配bean
@Value配置属性值
@Pathvariable获取路径变量
@ExceptionHandler(Exception.class)标注方法上统一的异常处理
@DateTimeFormat时间格式刷
  1. Entity实体类:
注解说明
@DynamicUpdate发生更新时,只更新改变字段
@Dynamiclnsert字段为空则不执行插入
@Id标记主键
@Entity与数据进行映射的实体类
@CeneratedValue自增属性
@JsonProperty序列化为注解中的名称

❤️ 遇到新的持续更新中❤️


标题: Java开发常用注解
作者:sirwsl
地址:https://www.wslhome.top/articles/2020/05/23/1590249315247.html