gpt4 book ai didi

java - java中如何使用注解调用方法?

转载 作者:行者123 更新时间:2023-12-02 01:58:06 25 4
gpt4 key购买 nike

我正在创建自定义注释。我想在应用该注释的任何地方调用一个方法或执行一些功能。假设我创建一个像 @info(message="Invoking xyz method") 这样的注释。无论注释要应用到何处,消息都会打印在控制台上。

最佳答案

这是 AspectJ 的一个非常好的用例。一个简单的实现如下:

方面文件(定义要执行的行为,由注释自定义):

@Aspect
public class LoggingAspect {
private Logger logger = LoggerFactory.getLogger(this.getClass());

@Before("execution(@com.example.demo.aspect.Info * *(..)) && @annotation(info)")
public void before(JoinPoint joinPoint, Info info) {
logger.info(info.value()); // simply print the message from the annotation
}
}

注释:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Info {
String value();
}

使用注释:

@Info("Calling my method here...")
public void myMethod() {
// your regular business logic
}

上面的代码对于具有 spring-aop 和aspectjweaver Maven 依赖项的启用 Spring Boot 的应用程序来说几乎是即插即用的。对于非 Spring 应用程序,您可以查看纯 AspectJ 快速入门文档,例如 https://www.baeldung.com/aspectj 中的文档。

关于java - java中如何使用注解调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52038991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com