Java注解小结


注解小结

  1. jdk
@Override 表示加了注解的方法要符合方法重写;
@Deprecated 加在方法上,表示该方法过期;
@FunctionalInterface 加在接口类上,表示该接口为一个函数式接口,只有一个抽象方法;
  1. Junit
@Test 加在方法上,表示此方法是一个测试的入口;

和spring整合
@Runwith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:sping配置文件位置")
  1. mybatis
@Select 加在方法接口上,用来定义select sql语句;
@Insert 加在方法接口上,用来定义Insert sql语句;
@Update 加在方法接口上,用来定义Update sql语句;
@Delete 加在方法接口上,用来定义Delete sql语句;
@Option 用来指定是否存在主键,并且指定主键为哪列,可以配合@Insert添加一些选项;
@DeleteProvider 产生动态sql语句

@Param 注解 - 加在方法参数上,mapper有多个参数时,用它把 #{} 值与方法映射
  1. spring+springmvc
  • 控制反转的
@Component - 比较通用,加在不属于下面三层的类上
@Service   - 加在业务逻辑类上,属于业务逻辑层
@Controller - 加在控制器类上,属于表现层
@Repository - 加载数据访问类上

@RestController 实现控制反转,除了有@Component的功能以外,还会默认控制器中每个方法都加了@ResponseBody注解

@PostConstruct 加在方法上, 表示该方法为初始化方法
@PreDestory 销毁方法
@Scope 控制对象个数
@Lazy 是否为懒汉式创建对象
  • 依赖注入
@AutoWired - 可以加在属性、set方法、构造方法上,用来给属性进行依赖注入,主要根据类型匹配;
@Resource - 用法同上,根据名字匹配,如果名字匹配不上再用类型匹配;
  • 面向切面AOP
@Aspect 加在类上,表示切面

@Around 环绕通知,加在方法上,里面写切点表达式
@Before 前置通知
@After 后置通知 
@AfterReturning 正常返回时通知
@AfterThrowing  异常返回通知
  • springmvc
    在这里插入图片描述
@RequestMapping(url路径) 用来映射请求地址和控制方法;也可以加在类上,表示该控制器中方法匹配路径的前缀;
@GetMapping - 只能处理 get
@PostMapping - 只能处理 post
@PutMapping - 只能处理 put
@DeleteMapping - 只能处理 delete

@DateTimeFormat 用来控制请求参数中日期类型的转换,加在方法参数或属性上
@ExceptionHandler(异常类型.class) 加在方法上,表示此方法专门处理异常
@ControllerAdvice 加在类上用来配合@ExceptionHandler实现全局的异常处理

@ResponseBody 加在方法上,把控制器方法的返回结果转为json
@RequestBody 加在方法参数上,把客户端post请求中传来的json字符串,转为java对象

@CrossOrigin("url地址") 可以加在类或方法上,表示允许这个地址获取控制器方法返回的json数据
@PathVatible("参数名") 加在方法参数上,把路径参数与方法参数映射
@RequestParam(defaultValue="1") - 加在方法参数上,表示请求参数不存在时,给方法一个默认值
  • 事务
@Transactional 加在方法上,表示这个方法需要事务控制,方法如果出现未检查异常,回滚事务,否则提交事务
@Transactional(rollbackFor="异常类型.class")
@Transactional(readOnly="true|false",timeout="超时时间",isolation="隔离级别",propagation="传播行为")
@Transactional 加在类上,表示这个类中所有方法都会进行事务控制
  • jackson
@JsonFormat(pattern="日期格式",timezone="GMT+8") 用来转换json是定义日期的格式
@JsonIgnore 加在属性上,表示忽略此属性
@JsonProperty("新属性名") 加在属性上,用来在转换是改变属性名字

猜你喜欢

转载自blog.csdn.net/mashaokang1314/article/details/87801207