框架常用注解统计
三
Spring注解
1. @Configuration// 标识配置类
2. @Bean //将自己方法的返回值交给Spring容器管理
3. @Component //将该类交给spring容器管理. 通过反射自动实例化对象
4. @ComponentScan(“com.jt”) //包扫描的注解 使Spring注解有效
5. @Scope("singleton") //默认值 单例模式
6. @Scope("prototype")//多例模式
7. @Lazy //懒加载
8. @PostConstruct /*生命周期:初始化对象 对象创建后立即调用*/
9. @PreDestroy //生命周期:销毁对象 对象消亡时进行调用
10.@Autowired //当前接口的实现类自动注入,但如果当前接口有多个实现类,会报错,需要配合 @Qualifier使用
11.@Qualifier("dog") /*该注解不能单独使用,必须配合@Autowired使用,根据key进行注入*/
12.@Resource(name="cat") /*尽量不要使用 功能上等于@Autowired+ @Qualifier("dog")*/
13.@Controller //标记控制层 Controller 与前端页面交互的
14.@Service //标记业务层 Service 编辑业务逻辑.
15.@Repository // 标记持久层 Mapper 实现数据库的相关操作
16.@Value("${user.userName}") //可以直接为基本类型赋值和String类型,一般配合@Property()+*.properties文件使用 ${}为spel表达式,根据key读取属性文件的value
17. @PropertySource(value="classpath:/user.properties",encoding = "UTF-8") //classpath:/ 代表resources的根目录,属性文件存放位置
18. @EnableAspectJAutoProxy /*意思:启动切面自动代理 : 开启AOP*/
19 @Aspect //表示该类是一个切面
20. @Pointcut("bean(userServiceImpl)") /*判断当前目标对象bean的id等于userServiceImpl*/
21. @Before("pointcut()") //1.前置通知,在目标方法执行之前执行
22. @AfterReturning("pointcut()") //2.后置通知,在目标方法执行之后执行
23. @AfterThrowing("pointcut()") //3.异常通知,目标方法执行报错时,执行该通知
24. @After("pointcut()") //4.最总通知,目标方法之后,都要执行的通知
25. @Around("pointcut()") //5.重点掌握 环绕通知,因为在目标方法执行前后都要执行,控制目标方法
26. @order(1) //对切面执行顺序进行排序,数值越小执行顺序越靠前
补充用法
1. @Pointcut("within(com.jt.service.UserServiceImpl)")
只拦截UserServiceImpl的类
2. @Pointcut("within(com.jt.service.*)")
拦截com.jt.service下的一级的类.
3. @Pointcut("within(com.jt.service..*)")
拦截com.jt.service下所有包下的所有类
4. @Pointcut("within(com.*.service..*)")
拦截com.任意包.service下所有包下的所有类
语法: @Pointcut("execution(返回值类型 包名.类名.方法名(参数列表))")
1. 按照类型方法匹配
@Pointcut("execution(* com.jt.service.UserServiceImpl.addUser())")
2. 要求返回值任意, com.jt.service包下的所有的子孙类中的任意方法的任意参数要求拦截.
@Pointcut("execution(* com.jt.service..*.*(..))")
3. 要求返回值任意, com.jt.service包下的所有的子孙类中的add开头的方法并且参数1个是int类型 进行拦截
@Pointcut("execution(* com.jt.service..*.add*(int))")
@Pointcut("@annotation(com.jt.annotation.ss)")
SpringMVC常用注解
@RequestMapping //通用请求路径
@GetMapping //匹配前端get请求
@PostMapping //匹配前端post请求
@DeleteMapping //匹配前端delete请求
@PutMapping //匹配前端put请求
@PathVariable //用于restFul请求风格的接参
@RestController //相当于@Controller+@ResponseBody
@CrossOrigin //用于处理跨域
@ResponseBody //后端返回json串给前端
@RequestBody //后端接收前端json串
@RequestParam //表示参数拼接在url的?h
SpingBoot常用注解
@SpringBootTest //注释掉此注解,直接打印会打印出null,调用方法会出现空指针
@SpringBootApplication//从启动类所在的包或者子包中查找有特定注解的类,将扫描到的类代为管理
lombok常用注解
@Data //自动生成Getter/Setter/RequiredArgsConstructor/ToString/EqualsAndHashCode
@Accessors(chain = true) //重写set方法,可以实现链式加载
@NoArgsConstructor //自动添加无参构造
@AllArgsConstructor //全参构造方法
@Slf4j //lombok中的这个注解用于告诉lombok,为我们的类中创建一个log = org.slf4j.Logger的对象
MyBatis 常用注解
@Mapper //将接口交给Spring容器管理 Map<userMapper,JDK代理对象>
@param //将多值封装在Map集合中,用于多值传参
@Select //查询注解
@Insert //新增注解
@Update //更新注解
@Delete //删除注解
@Transactional //控制事物 测试一级缓存
@CacheNamespace //使用注解的二级缓存
事物控制:
@Transactional(rollbackFor = SQLException.class) //事物的注解
@RestControllerAdvice //advice 通知!!! 用来配置全局aop
@ExceptionHandler(RuntimeException.class) //全局aop处理的异常对象
MyBatis-plus 常用注解
@TableName("user") //让对象与表名一一映射
@TableId(type = IdType.AUTO/*主键自增*/) //标识主键
@TableField("username") //如果属性与字段名称一致(包含驼峰规则),那么注解可以省略不写
@TableField(exist = false) //用于设置再业务数据上,让MP忽略其对应d
四
SpringCloud 注解统计
@PathVariable ("m")//在@FeignClient修饰的接口方法中,@PathVariable注解中的参数必须要写,注解中的名字要和url中的名字相同,可以不和参数列表的变量名相同
@LoadBalanced //负载均衡
@EnableFeignClients //@EnableFeignClients 用于描述一些配置类,告诉系统底层启动时为@FeignClient注解描述的接口创建实现类及对象,然后交给Spring容器管理
@FeignClient //@FeignClient注解用于描述远程服务接口
@RefreshScope//此注解描述类时,用于告诉系统底层,当配置中心内容发生变化时候,此对象要重新创建,重新初始话属性
Alibaba注解
@SentinelResource("doGetResource")/*给资源起名*/
Spring注解补充
@EnableCaching//开启spring中的缓存机制
@Cacheable(value = "permissionCache")//此注解描述的方法为缓存切入点方法,从数据库查询到数据后,可以将数据存到本地的一个缓存对象中(底层是一个map对象) permissionCache名字为cache名字
@CachePut(value = "menuCache",key = "#menu.id")//注解描述的方法同样是一个缓存切入点方法,主要用于更新缓存
@CacheEvict//使hgu
@EnableResourceServer//启动资源服务器的默认配置
@EnableGlobalMethodSecurity(prePostEnabled = true)//启动授权机制,访问方法时,会检查方法上的权限;
@PreAuthorize("hasAuthority('sys:resource:list')")