如何在SpringBoot环境下使得自定义的注解能够使用${xxx}表达式
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,如何在SpringBoot环境下使得自定义的注解能够使用${xxx}表达式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
千家信息网最后更新 2025年11月08日如何在SpringBoot环境下使得自定义的注解能够使用${xxx}表达式
如何在SpringBoot环境下使得自定义的注解能够使用${xxx}表达式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
相关依赖
org.aspectj aspectjrt org.aspectj aspectjweaver runtime
自定义注解
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) @Documented public @interface Manufactur { String value() default "" ; // 厂商编号 }AOP
需要AOP在方法执行器对方法上的注解进行解析处理,获取占位符对应的值
@Component @Aspect public class ManufacturAspect implements EnvironmentAware { private static final Logger logger = LoggerFactory.getLogger(ManufacturAspect.class) ; private Environment environment; @Pointcut("@annotation(com.pack.annotation.Manufactur)") private void info() {} @Before("info()") public void execBefore(JoinPoint jp) { MethodSignature sign = (MethodSignature) jp.getSignature() ; Method method = sign.getMethod() ; Manufactur manu = method.getAnnotation(Manufactur.class) ; String value = manu.value() ; logger.info("获取到注解值:{}", value) ; BusinessService.code.set(this.environment.resolvePlaceholders(value)) ; } @Override public void setEnvironment(Environment environment) { this.environment = environment ; } }该类实现了EnvironmentAware 用于获取Environment对象,该对象能够获取当前环境下的所有相关配置信息。同时通过该类的resolvePlaceholders方法能够解析占位符对应的内容值。
Service中使用
@Service public class BusinessService { public static ThreadLocal code = new ThreadLocal() ; private static Logger logger = LoggerFactory.getLogger(BusinessService.class) ; @Manufactur("${manufactur.code}-#{1 + 3}") public String invoke(String id) { String sno = code.get() ; logger.info("自定义注解动态获取属性值:{}", sno) ; // todo return sno ; } } 在AOP中将解析后的值已经存入到了ThreadLocal中。
测试
@RestController @RequestMapping("/business") public class BusinessController { @Resource private BusinessService bs ; @GetMapping("/{id}") public Object home(@PathVariable String id) { return bs.invoke(id) ; } }到此一个自定义注解中支持占位符就完成了,还是非常简单的。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
注解
环境
内容
对象
方法
帮助
支持
表达式
清楚
中将
信息
动态
厂商
同时
对方
对此
属性
文章
新手
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
系统软件开发商授权函模板
优势软件开发调试
网络安全扫漏
河北网络安全知识竞赛查询
共建网络安全心得体会
知道查看服务器
电脑服务器售后
乡镇网络安全风险工作
宜宾网络安全和文明视频
oracle数据库非常卡
智能城市软件开发
网络安全985硕士
sql数据库收缩缓慢
我与网络安全500字
任天堂游戏如何查询服务器
access数据库设计下载
海北州网络技术哪家好
64位oracle数据库
软件开发人员资质包括哪些
网络安全用户行为画像分析
张家界java数据库培训
蔚来汽车软件开发面试
龙管家会员明细的数据库在哪里
南阳网络安全竞赛
北京科技大学互联网创新创业大赛
云服务器的租用
香港物理服务器怎么看安全组
软件开发行业wacc
泰拉瑞亚最火的服务器ip地址
视频服务器搭建 java