AOP+Controller使用自定义注解

简介: 通过自定义注解@CustomAnnotation和AOP切面,实现对用户查询方法的自动日志记录。当调用findUser接口时,可输出类名、方法名及注解中的日志信息,提升系统可观测性与维护效率。(238字)

@CustomAnnotation(name = "findUser", value = "根据ID查找用户")
@RequestMapping(value = "user/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
public User findUser(@PathVariable("id") Integer id) {
return userService.findUserById(id);
}
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

@Component
@Aspect
public class TestLogAspect {

@Pointcut("@annotation(cn.test.CustomAnnotation)")
private void pointcut() {}

@Before("pointcut() && @annotation(annotation)")
public void advice(JoinPoint joinPoint, CustomAnnotation annotation) {
    System.out.println(
        "类名:["
        + joinPoint.getSignature().getDeclaringType().getSimpleName()
        + "],方法名:[" + joinPoint.getSignature().getName()
        + "]-日志内容-[" + annotation.value() + ", "+annotation.name()+ "]");
}

}

相关文章
dataframe获取指定列
dataframe获取指定列
1712 0
|
3月前
|
安全 Java API
Spring Boot 3.5月底停维了,4.0迁移的五个坑你踩了没
Spring Boot 3.5已于2026年6月终止支持,升级至4.0刻不容缓。本文详解迁移五大关键坑:虚拟线程默认化、Starter模块化重构、Jackson 3升级、JSpecify空安全强化、Spring Framework 7原生API版本控制,助你规避踩坑,平稳过渡。
|
3月前
|
人工智能 Cloud Native 数据挖掘
技术揭秘:阿里云 Elasticsearch 云原生向量引擎如何登顶 VectorDBBench
摘要: 阿里云 Elasticsearch 在 ES 9.4 上以 FalconSeek HNSW 重构从候选生成、批量计算到原始向量重排的端到端路径。在 VectorDBBench 压测中,Cohere10M、Top10、Recall 约 0.98 时,查询吞吐达到 82,520.18 QPS,独立延迟测试中的 P99 为 1.8 ms。本文展开介绍了带来这些结果背后的技术细节。 关键词: FalconSeek HNSW、VectorDBBench、Elasticsearch、向量检索、HNSW、AI Search
383 13
|
10月前
|
人工智能 监控 调度
AI Agent 指挥官 vs AI 调度官:谁才是智能体系统的“大脑”?
随着AI迈向多智能体协同,系统分化出两大核心角色:**AI调度官**(专注任务分配与高效执行)与**AI Agent指挥官**(负责目标对齐、结构编排与系统治理)。二者分层协作,构建类操作系统的“智能中枢”,提升稳定性、可解释性与跨行业扩展能力,标志着AI从单点智能走向可持续组织化协同。
611 1
|
5月前
|
人工智能 运维 API
TokenOps:AI 调用成本从失控到可控的技术框架
黄仁勋称工程师年薪50万,却要花25万在AI Token上——揭示AI成本正从人力转向算力。Uber烧光全年AI预算、微软停用外部工具、账单碎片难追踪……企业正面临“能调不能管”的困境。TokenOps应运而生:实时计量、精准归属、动态预算,让AI调用从失控走向可控。
351 2
|
4月前
|
人工智能 自然语言处理 算法
GEO优化核心名词全解:AI搜索时代术语指南
希望通过这篇文章,能够帮助读者真正理解GEO优化的本质,掌握核心术语的内涵,为后续的实践应用打下坚实基础。
729 0
|
9月前
|
人工智能
当智能体成为领航员,管理者的角色会发生什么变化?
AI时代,管理者不会被取代,而是从“盯执行”转向“管方向”:聚焦判断事是否值得做、为托付负责、设计判断边界。角色升级为“判断的放大器”,核心能力变为优先级判断、及时止损与信任决策——价值不在过程可见,而在方向正确。
316 1
当智能体成为领航员,管理者的角色会发生什么变化?
|
JSON 前端开发 Java
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@RequestBody
`@RequestBody` 是 Spring 框架中的注解,用于将 HTTP 请求体中的 JSON 数据自动映射为 Java 对象。例如,前端通过 POST 请求发送包含 `username` 和 `password` 的 JSON 数据,后端可通过带有 `@RequestBody` 注解的方法参数接收并处理。此注解适用于传递复杂对象的场景,简化了数据解析过程。与表单提交不同,它主要用于接收 JSON 格式的实体数据。
1767 0
|
数据库 Python
Python实践:从零开始构建你的第一个Web应用
使用Python和轻量级Web框架Flask,你可以轻松创建Web应用。先确保安装了Python,然后通过`pip install Flask`安装Flask。在`app.py`中编写基本的"Hello, World!"应用,定义路由`@app.route('/')`并运行`python app.py`启动服务器。扩展应用,可添加新路由显示当前时间,展示Flask处理动态内容的能力。开始你的Web开发之旅吧!【6月更文挑战第13天】
966 2