我试图使用Spring/AspectJ集成,但运气不好。Spring版本是3.2.17(是的,我知道有点旧)。
以下是我的相关配置:
pom.xml:
<!-- Spring dependencies, including spring-aspects -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.7.4</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.7.4</version>
</dependency>
应用程序上下文。xml:
<context:annotation-config/>
<aop:aspectj-autoproxy />
<bean id="loggingAspect" class="com.jason.app.web.util.logging.LoggingAspect" />
spect.java(相关类):
@Aspect
public class LoggingAspect {
private Logger log = LoggerFactory.getLogger(LoggingAspect.class);
/**
* Advice for before logging
* @param joinPoint
*/
@Before("execution(* com.jason.app.web.process..*(..))")
private void beforeAdvice(JoinPoint joinPoint) {
final String outputFormat = "intercept: executing method %s(%s)";
final String method =joinPoint.getSignature().getName();
List<?> argumentList = Collections.unmodifiableList(Arrays.asList(joinPoint.getArgs()));
final String formattedArguments = argumentList.stream().map(s -> s.toString()).collect(Collectors.joining(", "));
log.debug(String.format(outputFormat, method, formattedArguments));
}
}
我倒了很多在线教程,运气不好。有人能指出我做错了什么吗?
杰森
将表达式更改为“execution(public*your.package.YourClass.yourMethod(..)”)之前的
您可以再添加一个依赖项
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
试试,把你的切入点改成
@Before("execution(* com.jason.app.web.process..*.*(..))")
(意味着建议将应用于服务包或子包中定义的所有公共方法:com.jason.app.web.process)
Spring配置标签
现在,如果希望使用AspectJ而不是Spring AOP,则需要在编译时编织或加载时编织之间进行选择。如果使用编译时编织,则需要将aspectj maven插件添加到构建中。如果选择加载时编织,则需要使用javaagent:path/to/aspectjweaver运行JVM。jar
vm参数,如AspectJ文档中所述。
如果您需要让您的方面由Spring进行后处理(自动装配等),您需要将其列在您的Spring配置中。方面是在Spring之外创建的单例实例,因此您需要指定静态工厂方法aspectOf()
来访问AsheJ运行时创建的aspectj的单实例。
<bean id="loggingAspect"
class="com.jason.app.web.util.logging.LoggingAspect"
factory-method="aspectOf"
/>
或注释方式:
@Configuration
public class AspectConfig {
@Bean
public LoggingAspect loggingAspect() {
return LoggingAspect.aspectOf();
}
}
不要忘记删除
我们希望使用logstash获取日志并将其传递给Kafka。 我们已经为logstash1.5.0beta1和kafka 2.9.2_0.8.1.1编写了以下conf文件 ** ** 运行以下命令后:bin/logstash代理-ftest.conf--logex.log test.conf是我们的conf文件。ex.log是我们为要存储的日志创建的空白文件。 我们得到以下输出 发送logstas
当执行上面的代码时,将发生回滚,并且“Hibernate操作”将被回滚,但在TaskService.Complete中执行的操作不会被回滚。 我已经调试了Camunda代码,一切似乎都正常,我找到了一个SpringTransactionInterceptor,命令在中执行,此时事务处于活动状态。
我正在使用这个库为二维码阅读器制作一个应用程序。当我单独制作一个演示时,它可以工作,但当我将它与OneSignal Sdk一起使用时,它不工作。下面是我的毕业代码: 下面是我从我的活动中调用qr码扫描仪的代码。 日志中出现的错误如下所示。 我们将非常感谢您的帮助。
此代码用于向支付网关发送详细信息。当我使用规范形式的代码时,它工作得很好,但在PHP中与cURL一起使用时,它不工作,并给出“objectismoved”的结果。 我的问题有什么解决办法?如何在Transaction express网关中使用cURL进行支付转账? 以下是导致问题的代码:
尽管我的测试方法被@WithMockUser注释,但我仍然被拒绝访问。为什么这在集成测试中不起作用?使用@webappconfiguration和mockmvc进行测试一切都很好。
既然我们要把 vim 打造成 IDE,那必须得集成编译器、构建工具、静态分析器、动态调试器,当然,你可能还需要版本控制、重构工具等等,我暂时还好。 7.1 编译器/构建工具集成 先说下编译器和构建工具。vim 再强大也只能是个优秀的编辑器而非编译器,它能高效地完成代码编辑工作,但必须通过其他外部命令实现将代码转换为二进制可执行文件;一旦工程上规模,你不可能单个单个文件编译,这时构建工具就派上场了。