Java后端开发注解总结

Servlet

@WebServlet:配置该Servlet的访问路径

Filter

@WebFilter:拦截资源的路径

@WebFilter(filterName = “loginCheckFilter”, urlPatterns = “/*”)

Spring

Bean

@Component:管理bean

名称@Component(通用)
类型类注解
位置类定义上方
作用设置该类为spring管理的bean
属性value(默认):定义bean的id
使用@Component
@Component(“bookDao”)
@Controller(表现层)
@Service(业务层)
@Repository(数据层)

@Bean:第三方bean

名称@Bean
类型方法注解
位置方法定义上方
作用设置该方法的返回值作为spring管理的bean
属性value(默认):定义bean的id
使用@Bean

Bean作用范围

@Scope:是否单例
名称@Scope
类型类注解
位置类定义上方
作用设置该类创建对象的作用范围
可用于设置创建出的bean是否为单例对象
属性value(默认):定义bean作用范围,
默认值singleton(单例),可选值prototype(非单例)
使用@Scope
@Scope(“prototype”)

Bean生命周期

@PostConstruct:初始化方法
名称@PostConstruct
类型方法注解
位置方法上
作用设置该方法为初始化方法,在构造方法之后执行,替换 init-method
属性
@PostConstruct
@PreDestroy:销毁方法
名称@PreDestroy
类型方法注解
位置方法上
作用设置该方法为销毁方法,在销毁方法之前执行,替换 destroy-method
属性
@PreDestroy

配置类

@Configuration:主配置类

名称@Configuration
类型类注解
位置类定义上方
作用设置该类为spring配置类
属性value(默认):定义bean的id
使用@Configuration

@ComponentScan:配置类扫描

名称@ComponentScan
类型类注解
位置类定义上方
作用设置spring配置类扫描路径,用于加载使用注解格式定义的bean
属性value(默认):扫描路径,此路径可以逐层向下扫描
使用在配置类使用
@ComponentScan(“com.ming”)
@ComponentScan({com.ming.service",“com.ming.dao”})

@PropertySource:扫描配置文件

名称@PropertySource
类型类注解
位置类定义上方
作用加载properties文件中的属性值
属性value(默认):设置加载的properties文件对应的文件名或文件名组成的数组
使用在配置类使用
@PropertySource({“jdbc.properties”,“xxx.properties”})
@PropertySource({“*.properties”})
@PropertySource({“classpath:jdbc.properties”})

@Import:引入其他配置类

名称@Import
类型类注解
位置类定义上方
作用导入配置类
属性value(默认):定义导入的配置类类名
当配置类有多个时使用数组格式一次性导入多个配置类
使用@Import({JdbcConfig.class})

@EnableAspectJAutoProxy:开启AOP

名称@EnableAspectJAutoProxy
类型配置类注解
位置配置类定义上方
作用开启注解格式AOP功能

@EnableTransactionManagement:开启事务

名称@EnableTransactionManagement
类型配置类注解
位置配置类定义上方
作用设置当前Spring环境中开启注解式事务支持

@EnableWebMvc:开启SpringMVC注解驱动

名称@EnableWebMvc
类型配置类注解
位置SpringMVC配置类定义上方
作用开启SpringMVC多项辅助功能

属性注入

@Value:注入属性值(配置文件)

名称@Value
类型属性注解 或 方法注解(了解)
位置属性定义上方 或 标准set方法上方 或 类set方法上方
作用为基本数据类型 或 字符串类型 属性设置值
属性value(默认):要注入的属性值
使用一般注入配置文件的值:@Value(“${name}”)

@Autowired:注入引用类

名称@Autowired
类型属性注解 或 方法注解(了解) 或 方法形参注解(了解)
位置属性定义上方 或 标准set方法上方 或 类set方法上方 或 方法形参前面
作用为引用类型属性设置值
属性required:true/false,定义该属性是否允许为null
使用@Autowired
@Qualifier:注入引用类(指定beanId)
名称@Qualifier
类型属性注解 或 方法注解(了解)
位置属性定义上方 或 标准set方法上方 或 类set方法上方
作用为引用类型属性指定注入的beanId
属性value(默认):设置注入的beanId
使用@Qualifier(“bookDao”)

注意:@Qualifier不能独立使用,必须和@Autowired一起使用

Spring整合junit

@RunWith:设置类运行器

名称@RunWith
类型测试类注解
位置测试类定义上方
作用设置JUnit运行器
属性value(默认):运行所使用的运行期
使用@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration:加载配置类

名称@ContextConfiguration
类型测试类注解
位置测试类定义上方
作用设置JUnit加载的Spring核心配置
属性classes:核心配置类,可以使用数组的格式设定加载多个配置类
locations:配置文件,可以使用数组的格式设定加载多个配置文件名称
@ContextConfiguration(classes = {SpringConfiguration.class})

AOP

@Aspect:定义切面类

名称@Aspect
类型类注解
位置切面类定义上方
作用设置当前类为AOP切面类

@Pointcut:设置切入点

名称@Pointcut
类型方法注解
位置切入点方法定义上方
作用设置切入点方法
属性value(默认):切入点表达式
@Pointcut(“execution(void com.itheima.dao.BookDao.update())”)

@Before:前置通知

名称@Before
类型方法注解
位置通知方法定义上方
作用设置当前通知方法与切入点之间的绑定关系,当前通知方法在原始切入点方法前运行
@Before(“pt()”):pt为使用了Pointcut的方法名

@Around:环绕通知

@After:后置通知

@AfterReturning:返回后通知

@AfterReturning:异常后通知

事务

@Transactional

名称@Transactional
类型接口注解 类注解 方法注解
位置业务层接口上方 业务层实现类上方 业务方法上方
作用为当前业务层方法添加事务(如果设置在类或接口上方则类或接口中所有方法均添加事务)
@Transactional
@Transactional(propagation = Propagation.REQUIRES_NEW):事务传播

跨域

三个地方,任何一个地方不相同产生跨域问题

  • 访问协议:http https
  • 访问地址:192.168.10.10 172.168.10.1
  • 端口号:9528 8201

在controller类中添加注解@CrossOrigin解决跨域

Springboot

@SpringBootApplication:springboot引导类

@SpringBootTest:整合junit

@Mapper:管理dao

@ServletComponentScan:扫描某些注解

在SpringBootApplication上使用@ServletComponentScan注解后,Servlet、Filter、Listener可以直接通过@WebServlet、@WebFilter、@WebListener注解自动注册,无需其他代码。

异常处理

@ControllerAdvice:拦截指定的Controller

名称@ControllerAdvice
类型类注解
位置类上方
作用拦截指定的Controller
使用@ControllerAdvice(annotations = {RestController.class, Controller.class})

@RestControllerAdvice:用于标识类为REST风格对应的异常处理器

名称@RestControllerAdvice
类型类注解
位置Rest风格开发的控制器增强类定义上方
作用为Rest风格开发的控制器类做增强

**说明:**此注解自带@ResponseBody注解与@Component注解,具备对应的功能

@ExceptionHandler:异常处理

名称@ExceptionHandler
类型方法注解
位置专用于异常处理的控制器方法上方
作用设置指定异常的处理方案,功能等同于控制器方法,
出现异常后终止原始控制器执行,并转入当前方法执行
使用@ExceptionHandler(Exception.class)

**说明:**此类方法可以根据处理的异常不同,制作多个方法分别处理对应的异常

SpringMVC

@RequestMapping:请求访问路径

名称@RequestMapping
类型类注解或方法注解
位置SpringMVC控制器类或方法定义上方
作用设置当前控制器方法请求访问路径
相关属性value(默认),请求访问路径
@RequestMapping(“/save”)
@RequestMapping(value = “/users/{id}” ,method = RequestMethod.GET)

@GetMapping:get请求(查询)

@PostMapping:post请求(新增)

@PutMapping:put请求(修改)

@DeleteMapping:delete请求(删除)

@ResponseBody:不解析返回值

名称@ResponseBody
类型类注解或方法注解
位置SpringMVC控制器类或方法定义上方
作用设置当前控制器方法响应内容为当前返回值,无需解析
相关属性pattern:指定日期时间格式字符串

@RequestParam:绑定请求参数和形参

名称@RequestParam
类型形参注解
位置SpringMVC控制器方法形参定义前面
作用绑定请求参数与处理器方法形参间的关系
相关参数required:是否为必传参数
defaultValue:参数默认值
使用(@RequestParam List likes)
(@RequestParam(“name”) String userName , int age)

注意:写上@RequestParam注解框架就不需要自己去解析注入,能提升框架处理性能

@RequestBody:绑定请求参数和形参

名称@RequestBody
类型形参注解
位置SpringMVC控制器方法形参定义前面
作用将请求中请求体所包含的数据传递给请求参数,此注解一个处理器方法只能使用一次
使用(@RequestBody List list)

@PathVariable:绑定请求参数和形参

名称@PathVariable
类型形参注解
位置SpringMVC控制器方法形参定义前面
作用绑定路径参数与处理方法形参间的关系,要求路径参数名与形参名一一对应
使用(@PathVariable Integer id)

@RequestBody@RequestParam@PathVariable,这三个注解之间的区别和应用分别是什么?

  • 区别

    • @RequestParam用于接收url地址传参或表单传参 表单和blogs?blogId=1
    • @RequestBody用于接收json数据
    • @PathVariable用于接收路径参数,使用{参数名称}描述路径参数/blogs/1
  • 应用

    • 后期开发中,发送请求参数超过1个时,以json格式为主,@RequestBody应用较广
    • 如果发送非json格式数据,选用@RequestParam接收请求参数
    • 采用RESTful进行开发,当参数数量较少时,例如1个,可以采用@PathVariable接收请求路径变量,通常用于传递id值

@DateTimeFormat:指定Date格式

名称@DateTimeFormat
类型形参注解
位置SpringMVC控制器方法形参前面
作用设定日期时间型数据格式
相关属性pattern:指定日期时间格式字符串
使用(@DateTimeFormat(pattern=“yyyy-MM-dd”) Date date)
(@DateTimeFormat(pattern=“yyyy/MM/dd HH:mm:ss”) Date date)

@RestController=@Controller+@ResponseBody

名称@RestController
类型类注解
位置基于SpringMVC的RESTful开发控制器类定义上方
作用设置当前控制器类为RESTful风格,
等同于@Controller与@ResponseBody两个注解组合功能

MyBatis

@Param:多参数传递时重命名

@Select:查询

@Insert:添加

@Update:修改

@Delete:删除

MyBatisPlus

@TableField:设置属性和数据库的字段关系

名称@TableField
类型属性注解
位置模型类属性定义上方
作用设置当前属性对应的数据库表中的字段关系
相关属性value(默认):设置数据库表字段名称
exist:设置属性在数据库表字段中是否存在,默认为true,此属性不能与value合并使用
select:设置属性是否参与查询,此属性与select()映射配置不冲突
fill:填充策略
使用@TableField(value=“pwd”)
@TableField(value=“pwd”,select=false)
@TableField(exist=false)
@TableField(fill = FieldFill.INSERT):插入时填充
@TableField(fill = FieldFill.INSERT_UPDATE):插入和修改时填充

@TableName:设置表名

名称@TableName
类型类注解
位置模型类定义上方
作用设置当前类对应于数据库表关系
相关属性value(默认):设置数据库表名称
使用@TableName(“tbl_user”)

@TableId:设置主键生成方式

名称@TableId
类型属性注解
位置模型类中用于表示主键的属性定义上方
作用设置当前类中主键属性的生成策略
相关属性value(默认):设置数据库表主键名称
type:设置主键属性的生成策略,值查照IdType的枚举值
使用@TableId(type = IdType.ASSIGN_UUID)

AUTO:数据库自增

ASSIGN_ID:雪花算法生成id

ASSIGN_UUID:以UUID生成算法作为id生成策略

@TableLogic:逻辑删除

名称@TableLogic
类型属性注解
位置模型类中用于表示删除字段的属性定义上方
作用标识该字段为进行逻辑删除的字段
相关属性value:逻辑未删除值
delval:逻辑删除值
使用@TableLogic(value=“0”,delval=“1”)

@MapperScan(“com.dao”):扫描dao

扫描后可以不使用@Mapper

SpringCloud

@EnableDiscoveryClient:启动类注解,开启Nacos服务注册

@EnableFeignClients(basePackages = “”):启动类注解,开启远程调用

@FeignClient:类注解,标记远程调用的模块

lombok

  • @Setter:为模型类的属性提供setter方法
  • @Getter:为模型类的属性提供getter方法
  • @ToString:为模型类的属性提供toString方法
  • @EqualsAndHashCode:为模型类的属性提供equals和hashcode方法
  • @Data:是个组合注解,包含上面的注解的功能
  • @NoArgsConstructor:提供一个无参构造函数
  • @AllArgsConstructor:提供一个包含所有参数的构造函数
  • @Slf4j:打印日志信息

Spring Cache

注解说明
@EnableCaching开启缓存注解功能
@Cacheable在方法执行前spring先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;若没有数据,调用方法并将方法返回值放到缓存中
@CachePut将方法的返回值放到缓存中
@CacheEvict将一条或多条数据从缓存中删除

key=“缓存key”,value=“缓存名称,每个缓存名称可以有多个key”,condition=“满足条件则缓存”,unless=“满足条件则不缓存”,allEntries="true"清除该key所有数据,keyGenerator = “keyGenerator自定义key规则,在配置类配置”

Swagger

注解说明
@EnableSwagger2开启Swagger2
@Api修饰整个类,描述Controller的作用
@ApiOperation描述一个类的一个方法,或者说一个接口
@ApiParam单个参数描述
@ApiModel用对象来接收参数
@ApiModelProperty用对象接收参数时,描述对象的一个字段
@ApiImplicitParam一个请求参数
@ApiImplicitParams多个请求参数
@EnableKnife4j功能增强,可以查看接口文档
http://localhost:+端口号+/doc.html

EasyExcel

注解说明
@ExcelProperty设置表头内容
@ExcelProperty(value = “用户编号”,index = 0),index为第几列
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明仔爱编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值