問題タブ [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.

0 投票する
1 に答える
2878 参照

java - CGLIB 3.0にアップグレードする必要がありますか?

CGLib2.2.2をバージョン3.0にアップグレードする必要があるかどうか/なぜアップグレードする必要があるのか​​知りたいのですが。最新バージョンのHibernate/Spring/MockitoおよびJava7でCGLibを使用しています。

このバージョンのリリースノートやアップグレードの手順は、Webのどこにも見つかりません。

0 投票する
1 に答える
681 参照

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 を使用しています。

ありがとう、オイリッド

0 投票する
1 に答える
457 参照

java - クラス階層における Spring-cglib プロキシの動作

私は2つのクラスを持っています

上記の system.out は null.Where am I going wrong.Pls を出力します。これはcglibの仕組みですか?もしそうなら、これの回避策は何ですか?ありがとう

0 投票する
1 に答える
965 参照

java - プライベート メソッドをインターセプトする方法

パワーモックのようないくつかのモッキングライブラリがプライベートメソッドのプロキシを作成する方法を誰かが説明してもらえますか. cglibを少し調べましたが、プライベート メソッドの呼び出しを傍受する方法が見つかりませんでした。具体的には、プライベート メソッドをインターセプトするために使用できる低レベル ライブラリまたはコア Java テクニックについて知りたいです。

0 投票する
2 に答える
1147 参照

java - コンパイル中に未実装のメソッドを自動的に追加する

Eclipse 機能の「実装されていないメソッドを追加する」に似たハックを実装する方法を見つけようとしています。

コードの作成中にこれらのメソッドを追加する代わりに、コンパイル中にこれを行い、テンプレートを使用してメソッド本体を生成したいと思います。さらに、元の .java ソース ファイルを変更したくありません。

たとえば、次のものがあるとします。

これをコンパイルすると、I.foo実装されていないため、通常はエラーが発生します。

代わりに、コンパイルを成功させ、その後の実行でテンプレートを使用したいと思います。メソッドと実装されたインターフェイスに関する詳細情報を取得してテンプレートで使用できる{throw UnsupportedOpeationException()ようにしたいのですが、それは難しくありませんか?

私が最初に考えたのは、注釈 ( ) を試すAutoImplementMethodsことでしたが、注釈プロセッサは処理中の注釈付きコードを変更できません。

私はある程度快適ですAspectJが、型間宣言を使用してそれを行う方法がわかりません。

自分のJavaパーサーを使用してコードコードを生成する以外に、これを行う方法について何か提案はありますか?

0 投票する
1 に答える
65 参照

java - Mavenリポジトリに間違ったcglibソースjarが含まれています

Maven中央リポジトリのcglib2.2.2ソースjarで問題が発生しました。次のトップレベルのエントリが含まれています。

それは意図的に行われたのですか、それとも不正な形式のソースパッケージですか?このjarを再パックし、ソースコードをsrcディレクトリから上位レベルに移動しました。cglibのすべてのソースコードにアクセスできるようになりました。その前に、一部のcglibクラスにはソース添付ファイルがありませんでしたが、ソースjarにはそのクラスが含まれていました。

0 投票する
1 に答える
1442 参照

java - デフォルトのコンストラクターなしでクラスのサブクラスを生成する

デフォルトのコンストラクターを持たないクラスに対して、cglib を使用してサブクラスを生成する必要があります。デフォルトのコンストラクターを持つクラスで正常に機能する次のコードがあります。

新しいクラスには、スーパークラスからデフォルト以外のコンストラクターを呼び出す必要があるデフォルトのコンストラクターが必要です。

検索したところ、cglib ではそのようなことができないため、asm を使用する必要があることがわかりました。ただし、デフォルトのコンストラクターをクラスに追加する例は見つかりませんでした。

誰かがそれを実装する方法の例を持っていれば、それは素晴らしいことです.

0 投票する
1 に答える
538 参照

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つの疑問があります:

  1. まだorg.springframework.spring-aopがあるのに、なぜこのorg.aspectj.aspectjtools依存関係を追加しなければならないのですか? (また... org.springframework.spring-aop を削除できることに気付きました。これは使用されていません) それらの違いは何ですか?

  2. cglibの依存関係を追加する必要があるのはなぜですか? @Configuration や @Bean などのアノテーションを使用するときに cglib を使用する必要があることはわかっていますが、これらのアノテーションがないこの場合、なぜこの依存関係が必要なのですか?

Tnx アンドレア

0 投票する
1 に答える
101 参照

java - cglib での Dispatcher の使用

cglibプロキシでのDispatcherの使用について誰か説明してもらえますか?

0 投票する
3 に答える
10522 参照

web-services - java.lang.NoClassDefFoundError:クラスnet.sf.cglib.proxy.Enhancerを初期化できませんでした

応答時にRestサービスを要求しようとすると、例外が発生します。

この結果は、mvndependency:treeを実行した後に取得します

これは、mvndependency:treeを実行した後に取得されます。cglibの依存関係を確認しましたが、バージョン互換性があるかどうかわかりません。プロジェクトと互換性があるかどうかを確認してください。

ありがとう