Spring自定义注解
老师你好,最近在接触一个springboot的开源项目,看到自定义注解的时候有点不解,查阅资料也没找到想要的答案,我想知道使用spring自定义注解有什么作用,代码如下:
1 2 3 4 5 | @Retention (RetentionPolicy.RUNTIME) public @interface Function { public String value(); public String name() default "" ; } |
1 2 3 4 5 6 7 8 9 10 | @RequestMapping (MODEL + "/list.json" ) @Function ( "function.query" ) @ResponseBody public JsonResult<PageQuery<CoreFunction>> list(FunctionQuery condtion) { PageQuery page = condtion.getPageQuery(); functionConsoleService.queryByCondtion(page); return JsonResult.success(page); } |
元注解的作用我都能通过资料了解,但是,在Controller里面使用到自定义注解@Function("function.query"),这个作用我不是很明白,望老师解答。
18
收起
正在回答
3回答
同学你好,在实战中,注解一般用在方法上,比如:做用户权限校验。指定哪些权限的用户可以此方法。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
RekklesO
2020-07-18 21:50:02
另外,还有一个问题,如下:
项目创建了一个工具类,如下:
1 2 3 4 5 6 | public class ValidateConfig { public interface ADD { } public interface UPDATE { } } |
在Controller参数里面添加验证信息注解:
1 2 3 | public JsonResult<CoreFunction> addFunction( @Validated (ValidateConfig.ADD. class ) CoreFunction function) { return JsonResult.success(function); } |
CoreFunction 实体类如下(省去Get/Set):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public class CoreFunction extends BaseEntity { @NotNull (message = "ID不能为空" , groups = ValidateConfig.UPDATE. class ) @SeqID (name = ORACLE_CORE_SEQ_NAME) @AutoID protected Long id; //创建时间 @UpdateIgnore protected Date createTime; private String accessUrl ; @NotBlank private String code ; @NotBlank private String name ; @NotBlank private Long parentId ; @Dict (type=CoreDictType.FUNCTION_TYPE) @NotBlank private String type = null ; //"FN0" ; } |
我不是很明白Controller里面校验注解传入的参数ValidateConfig.ADD.class是什么意思,望老师解答。
4. SSM到Spring Boot入门与综合实战
- 参与学习 人
- 提交作业 323 份
- 解答问题 8263 个
本阶段将带你学习主流框架SSM,以及SpringBoot ,打通成为Java工程师的最后一公里!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧