Proxy Spring4 Java配置事务代理和Aspecj

Proxy Spring4 Java配置事务代理和Aspecj,proxy,aspectj,spring-transactions,aspectj-maven-plugin,Proxy,Aspectj,Spring Transactions,Aspectj Maven Plugin,我正在创建一个使用aspectj事务的新项目。它还使用传统JAR,其中包含在需要接口时使用代理方法的服务 我正在使用java配置,当我设置 @EnableTransactionManagement(mode=AdviceMode.ASPECTJ) 然后,从旧版libs访问代理样式服务时引发以下异常: org.hibernate.LazyInitializationException: could not initialize proxy - no Session 如果我改为: @Enable

我正在创建一个使用aspectj事务的新项目。它还使用传统JAR,其中包含在需要接口时使用代理方法的服务

我正在使用java配置,当我设置

@EnableTransactionManagement(mode=AdviceMode.ASPECTJ)
然后,从旧版libs访问代理样式服务时引发以下异常:

org.hibernate.LazyInitializationException: could not initialize proxy - no Session
如果我改为:

@EnableTransactionManagement(mode=AdviceMode.PROXY)

这样我就不会有问题了,但是我不能在我的新项目中使用aspectj风格的事务

我尝试为每个adviceMode添加两个
@EnableTransactionManagement
注释,但这是不允许的

这是带注释的类

@EnableWebMvc
@Configuration
@ComponentScan("com.mydomain")
@EnableTransactionManagement(mode=AdviceMode.ASPECTJ)
public class ApplicationConfig  extends WebMvcConfigurerAdapter {
...
我还将aspectj maven插件添加到遗留项目中,希望它能够在编译时处理编织,从而使aspectj事务能够工作。但这并没有解决问题

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>aspectj-maven-plugin</artifactId>
    <version>1.7</version>
    <configuration>
        <aspectLibraries>
            <aspectLibrary>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aspects</artifactId>
            </aspectLibrary>
        </aspectLibraries>
        <complianceLevel>1.8</complianceLevel>
        <source>1.8</source>
        <target>1.8</target>
        <showWeaveInfo>true</showWeaveInfo>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>compile</goal>
            </goals>
        </execution>
    </executions>
</plugin>

org.codehaus.mojo
aspectj maven插件
1.7
org.springframework
春季方面
1.8
1.8
1.8
真的
编译
有可能让spring处理这两种通知模式吗?我该怎么做


或者有其他方法解决这个问题。

问题在于遗留项目上的aspectj配置

当我运行mvn编译时,它变得显而易见。我必须添加依赖项:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>${spring.version}</version>
</dependency>
然后我可以从eclipse部署,并且在遗留JAR中有aspectj事务支持

Configure>Convert to Aspectj Project