Java常用注解收集

终版

  • 1)@SpringBootTest: 目的是加载ApplicationContext,启动spring容器;
  • 2)@RunWith:测试启动器,让Test在spring容器环境下执行,假如测试类中没有这个注解,会导致service、dao等自动注入失败。
    org.junit.jupiter.api(junit-jupiter-api包)不需要该注解,只需要@SpringBootTest即可;但junit4需要,否则报错如下所示;
    在这里插入图片描述
    <dependency>
    	<groupId>junit</groupId>
    	<artifactId>junit</artifactId>
    	<version>4.12</version>
    </dependency>
    
  • 3)@Qualifier(value=“messageServiceImpl”)。当接口存在多个实现时,指定具体实现。

常用

  • @Autowired

controller

@RestConstroller
// MediaType在spring-web的jar下,proceduces可以用下面几个中一个                   
@RequestMapping(value = "/api/v1/xxx", produces = MediaType.APPLICATION_JSON_VALUE)
@RequestMapping(value = "/api/v1/xxx", produces = "application/json;charset=UTF-8"
@RequestMapping(value = "/api/v1/xxx", produces = MediaType.APPLICATION_JSON_VALUE)
public class XxxController {

	// 比如分页获取请求
	@GetMapping("/xxx")
	// 或者getXxx(@RequestParam(required=false, defaultValue="", value="表示接收的值,否则默认与param同名") Object param)
	public Object getXxx(Object param){...}
	
	// 插入、修改接口,简单的审核是否通过也需要;@RequestBody必需,否则无法收到参数
	@PostMapping("/xxx")
	public Object getXxx(@RequestBody Object param, HttpServletRequest request){request.getHeader("x-auth-uid"); ...}
	
	// 删除操作
	@DeleteMapping("/xxx/{id})
	public Object getXxx(@PathVariable("id") Object param){...}
}

@Controller与@RestController区别

  • @Controller。web 页面,默认,返回的是一个string ,代表展示哪个模板页面或者是要跳转到哪里去。
  • @RestController。API接口,方法返回的是可以是一个对象,是一个可以被序列化的对象,像系列化为json。

涉及的注解

  • @RestConstroller
  • @RequestMapping
  • @GetMapping、@PostMapping、@DeleteMapping
  • @RequestBody、@PathVariable(“id”)(参数来自路径)、@RequestParam(参数来自于请求头)
  • @ControllerAdvice与@ExceptionHandler连用:统一异常处理,对@RequestMapping、@GetMapping、@PostMapping有效(其他的未测试,不清楚了…)

idea的插件lombok

  • @Getter、@Setter、@Data
  • @Slf4j。直接可以用log.info()等

Swagger文档

  • @ApiOperation(“controller的方法注释”)
  • @ApiModel(value = “接口参数对应类的注释”)、@ApiModelProperty(value = “”, example=“例子,swagger调试时的example中出现”, allowableValues = “”)
  • @ApiImplitParam(value = “接口参数注释, 通常为参数名称”, dataType=“String”, required=true, example=“”
  • @ApiImplitParams({包含多个@ApiImplitParam,以,隔开})

mybatis

  • @Select
// 获取由数据库自动生成的主键, keyProperty="id"指定把获取到的主键值注入到id 属性
@Insert("")
@Options(useGeneratedKeys = true, keyProperty = "id")
int insert(Major record);

java原生

  • @Target:注解适用的范围,如ElementType.METHOD、FIELD等。
  • @Retention可以用来修饰注解。1)RetentionPolicy.SOURCE只保留在源文件;2)RetentionPolicy.CLASS保留到source及class文件,默认;的生命周期;3)RetentionPolicy.RUNTIME,jvm中仍然存在;

自定义AOP

@Aspect。当前类标识为切面类
@Pointcut。植入Advice的触发条件。
@Around:环绕增强
@AfterReturning:后置增强,相当于AfterReturningAdvice,方法正常退出时执行
@Before:前置增强方法,相当于BeforeAdvice的功能,相似功能的还有
@AfterThrowing:异常抛出增强,相当于ThrowsAdvice
@After: final增强,不管是抛出异常或者正常退出都会执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值