创作背景
今天系统的学习了aop,写一个demo来练手强化和熟悉一下aop。
实现原理
通过自定义注解+aop切面编程实现。
代码实现
@Target({ElementType.METHOD}) //指定只能在方法上写
@Retention(RetentionPolicy.RUNTIME) //设定运行范围
public @interface CheckAuth {
String value();
}
@RestController
@RequestMapping("/book")
public class BookController {
@CheckAuth(value = "admin") //添加自定义注解并定义需要管理员权限
@GetMapping("/selectAllBooks")
public String select() {
return "查询成功";
}
}
@Data
public class User {
private int id;
private String name;
private String auth;
}
@Service
public class UserServiceImpl implements UserService {
@Override
public User getLoginUser() {
User user = new User