Я создаю новый проект, который использует транзакции aspectj. Он также использует устаревшие банки, которые содержат службы, которые используют прокси-метод, где требуется интерфейс.Spring 4 Java Config Transactions Proxy и Aspecj
Я использую Java конфигурацию и когда я установил
@EnableTransactionManagement(mode=AdviceMode.ASPECTJ)
Тогда я получаю следующее исключение брошенное с доступом к услугам прокси-стилю от унаследованной LIBS:
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
Если я изменяю:
@EnableTransactionManagement (режим = AdviceMode.PROXY)
Тогда у меня проблемы, но я не могу использовать транзакции стиля aspectj в моем новом проекте.
Я попытался добавить две аннотации @EnableTransactionManagement
с каждым советом, но это запрещено.
Вот аннотированный класс
@EnableWebMvc
@Configuration
@ComponentScan("com.mydomain")
@EnableTransactionManagement(mode=AdviceMode.ASPECTJ)
public class ApplicationConfig extends WebMvcConfigurerAdapter {
...
Я также добавил Maven плагин AspectJ к существующему проекту в надежде, что он будет обрабатывать ткачество во время компиляции и, таким образом, 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>
Возможно ли иметь весеннюю сделку с обоими режимами? Как мне это сделать?
Или есть другой способ решения этой проблемы.