Spring和Java中一些常用注解的基本解释

1 篇文章 0 订阅
1 篇文章 0 订阅
本文介绍了Spring和Java中的一些关键注解,包括@PostConstruct和@PreDestroy的生命周期管理,@Autowired、@Qualifier和@Resource的依赖注入,以及@Component、@Controller、@Service和@Repository在组件划分中的应用。此外,还讲解了@Data、@Scope的作用,@Mapper和@MapperScan在MyBatis中的使用,以及@RequestBody和@Valid在处理HTTP请求时的功能。在Java方面,提到了元注解如@Retention和@Target,以及@Deprecated和@SuppressWarnings的使用场景。
摘要由CSDN通过智能技术生成

Spring(Boot)中一些常用注解的基本解释

 

@PostConstruct 和 @PreDestroy

1.@PostConstruct说明

     被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的inti()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。

2.@PreDestroy说明

     被@PreDestroy修饰的方法会在服务器卸载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的destroy()方法。被@PreDestroy修饰的方法会在destroy()方法之后运行,在Servlet被彻底卸载之前。

参考:https://blog.csdn.net/thinkingcao/article/details/71171222

 

@Autowired + @Qualifier 和 @Resource

  通过这个标示,表明了哪个实现类才是我们所需要的,添加@Qualifier注解,需要注意的是@Qualifier的参数名称为我们之前定义@Service注解的名称之一。

  @Autowired默认按type注入。

  @Qualifier会配合@Autowired使用。用处:当一个接口有多个实现的时候,为了指名具体调用哪个类的实现。

  

  @Resource(这个注解属于J2EE的),默认按name注入,可以通过name和type属性进行选择性注入。

    

    参考1:Spring的注解@Qualifier用法

    参考2:@Autowired @Resource @Qualifier的区别

 

@Component、@Controller、@Service 和 @Repository

@Component  —— 定义Bean, 不好归类时使用.

@Controller("Bean的名称") —— 定义控制层Bean

@Service("Bean的名称") —— 定义业务层Bean

@Repository("Bean的名称") —— 定义DAO层Bean

                                                                (仅供参考)

@Data

需要lombok插件

@Data : 注解在类上, 为类提供读写(get、set)属性, 此外还提供了 equals()、hashCode()、toString() 方法

@Getter/@Setter : 注解在类上, 为类提供读写属性

@ToString : 注解在类上, 为类提供 toString() 方法

@Slf4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象

@Log4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象

 

@Scope

参考:spring中的scope详解

 

@Mapper 和 @MapperScan

@Mapper注解:

作用:在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类

添加位置:接口类上面

@MapperScan

作用:指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类

添加位置:是在Springboot启动类上面添加,

@RequestBody

@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的)。POST。@RequestBody最多只能有一个,而@RequestParam()可以有多个。

参考:@RequestBody的使用

@Valid

@RequestBody可与@Valid配合使用。

BindingResult为验证结果。

参考:@Valid 注解用法详解


Java中一些常用注解的基本解释

 

java中元注解有四个: @Retention @Target @Document @Inherited


 @Retention:注解的生命周期
 @Retention(RetentionPolicy.SOURCE) //注解仅存在于源码中,在class字节码文件中不包含
 @Retention(RetentionPolicy.CLASS) // 默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得,
 @Retention(RetentionPolicy.RUNTIME) // 注解会在class字节码文件中存在,在运行时可以通过反射获取到
  
 @Target:注解的作用目标
 @Target(ElementType.TYPE) //接口、类、枚举、注解
 @Target(ElementType.FIELD) //允许作用在属性字段上
 @Target(ElementType.METHOD) //方法
 @Target(ElementType.PARAMETER) //方法参数
 @Target(ElementType.CONSTRUCTOR) //构造函数
 @Target(ElementType.LOCAL_VARIABLE)//局部变量
 @Target(ElementType.ANNOTATION_TYPE)//注解
 @Target(ElementType.PACKAGE) ///包

 @Documented:注解是否应当被包含在 JavaDoc 文档中。

 注解表明这个注解应该被 javadoc工具记录. 默认情况下,javadoc是不包括注解的. 但如果声明注解时指定了 @Documented,则它会被 javadoc 之类的工具处理, 所以注解类型信息也会被包括在生成的文档中

 @Inherited:是否允许子类继承该注解。

 这是一个稍微复杂的注解类型. 它指明被注解的类会自动继承. 更具体地说,如果定义注解时使用了 @Inherited 标记,然后用定义的注解来标注另一个父类, 父类又有一个子类(subclass),则父类的所有属性将被继承到它的子类中

 

@Deprecated

表示此类或方法过时了。

 

@SuppressWarnings

主要用来压制 java 的警告

 

@ApiOperation和@ApiParam

为添加的API相关注解,个参数说明如下: 

@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response = “接口返回参数类型”, notes = “接口发布说明”);其他参数可参考源码; 

@ApiParam(required = “是否必须参数”, name = “参数名称”, value = “参数具体描述”)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值