問題タブ [cglib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - CGLIB 3.0にアップグレードする必要がありますか?
CGLib2.2.2をバージョン3.0にアップグレードする必要があるかどうか/なぜアップグレードする必要があるのか知りたいのですが。最新バージョンのHibernate/Spring/MockitoおよびJava7でCGLibを使用しています。
このバージョンのリリースノートやアップグレードの手順は、Webのどこにも見つかりません。
spring - CGLib および Mybatis Spring と組み合わせて Controller の Secured Annotation を使用する
誰かがこの問題について私を助けてくれることを願っています:
次のセキュリティ構成を使用したい:
<security:global-method-security secured-annotations="enabled" proxy-target-class="true" />
JDK 動的プロキシの代わりに CGLib をプロキシとして使用する理由は、次のような拡張インターフェイスを使用するためです。
残念ながら、継承を使用すると JDK 動的プロキシが RequestMapping 情報を失うため、これは機能しませんね!
そこで、proxy-target-class="true"
上記のプロパティを使用してみました。しかし、これは、DAO 実装を動的に生成するために使用したい mybatis スプリング MapperFactoryBean と組み合わせて動作しないようです。
これらの構成では、次の例外が発生します。
2013-01-24 10:30:12,216 [main] [ERROR] [] ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pidbStatisticLogServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.foo.bar.dao.api.admin.servicestatistic.StatisticLogDAO com.foo.bar.service.impl.admin.servicestatistic.PidbStatisticLogServiceImpl.statisticLogDAO; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.mybatis.spring.mapper.MapperFactoryBean#4': Post-processing of the FactoryBean's object failed; nested exception is org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class $Proxy25]: 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 $Proxy25
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:288)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1120)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:607)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
[...]
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.foo.bar.dao.api.admin.servicestatistic.StatisticLogDAO com.foo.bar.service.impl.admin.servicestatistic.PidbStatisticLogServiceImpl.statisticLogDAO; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.mybatis.spring.mapper.MapperFactoryBean#4': Post-processing of the FactoryBean's object failed; nested exception is org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class $Proxy25]: 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 $Proxy25
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:514)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:285)
... 28 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.mybatis.spring.mapper.MapperFactoryBean#4': Post-processing of the FactoryBean's object failed; nested exception is org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class $Proxy25]: 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 $Proxy25
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:165)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:102)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1443)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:249)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:873)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:815)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:730)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:486)
... 30 more
Caused by: org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class $Proxy25]: 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 $Proxy25
at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:217)
at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(AbstractAutoProxyCreator.java:473)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:359)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:319)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:412)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.postProcessObjectFromFactoryBean(AbstractAutowireCapableBeanFactory.java:1629)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:162)
... 38 more
Caused by: java.lang.IllegalArgumentException: Cannot subclass final class class $Proxy25
at org.springframework.cglib.proxy.Enhancer.generateClass(Enhancer.java:446)
at org.springframework.cglib.transform.TransformingClassGenerator.generateClass(TransformingClassGenerator.java:33)
[...]
この問題の解決策はありますか? mybatis スプリング org.mybatis.spring.mapper.MapperFactoryBean の動作を変更してproxy-target-class="true"
、スプリング セキュリティ構成のプロパティと組み合わせて機能するプロキシを作成する方法はありますか?
私を助けてください。spring 3.2.0、spring security 3.1.3、および mybatis spring 1.1.1 を使用しています。
ありがとう、オイリッド
java - クラス階層における Spring-cglib プロキシの動作
私は2つのクラスを持っています
上記の system.out は null.Where am I going wrong.Pls を出力します。これはcglibの仕組みですか?もしそうなら、これの回避策は何ですか?ありがとう
java - プライベート メソッドをインターセプトする方法
パワーモックのようないくつかのモッキングライブラリがプライベートメソッドのプロキシを作成する方法を誰かが説明してもらえますか. cglibを少し調べましたが、プライベート メソッドの呼び出しを傍受する方法が見つかりませんでした。具体的には、プライベート メソッドをインターセプトするために使用できる低レベル ライブラリまたはコア Java テクニックについて知りたいです。
java - コンパイル中に未実装のメソッドを自動的に追加する
Eclipse 機能の「実装されていないメソッドを追加する」に似たハックを実装する方法を見つけようとしています。
コードの作成中にこれらのメソッドを追加する代わりに、コンパイル中にこれを行い、テンプレートを使用してメソッド本体を生成したいと思います。さらに、元の .java ソース ファイルを変更したくありません。
たとえば、次のものがあるとします。
これをコンパイルすると、I.foo
実装されていないため、通常はエラーが発生します。
代わりに、コンパイルを成功させ、その後の実行でテンプレートを使用したいと思います。メソッドと実装されたインターフェイスに関する詳細情報を取得してテンプレートで使用できる{throw UnsupportedOpeationException()
ようにしたいのですが、それは難しくありませんか?
私が最初に考えたのは、注釈 ( ) を試すAutoImplementMethods
ことでしたが、注釈プロセッサは処理中の注釈付きコードを変更できません。
私はある程度快適ですAspectJ
が、型間宣言を使用してそれを行う方法がわかりません。
自分のJavaパーサーを使用してコードコードを生成する以外に、これを行う方法について何か提案はありますか?
java - Mavenリポジトリに間違ったcglibソースjarが含まれています
Maven中央リポジトリのcglib2.2.2ソースjarで問題が発生しました。次のトップレベルのエントリが含まれています。
それは意図的に行われたのですか、それとも不正な形式のソースパッケージですか?このjarを再パックし、ソースコードをsrcディレクトリから上位レベルに移動しました。cglibのすべてのソースコードにアクセスできるようになりました。その前に、一部のcglibクラスにはソース添付ファイルがありませんでしたが、ソースjarにはそのクラスが含まれていました。
java - デフォルトのコンストラクターなしでクラスのサブクラスを生成する
デフォルトのコンストラクターを持たないクラスに対して、cglib を使用してサブクラスを生成する必要があります。デフォルトのコンストラクターを持つクラスで正常に機能する次のコードがあります。
新しいクラスには、スーパークラスからデフォルト以外のコンストラクターを呼び出す必要があるデフォルトのコンストラクターが必要です。
検索したところ、cglib ではそのようなことができないため、asm を使用する必要があることがわかりました。ただし、デフォルトのコンストラクターをクラスに追加する例は見つかりませんでした。
誰かがそれを実装する方法の例を持っていれば、それは素晴らしいことです.
java - Spring AOP の例に関するいくつかの疑問
私はこのチュートリアルで勉強している Spring Framework の AOP を学んでいます: http://www.tutorialspoint.com/spring/schema_based_aop_appoach.htm
前のチュートリアルとは異なり、必要な jar ファイルを手動で追加するのではなく、Maven を使用しています。
最初に、この依存関係を pom.xml に追加しました (spring-core、spring-bean、spring-context、spring-context-support Spring モジュールに関連するものに加えて)
しかし、この方法では機能せず、次の例外が発生します。
原因: java.lang.ClassNotFoundException: org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldException
オンラインで読むと解決策が見つかりました: pom.xml に次の 2 つの依存関係を追加する必要があります。
だから今、私は2つの疑問があります:
まだorg.springframework.spring-aopがあるのに、なぜこのorg.aspectj.aspectjtools依存関係を追加しなければならないのですか? (また... org.springframework.spring-aop を削除できることに気付きました。これは使用されていません) それらの違いは何ですか?
cglibの依存関係を追加する必要があるのはなぜですか? @Configuration や @Bean などのアノテーションを使用するときに cglib を使用する必要があることはわかっていますが、これらのアノテーションがないこの場合、なぜこの依存関係が必要なのですか?
Tnx アンドレア
java - cglib での Dispatcher の使用
cglibプロキシでのDispatcherの使用について誰か説明してもらえますか?
web-services - java.lang.NoClassDefFoundError:クラスnet.sf.cglib.proxy.Enhancerを初期化できませんでした
応答時にRestサービスを要求しようとすると、例外が発生します。
この結果は、mvndependency:treeを実行した後に取得します
これは、mvndependency:treeを実行した後に取得されます。cglibの依存関係を確認しましたが、バージョン互換性があるかどうかわかりません。プロジェクトと互換性があるかどうかを確認してください。
ありがとう