2015-02-03 3 views
-1

Во-первых, у меня была проблема с неработающими транзакциями, поэтому я обновил конфигурацию от @EnableTransactionManagement до @EnableTransactionManagement(proxyTargetClass=true), но после обновления эта ошибка запускается при запуске.AspectJ не работает после конфигурации транзакции весной загрузки

enter image description here

после комментируя весь код, связанный с AspectJ, то ошибка исчезает, и транзакция прекрасно работает, но я не хватаю свои функции AspectJ.

я пытался заменить @EnableTransactionManagement(proxyTargetClass=true) на @EnableTransactionManagement(mode=AdviceMode.PROXY) и @EnableTransactionManagement @EnableLoadTimeWeaving, ни один из них не позволил мне использовать AspectJ, с помощью отладчика я могу видеть, что совет не выполняется вообще.

AppConfig.java

@EnableAutoConfiguration 
@ComponentScan(basePackages = { "com.geopro" }) 
@EnableJpaRepositories(basePackages = { "com.geopro.repositories" }) 
@EntityScan(basePackages = { "com.geopro.entities" }) 
@EnableTransactionManagement(proxyTargetClass=true)//(mode=AdviceMode.ASPECTJ)// 
public class AppConfig { 
    @Bean 
    public HibernateJpaSessionFactoryBean sessionFactory(EntityManagerFactory emf) { 
     HibernateJpaSessionFactoryBean factory = new HibernateJpaSessionFactoryBean(); 
     factory.setEntityManagerFactory(emf); 
     return factory; 
    } 
} 
+0

При использовании 'mode = ASPECTJ' вам нужно будет использовать компиляцию или переплетение во времени, чтобы ваши аспекты были сплетены. Таким образом, включение только aspectj немного сложнее, чем то, что у вас есть сейчас. –

+0

теперь я использую '(proxyTargetClass = true)', я ищу AOP и транзакции любым способом. – geogeek

+0

Я сделал обновление – geogeek

ответ

2

Мораль рассказа Никогда не смешивайте Операции и функции AspectJ в том же классе, я узнал, что трудный путь, сделка использует в ее внутренних АОП, его АОП не очень хорошо работает с пользовательским AOP.