Java 开发中常见的 Spring、Lombok、SpringMVC 等注解汇总

Java 注解 – 最基本的注解,其他注解都是从此得来
注解用途备注
@Override检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。
@Deprecated标记过时方法。如果使用该方法,会报编译警告
@SuppressWarnings指示编译器去忽略注解中声明的警告
@Retention标识这个注解怎么保存,是只在代码中,还是编入class文件中,或者是在运行时可以通过反射访问
@Documented标记这些注解是否包含在用户文档中
@Target标记这个注解应该是哪种Java成员
@Inherited标记这个注解是继承于哪个注解类(默认注解并没有继承于任何子类)
@SafeVarargsJava7开始支持,忽略任何使用参数为泛型变量的方法或构造函数调用产生的警告
@FunctionalInterfaceJava8开始支持,标识一个匿名函数或函数式接口
@RepeatableJava8开始支持,标识某注解可以在同一个声明上使用多次
Spring 注解
注解用途备注
@SpringBootApplication开启自动配置相当于@ComponentScan、@EnableAutoConfiguration、@SpringBootConfiguration三个注解

可选参数含义:
exclude = a.class:移除该类的对象
excludeName:过滤的类全路径
scanBasePackages:要扫描的包路径
scanBasePackageClasses:要扫描的类的对象
@ComponentScan自动扫描并加载符合条件的组件将@Component、@Repository、@Bean等定义加载到IoC容器中,
可以通过basePackages等属性来细粒度的定制@ComponentScan自动扫描的范围,如果不指定,则默认Spring框架实现会从声明@ComponentScan所在类的package进行扫描

可选参数含义:
basePackageClasses:对basepackages()指定扫描注释组件包类型安全的替代
excludeFilters:指定不适合组件扫描的类型
includeFilters:指定哪些类型有资格用于组件扫描
lazyInit:指定是否应注册扫描的beans为lazy初始化
nameGenerator:用于在Spring容器中的检测到的组件命名
resourcePattern:控制可用于组件检测的类文件
scopedProxy:指出代理是否应该对检测元件产生,在使用过程中会在代理风格时尚的范围是必要的
scopeResolver:用于解决检测到的组件的范围
useDefaultFilters:指示是否自动检测类的注释
@EnableAutoConfiguration收集和注册特定场景相关的bean定义将所有符合自动配置条件的bean定义加载到IoC容器
@SpringBootConfiguration标注当前类是配置类@SpringBootConfiguration继承自@Configuration,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名
@EnableConfigurationProperties当@EnableConfigurationProperties注解应用到你的@Configuration时, 任何被@ConfigurationProperties注解的beans将自动被Environment属性配置与@Configuration、 @ConfigurationProperties一起使用
@ConditionalOnBean当给定的在bean存在时,则实例化当前Bean用于修饰bean
@ConditionalOnMissingBean当给定的在bean不存在时,则实例化当前Bean用于修饰bean
@ConditionalOnClass当给定的类名在类路径上存在,则实例化当前Bean用于修饰bean
@ConditionalOnMissingClass当给定的类名在类路径上不存在,则实例化当前Bean用于修饰bean
@AliasFor用于为注解属性声明别名复合注解、继承注解
Mybatis 注解
注解用途备注
@Mapper在编译之后会生成相应的接口实现类接口类上添加
@MapperScan指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类相当于@Mapper的批量操作
Lombok 注解
注解用途备注
@Data提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@EqualsAndHashCode实现equals()方法和hashCode()方法
@ToString实现toString()方法
@Setter实现属性的set方法
@Getter实现属性的get方法
@NonNull标注属性不能为null
@Log4j提供一个属性名为log的log4j 日志对象
@NoArgsConstructor实现一个无参的构造方法
@AllArgsConstructor实现一个全参的构造方法
Feign 注解
注解用途备注
@EnableFeignClients开启 Spring 对 Feign 的支持高版本SpringBoot(引入spring-cloud-openfeign)与低版本(引入spring-cloud-netflix-core)引入的依赖不同
Ribbon 注解
注解用途备注
@LoadBalanced开启负载均衡的功能给RestTemplate bean 加一个@LoadBalanced注解,即可使 RestTemplate 在请求时拥有客户端负载均衡的能力
声明 Bean 注解
注解用途备注
@Controller用于标注控制层组件
@Service用于标注业务层组件
@Repository用于标注数据访问层组件
@Component如果没有明确分类,使用此注解标记为组件
注入 Bean 注解
注解用途备注
@Autowired默认以byType方式
@Qualifier@Autowired+@Qualifier组合使用,@Qualifier指定byName
@Resource默认以byName方式
@Inject可用于构造方法、方法、属性@Inject与@AutoWired一致,区别在于@Inject没有required属性
Bean 属性支持注解
注解用途备注
@PostConstructspring容器启动时执行,可作为一些数据的常规化加载
@Scope设置Spring容器如何新建Bean实例,默认单例
配置类注解
注解用途备注
@ComponentScan用于对Component组件进行扫描,指定扫描包路径
@Configuration声明当前类为配置类
@ContextConfiguration声明加载配置ApplicationContext测试时使用
@Bean声明当前方法为一个bean
@PropertySource加载配置文件
@Value为属性注入值
切面注解
注解用途备注
@Aspect声明一个切面
@Pointcut声明一个切点
@After在切点方法之后执行
@Before在切点方法之前执行
@Around在切点执行之前和之后执行
@AfterReturning入参相比较@After多了切点返回值
@AfterThrowing异常抛出
SpringMVC 注解
注解用途备注
@RestController该注解为一个组合注解,相当于@Controller和@ResponseBody的组合
@RequestMapping用于映射Web请求,包括访问路径和参数
@ResponseBody支持将返回值放在response内,而不是一个页面,通常用户返回json数据
@RequestBody允许request的参数在request体中,而不是在直接连接在地址后面
@PathVariable用于接收路径参数
@ControllerAdvice控制器的全局配置,结合@ExceptionHandler、@InitBinder、@ModelAttribute注解到方法上
Shiro 权限控制注解
注解用途备注
@RequiresPermissions判断用户是否有相应的权限
@RequiresAuthentication验证用户是否登录,反之AuthorizationException异常
@RequiresRoles验证是否有某角色权限,反之AuthorizationException异常
@RequiresGuest验证是否是一个guest的请求
@RequiresUser验证用户是否被记忆成功登录(subject.isAuthenticated() 结果为true)
被记忆的(subject.isRemembered()结果为true)
参数校验 javax.validation.constraints 注解
注解用途备注
@Null被注释的元素必须为 null
@NotNull被注释的元素必须不为 null
@AssertTrue被注释的元素必须为 true
@AssertFalse被注释的元素必须为 false
@Min(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max=, min=)被注释的元素的大小必须在指定的范围内
@Digits (integer, fraction)被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past被注释的元素必须是一个过去的日期
@Future被注释的元素必须是一个将来的日期
@Pattern(regex=,flag=)被注释的元素必须符合指定的正则表达式
参数校验 Hibernate Validator 附加的 constraint 注解
注解用途备注
@NotBlank(message =)验证字符串非null,且长度必须大于0
@Email被注释的元素必须是电子邮箱地址
@Length(min=,max=)被注释的字符串的大小必须在指定的范围内
@NotEmpty被注释的字符串的必须非空
@Range(min=,max=,message=)被注释的元素必须在合适的范围内
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java Lombok 是一个开源的Java库,它可以帮助Java开发人员减少Java代码的冗余并增加代码可读性。它通过注解的方式,自动为Java类生成一些常用的方法和代码。 以下是Java Lombok注解的一些常用的示例: @Data:该注解可以自动生成Java类的getter、setter、equals、hashCode、toString等方法。 @NoArgsConstructor:该注解可以自动生成一个无参构造函数。 @AllArgsConstructor:该注解可以自动生成一个包含所有参数的构造函数。 @Builder:该注解可以自动生成一个Builder模式的Java类。 @Slf4j:该注解可以自动生成一个名为log的slf4j日志对象。 @EqualsAndHashCode:该注解可以自动生成equals和hashCode方法。 @Getter / @Setter:该注解可以自动生成getter和setter方法。 @ToString:该注解可以自动生成toString方法。 @NonNull:该注解可以在参数前使用,表示该参数不能为空。 @RequiredArgsConstructor:该注解可以自动生成一个包含必需参数的构造函数。 @Cleanup:该注解可以自动关闭资源,如IO流等。 @Synchronized:该注解可以生成同步方法。 @Value:该注解可以生成一个不可变的Java类。 @Accessors:该注解可以设置getter和setter的链式调用方式。 @UtilityClass:该注解可以生成一个工具类。 总的来说,Java Lombok注解可以让Java开发人员更加专注于业务逻辑的实现,而不需要关心Java类的getter、setter、equals、hashCode、toString等方法的实现细节。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值