gpt4 book ai didi

Spring AOP 切入点未调用

转载 作者:行者123 更新时间:2023-12-02 11:57:32 25 4
gpt4 key购买 nike

我使用 JSF 2.2 + Spring 框架 3.2.4

所以,我有这个 applicationContent.xml

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">

<aop:aspectj-autoproxy proxy-target-class="true" />
<tx:annotation-driven transaction-manager="transactionManager"/>
<context:annotation-config/>
<context:component-scan base-package="com.vulcan.controller" />
<context:component-scan base-package="com.vulcan.service" />
<context:component-scan base-package="com.vulcan.dao" />
<context:component-scan base-package="com.vulcan.spring.aop" />

.....

然后我有方面组件在

package com.vulcan.spring.aop;

@Aspect
public class LoggingService {
private Log log = LogFactory.getLog(this.getClass());

@Pointcut("execution(* *.*(..))")
protected void loggingOperation() {}

@Before("loggingOperation()")
public void logJoinPoint()
{
System.out.println ("Hello");
}
....

对于这种类型的执行,我假设这个切入点将在每个方法上触发。但问题是,这个切入点没有被触发?知道为什么吗?谢谢

仅供引用,我使用 glassfish 4,当我部署网络应用程序时,我没有收到任何错误配置。所以我认为我的配置没问题。

最佳答案

@Aspect注解类不会被 Spring 自动检测到,并且因为没有检测到它,所以 <aop:aspectj-autoproxy /> 不知道它。 bean 。所以基本上没有什么方面。

添加@Component给您@Aspect带注释的类,以便 Spring 可以检测和使用切面。

@Compopnent
@Aspect
public class LoggingService { ... }

或者在 xml 文件中显式声明方面

<bean class="LoggingService" />

无论哪种方式,<aop:aspectj-autoproxy /> 都会拾取该方面。 beans 和建议将被运行。

关于Spring AOP 切入点未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18268035/

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