日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

解決Spring JPA 使用@transaction注解時產生CGLIB代理沖突問題

瀏覽:85日期:2023-06-27 11:49:58
Spring JPA 使用@transaction注解時產生CGLIB代理沖突

在使用JPA進行數據庫的刪除操作時需要使用@Transactional注解來支持事物:

@Modifying @Transactional @Query(' delete from FollowerInfo ' + ' where crmAuth = :crmAuth and investUserId = :invUserId') void deleteByCrmAuthAndInvUserId(@Param('crmAuth') String crmAuth, @Param('invUserId') Long invUserId);

但是,在添加了如上方法后,測試服務啟動失敗。

查看日志報錯如下:

Caused by: java.lang.IllegalArgumentException: Cannot subclass final class class com.sun.proxy.$Proxy52at org.springframework.cglib.proxy.Enhancer.generateClass(Enhancer.java:446)at org.springframework.cglib.transform.TransformingClassGenerator.generateClass(TransformingClassGenerator.java:33)at org.springframework.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:317)at org.springframework.aop.framework.ObjenesisCglibAopProxy.createProxyClassAndInstance(ObjenesisCglibAopProxy.java:57)at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:202)... 38 more[2017-02-09 10:56:33 ERROR] [localhost-startStop-1] (org.springframework.web.context.ContextLoader:331) - Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name ’adviserCommFollowerServiceImpl’: Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.ounersc.ic.adviser.repository.community.AdviserCommFollowerRepository com.ounersc.ic.adviser.service.impl.AdviserCommFollowerServiceImpl.adviserCommFollowerRepository; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ’adviserCommFollowerRepository’: Post-processing of FactoryBean’s singleton object failed; nested exception is org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.sun.proxy.$Proxy52]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Cannot subclass final class class com.sun.proxy.$Proxy52at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1204)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:538)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:725)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4738)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5181)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)at java.util.concurrent.FutureTask.run(FutureTask.java:262)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)at java.lang.Thread.run(Thread.java:745)Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.ounersc.ic.adviser.repository.community.AdviserCommFollowerRepository com.ounersc.ic.adviser.service.impl.AdviserCommFollowerServiceImpl.adviserCommFollowerRepository; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ’adviserCommFollowerRepository’: Post-processing of FactoryBean’s singleton object failed; nested exception is org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.sun.proxy.$Proxy52]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Cannot subclass final class class com.sun.proxy.$Proxy52at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:555)at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)... 22 moreCaused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ’adviserCommFollowerRepository’: Post-processing of FactoryBean’s singleton object failed; nested exception is org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.sun.proxy.$Proxy52]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Cannot subclass final class class com.sun.proxy.$Proxy52at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:116)at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1512)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:313)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1081)at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1006)at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:904)at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:527)... 24 moreCaused by: org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.sun.proxy.$Proxy52]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Cannot subclass final class class com.sun.proxy.$Proxy52at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:212)at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:109)at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(AbstractAutoProxyCreator.java:445)at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:331)at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:291)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:422)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.postProcessObjectFromFactoryBean(AbstractAutowireCapableBeanFactory.java:1713)at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:113)... 31 moreCaused by: java.lang.IllegalArgumentException: Cannot subclass final class class com.sun.proxy.$Proxy52at org.springframework.cglib.proxy.Enhancer.generateClass(Enhancer.java:446)at org.springframework.cglib.transform.TransformingClassGenerator.generateClass(TransformingClassGenerator.java:33)at org.springframework.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:317)at org.springframework.aop.framework.ObjenesisCglibAopProxy.createProxyClassAndInstance(ObjenesisCglibAopProxy.java:57)at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:202)... 38 more09-Feb-2017 10:56:33.145 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file09-Feb-2017 10:56:33.145 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal Context [] startup failed due to previous errors

org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.sun.proxy.$Proxy52]: Common causes of this problem include using a final class or a non-visible class

對于此異常,這篇帖子中講到了產生該異常的原因,但是未給出解決辦法。

http://stackoverflow.com/questions/20063320/springmvc-proxy-issue

簡單來說,原因主要是代理沖突:Spring 早期的版本,要用com.sun.proxy的代理 ,而 jpa如果加了@transaction 注解后 需要用CGLIB的代理

因此產生了沖突

解決辦法:

Spring 已經在高版本中修復了該問題,把Spring從4.0升級到4.2.5后,問題解決:

在pom.xml加入:

<properties><spring.framework.version>4.2.5.RELEASE</spring.framework.version> </properties>Spring 啟用CGLIB解決事物代理失敗問題描述:

接口A提供公用的CRUD 操作,抽象類B實現接口A,接口C提供各模型特有的相關數據庫操作。

類D繼承抽象類B實現接口C如果使用JDK動態代理,Spring會將類D向上轉型為接口C,那么在使用中必須注入接口A。

如果注入類D的類型。會報錯說代理類型XX無法轉換為類D的類型。

解決辦法如下:

<bean class='org.springframework.orm.hibernate4.HibernateTransactionManager'> <property name='sessionFactory' ref='mySessionFactory' /> <property name='dataSource' ref='dataSourceCMS' /> </bean> <!-- the transactional advice (what ’happens’; see the <aop:advisor/> bean below) --> <tx:advice transaction-manager='transactionManagerCMS'> <!-- the transactional semantics... --> <tx:attributes> <tx:method name='*' /> </tx:attributes> </tx:advice> <!-- ensure that the above transactional advice runs for any execution of an operation defined by the FooService interface --> <aop:config proxy-target-class='true'> <aop:pointcut expression='execution(* com.harvest.smartHotels.info.dao.serviceContent.interfaces.*.*(..))' /> <aop:advisor advice-ref='txAdvice' pointcut-ref='fooServiceOperation' /> </aop:config>

動態代理使用CGLIB,這樣注入類型就可以使類D。

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
丝袜国产日韩另类美女| 综合欧美亚洲| 国产精品扒开腿做爽爽爽软件| 亚洲欧美成人综合| 日本不卡在线视频| 国产 日韩 欧美 综合 一区| 日韩视频中文| 国产一区二区三区四区大秀| 亚洲欧美久久精品| 久久午夜影视| 亚洲一区二区三区四区电影 | 日本一不卡视频| 国产理论在线| 97精品久久| 一区二区电影| 亚洲中午字幕| 久久久五月天| 久久久久蜜桃| 热久久久久久久| 中国女人久久久| 欧美在线观看天堂一区二区三区| 中文字幕日韩亚洲| 欧洲一区二区三区精品| 天堂久久av| 免费不卡中文字幕在线| 国产伦乱精品| 久久精品999| 激情91久久| 夜夜嗨一区二区三区| 免费精品视频最新在线| 在线亚洲一区| 日韩网站在线| 日韩亚洲一区在线| 国产欧美视频在线| 欧美日韩视频一区二区三区| 欧美一区成人| 欧美.日韩.国产.一区.二区| 欧美国产不卡| 青青久久av| 国产精品毛片久久| 91亚洲人成网污www| 亚洲免费影视| 日韩午夜一区| 成人在线视频中文字幕| 蜜桃视频一区二区| 一二三区精品| 成人免费电影网址| 午夜日韩在线| 亚洲视频播放| 免费看日韩精品| 国产精品第一国产精品| 国产精品红桃| 日本不卡视频在线| 日韩高清不卡一区二区| 亚洲欧洲美洲国产香蕉| 欧美91福利在线观看| 日韩欧美午夜| 亚洲国内精品| 97久久亚洲| 久久国产精品免费一区二区三区| 国产91在线播放精品| 日本欧美不卡| av高清不卡| 久久91视频| 国产精品久久观看| 日韩中文字幕一区二区高清99| 国产亚洲一区二区手机在线观看| 久久精品在线| 亚洲三级精品| 日韩精品欧美| 99国内精品| 青草国产精品久久久久久| 免费久久精品视频| 五月精品视频| 国产亚洲综合精品| 日韩成人a**站| 亚洲综合小说| 免费久久99精品国产自在现线| 欧美日本久久| 国产一区二区三区天码| 男女精品网站| 亚洲www免费| 欧美成a人片免费观看久久五月天| 在线国产一区二区| 久久精品人人| 日韩激情综合| 玖玖玖国产精品| 视频一区中文| 国产美女高潮在线观看| 久久国产乱子精品免费女| 免费观看在线色综合| 肉色欧美久久久久久久免费看| 国产亚洲高清在线观看| 久久先锋影音| 九九在线精品| 欧美精选一区二区三区| 亚洲成av在线| 日韩伦理一区| 日本一区二区高清不卡| 国产欧美大片| 日韩高清在线不卡| 久久精品一区二区国产| 综合一区在线| 久久亚洲专区| 国产精品久一| 亚洲一区观看| 丝袜美腿诱惑一区二区三区| 日本精品一区二区三区在线观看视频| 日韩av自拍| 国产激情欧美| 四虎成人精品一区二区免费网站| 日本а中文在线天堂| 国产精品中文| 天堂av在线一区| 999久久久亚洲| 国产精品久久观看| 精品一区二区三区中文字幕| 亚洲一区二区小说| 亚洲美洲欧洲综合国产一区| 中文字幕在线视频网站| 欧美久久精品| 日本不卡一二三区黄网| 亚洲欧美日韩精品一区二区| 亚洲视频综合| 久久久久免费av| 91精品国产91久久久久久黑人| 福利精品一区| 精品视频一区二区三区在线观看 | 国产欧美日韩综合一区在线播放| 蜜桃一区二区三区在线观看| 欧美日韩国产精品一区二区亚洲| 成人精品亚洲| 红桃视频国产一区| 国产精品婷婷| 日本在线视频一区二区| 亚洲三级观看| 国产精品亚洲综合色区韩国 | 六月天综合网| 日韩中文字幕| 精品视频97| 亚洲二区在线| 亚洲精品精选| 国产a亚洲精品| 亚洲二区视频| 四虎在线精品| 成人亚洲一区二区| 一本一道久久a久久精品蜜桃| 一区二区视频欧美| 日韩欧美2区| 国产成人a视频高清在线观看| 国产精品国产三级国产在线观看| 91日韩免费| 国内亚洲精品| 亚洲精一区二区三区| 国产极品模特精品一二| 人人精品亚洲| 日本一区中文字幕| 麻豆视频在线观看免费网站黄| 亚洲精品91| 欧美激情亚洲| 国产一区欧美| 国产另类在线| 亚洲激情二区| 国产在线一区不卡| 亚洲色图网站| 欧美13videosex性极品| 亚洲精品日韩久久| 日韩欧美一区二区三区免费观看| 日韩福利视频网| 欧洲激情综合| 精品一区二区三区在线观看视频| 亚洲激情二区| 91精品国产乱码久久久久久久| 国产精品亚洲二区| 亚洲精品在线观看91| 欧美激情国产在线| 国产探花一区| 亚洲网址在线观看| 欧美1区2区3区| 伊人久久在线| 久久亚洲道色| 久久激情五月婷婷| 午夜在线一区二区| 久久久久久免费视频| 国产在线观看www| 美女久久精品| 欧美日韩精品一区二区三区视频| 欧美成人高清| 成人午夜精品| 三级小说欧洲区亚洲区| 国产网站在线| 色老板在线视频一区二区| 国产乱码午夜在线视频| 国产福利片在线观看| 久久精品国产免费| 日本午夜精品久久久久| 日本在线视频一区二区| 亚洲有吗中文字幕| 奇米狠狠一区二区三区| 欧美亚洲网站|