問題タブ [autowired]
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.
spring - ライブラリでProguardを使用すると、自動配線する必要がある@ServiceBeanがあります
私はライブラリCommon.Licenseを持っていますが、これはProguardで難読化しています。
このライブラリには、@Serviceで注釈が付けられたSpringBeanがあります。
このライブラリをWebサービスCompany.Licenseで使用しており、LicenseServiceで自動配線します。
したがって、Company.LicenseはCommon.Licenseに依存しています。Common.Licenseを難読化licenseService
すると、自動配線されませんBackgroundTasks
。これを回避できる唯一の方法は、licenseServiceをBeanとして明示的に定義することでした。
Springでの自動配線を魔法のように機能@Service
させるのに十分なクラスにすでに注釈を付けているので、これをこのようなBeanとして明示的に宣言する必要はありません。しかし、そうではありません! licenseService
BackgroundTasks
これを機能させないために、Proguardは具体的に何をしていますか?Proguardの構成で、Springをより使いやすくするためにできることはありますか?
許す
spring - jsf マネージド Bean に @autowire する方法
@Autowire アノテーションを使用するには、アノテーションを使用するオブジェクトがスプリング コンテキストから取得されている必要があります。
JSF マネージド Bean は、Springs ではなく JSF の IOC によって作成されるため、内部で @Autowire を使用することはできません。faces-config.xml およびマネージド プロパティを使用する必要があります。
Spring Bean を管理プロパティとして使用できる EL リゾルバーを既にセットアップしています。さらに一歩進んで、何かを自動配線する必要があるたびに、faces-config.xml に移動する必要をなくしたいと考えています。これは可能ですか?
java - 自動配線は IoC の目標を制限しませんか?
IoC は素晴らしいですが、自動配線 (@EJB、@Autowired、@Inject、@SpringBean など) で使用すると、IoC の目標が制限されると思いませんか?
実際、さまざまなフレームワークでの自動配線システムについてはあまり知りませんが、主に型に基づいているようです。
IService で @EJB を使用する場合、ServiceImpl を 1 つだけ実装して機能させる必要があります。
多くの実装が必要な場合はどうなりますか?
一部の自動配線注釈には引数を指定できるようです。@SpringBean("xxxService") xxxService は、Spring で初期化された Bean です。
そのような場合、「new XxxServiceImpl()」は実行しませんが、Bean で使用するサービス実装へのハードコーディングされた参照を配置します。それは単にクラス参照ではなく、実装へのSpring Bean参照です...
あれについてどう思う?私は自動配線が好きですが、自分自身を不思議に思っています....
java - 春のポストプロセッサー、注文、@必須
仕事では、スプリングポストプロセッサでサービスをバインドするためのアノテーションが付いたカスタムServiceProviderパターンがあります。
@Requiredを使用して、バインディングが正しく行われたかどうかを確認できるかどうか疑問に思います。
バインディングはSpringによって行われません(xmlでも自動配線でもありません)。
可能であれば、ポストプロセッサの順序にはある程度の重要性があると思います(必要なスプリングチェックは、カスタムバインディングプロセッサの後で処理する必要があります)。
誰かがそれが可能かどうか、そしてどのように教えてもらえますか?
spring - 自動配線されない
http://svn.apache.org/repos/asf/cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_soap_rest/WEB-INF/beansで定義されている jaxrs:client を使用して安静なクライアントを構築しようとしています.xml
私のテストクラスでは、org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.abc.service.ExportServiceTest': Injection of autowired dependencies failed; を取得しています。ネストされた例外は org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.bankbazaar.service.ExportService com.abc.service.ExportServiceTest.exportClient; です。ネストされた例外は org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.abc.service.ExportService] が依存関係に見つかりません: この依存関係のオートワイヤー候補として適格な少なくとも 1 つの Bean が必要です。依存関係アノテーション: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=exportClient)}
これは私の春の設定です
でも
これは機能します。
ありがとうヒマンシュ
java - 構成された Bean ではないクラス内で Bean を自動配線する方法は?
用語が正しくない場合はご容赦ください。
したがって、私の状況は次のとおりです。
クラスがあります。それを TheClass と呼びましょう。このクラス内には TheData オブジェクトがあります。
次のように、TheData Bean を設定するための XML があります。
そして、次のような TheClass 内のセッター:
私の問題は、XML で TheClass Bean も作成しない場合 (したがって、自動配線できない場合)、 theData フィールドを自動配線することを認識できないことです (そうですか?)。また、特定の制限により、XML で TheClass を構成できません (したがって、後で自動配線されます)。それで、私の質問は、どうすればこれを機能させることができますか? 初心者なので至らぬところがありましたらご指摘いただければ幸いです。
spring - Spring JUnit テスト: 自動配線とトランザクションの問題
Spring を活用する既存の Java EE アプリケーションがあり、xml 構成から自動配線に移行しています。ほとんどの EJB を Spring Bean に変換したばかりですが、現在も MDB と EJB タイマーを使用しています。
- 7.0でした
- Java 6
- 春 3.0.5
- JUnit 4.8.1
また、JUnit で統合テストを作成中です。私の統合テストでは、WAS で実行する場合と同様にほとんどのコンテキスト構成ファイルを使用しますが、JNDI に結び付けたり、JTA トランザクション マネージャーを使用したりするものは使用しません。それらについては、ActiveMQ キュー、Hibernate トランザクション マネージャーなどをセットアップする同等のものがあります。
私のテストは次のようになります。
私のテストには、少なくともいくつかの理由で問題があります。
- 自動配線で一部の Bean がスキップされる
- Bean がトランザクション用にプロキシされない場合がある
項目1は循環参照と関係があるようです。自動配線に問題があるいくつかの Bean のコピーを作成しました。同じパッケージでコピーを作成しました。コピーは接続されますが、オリジナルは接続されません。次に、xml コンテキスト ファイル内の参照を元のファイルからコピーに移動し始めました。ある時点で、コピーは接続されなくなりましたが、元のファイルは接続されました。コンテキストファイルの1つに次のものがあります(私を保護するために名前が変更されています:):
2 番目のエンティティは冗長だと思いますが、無害であるべきです。
ログにエラーはありません。ロギングをデバッグに切り替えて、ほとんどの Bean が自動配線されているのを確認しましたが、Spring のエラーはスキップされないようです。
項目 2 は項目 1 に関連している可能性があります。一部の Bean は、トランザクションを処理するために適切にプロキシされていません。私のJUnitのみのコンテキストでは、次のものがあります。
一部の場所ではトランザクションがないために休止状態エラーが発生しますが、他の場所では Bean がプロキシされてトランザクションが開始されます。プロキシされた Bean とプロキシされていない Bean の両方が のサブパッケージにありcom.mycompany.package1
ます。
もちろん、WAS でアプリケーションを実行すると、これらすべてが機能します。ContextSingletonBeanFactoryLocator を使用します。JUnitでもそれを試しましたが、役に立たなかったようです。
助けてくれてありがとう。
java - スプリング自動配線を使用するコードベースをリファクタリングする方法
私は、アプリケーションの構成にSpringを使用する2つのかなり重要なコードベースを継承しました。次に、アプリケーションを再構成する必要があります。ただし、多くの構成は自動配線によって提供されるため、実際の構成を確認することはほとんど不可能です。
プロジェクトは適度なサイズで、統合テストモジュールなどを含むプロジェクトごとに約20のMavenモジュールがあります。ほとんどのモジュールは、さまざまな目的のためにいくつかのアプリケーションコンテキストを定義します。これには、依存するコアモジュールからの1つまたは2つとともに、1つまたは2つのローカルSpring構成ファイルが含まれます。その結果、無数の構成が作成され、プロジェクトのどこにも依存関係が表示されない場合でも、アップストリームまたはダウンストリームモジュールの依存関係を壊すリスクを冒さずに、クラス名または変数名(またはセッターメソッド)を変更することはできません。
春に自動配線された依存関係を効果的に処理するにはどうすればよいですか?
誰か、おそらく実際に自動配線が好きな人は、あなたがそれらを効果的にどのように扱うかについての洞察を提供できますか?
(私はまた、xmlファイル、自動配線、および注釈駆動型構成を組み合わせた小さなプロジェクトを継承し、依存関係を完全に扱いにくくしましたが、後で別の質問のためにそれらの注釈を保存します)
grails - 自動配線によるGrailsの依存性注入が機能しない
と呼ばれるサービスとMailer
、このサービスを使用するコントローラーがあります。
しかし、私が電話すると、次のようpublish
になります。
ここで依存性注入が機能しないのはなぜですか?
java - @Autowiredオブジェクトがnull値を取得
プロジェクトをセットアップしようとしましたが、Springを介したオブジェクトの自動配線に失敗しました。
これを実行すると、cd.addContactが呼び出されたときにNullPointerExceptionが発生します。ContactDaoImpl:
私のサーブレットファイル:
私のhibernate.cfg.xmlファイル:
私のweb.xmlファイル:
エラーは、SessionFactoryが@Autowiredを介して正しく初期化されていないことだと思いますが、それはなぜですか?それは単純なディレクトリ構造/ファイルパスの問題でしょうか、それとももっと複雑な問題でしょうか?
前もって感謝します。
更新:ContactDAOImplクラス: