gpt4 book ai didi

spring - spring注解配置中的@Transaction和@Service

转载 作者:行者123 更新时间:2023-12-02 05:44:07 24 4
gpt4 key购买 nike

我就是无法理解。 bean 是否用 @Serviced 标记并通过 @ComponentScan 在应用程序上下文中注册,并通过 @Transaction 注释代理事务支持?

这工作正常:

    public class LocationManagerImpl implements LocationManager {

@Transactional
public void saveLocation(Location location) {

}

}

//config class

@Bean
public LocationManager locationManager() {
return new LocationManagerImpl();
}

这不是:

@Service
public class LocationManagerImpl implements LocationManager {

@Transactional
public void saveLocation(Location location) {

}

}

最佳答案

问题很可能是您的 @Transactional带注释的类位于 servlet 上下文中。如果您有<context:component-scan>,则可能会发生这种情况在 servlet 应用程序上下文配置中,而 Spring AOP 拦截器在根应用程序上下文中配置。

解决办法是移动@Service带注释的类到根 Web 应用程序应用程序上下文。

参见Spring @Transactional not working

Servlet 和 Web App Root 上下文之间的区别: Difference between applicationContext.xml and spring-servlet.xml in Spring Framework .

关于spring - spring注解配置中的@Transaction和@Service,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11848716/

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