Java 开发常用注解

本贴最后更新于 1425 天前,其中的信息可能已经事过境迁

一、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 按类型装配注入
@Required bean 的 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

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3167 引用 • 8207 回帖 • 2 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    940 引用 • 1458 回帖 • 160 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 431 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...