問題タブ [spring-ioc]
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 - SpringJUnit4ClassRunner がテスト後に DisposableBean.destroy を確実に呼び出せないことはまだ本当ですか?
によると: https://jira.spring.io/browse/SPR-4103 SpringJUnit4ClassRunner は、テスト後に必ず DisposableBean.destroy を呼び出すとは限りません (*facepalm*!) -- JUnit の実装上の問題が原因です。
これはまだ本当ですか?
次のようにscalaでテストを作成しています:
Service2Test の実行時に、Service1Config の Bean の destroy メソッドが破棄されないことがわかりました。
@After を追加してコンテキストを明示的にシャットダウンすることを推奨する多くの記事を見つけました。これは、エラーが発生するのを待っているように聞こえます (1 つのテストで @After クリーンアップを追加するのを忘れると、次のテスト クラスが失敗し、その理由がわからないため)。
これでも SpringJUnit4ClassRunner/JUnit で実行できない場合、各テストの後にコンテキストのクリーンアップを自動的に呼び出すテスト フレームワークはありますか?
spring - Spring Singletonスコープの正確な意味は何ですか?
applicationContext.xml で、同じクラスに異なる ID 名を持つ 2 つの Bean を定義しました。それは完全に機能しているので、正確なスプリングシングルトンスコープが何を意味するのか混乱しました。私のコードは以下です。私はスタックオーバーフローで他の同様の質問をいくつかしました。しかし、それらはまったく同じコンテキストと非常に長い説明ではないため、明確ではありません。
それが何であるか知っているなら、私に共有してください
1.コンテナ(コンテキスト)の単一インスタンス、
-私の場合、2つのインスタンスに対して2つのコンテナを作成していますか?
spring - 注釈ベースの Bean を xml ベースの Bean に注入する
私の永続化構成クラスは次のようになります。
そして、私はxml構成クラスを持っています:
だから私は@Beanで注釈が付けられた" dataSource " と呼ばれる Bean を(永続化構成クラスで)に注入したいのですが、どうすればできますか?<jdbc-user-service data-source-ref="dataSource" ... >
java - Spring : XML 構成の場所
私は春の学習者で、春の IOC コンテナーを使用してテスト プロジェクトをビルドし、プロジェクトのルート パスに beans.xml を構成し、アプリケーションにロードしてそこから Bean を取得します。
プロジェクトのルート ディレクトリにある spring.xml
ソースファイルの spring.xml
これは、beans.xml ファイルをロードする別のコードです
私の質問は、実際のプロジェクトでxmlファイル名とファイルの場所を作成するための標準または規則があるかどうかです。一部の記事を読んで、service.xmlやdao.xmlなどの大規模なプロジェクトには複数のxmlファイルが存在する可能性があることもわかったためです.
spring - Spring - リクエストスコープでコンポーネントオブジェクトをインスタンス化できません
<bean>
applicationContext.xml でエントリを宣言したコンポーネント オブジェクトをインスタンス化しようとしています。ターゲット コンポーネント クラスをインスタンス化するフローは次のとおりです。
CalculateController -> CalculateService -> CalculateComponent
どこ
CalculatorController - スコープ = リクエスト、@Controller で注釈が付けられ、webapplicationContext.xml のコンポーネント スキャンに含まれる
CalculatorService - Scope = singleton、@service で注釈が付けられ、applicationContext.xml のコンポーネント スキャンに含まれる
CalculateComponent - スコープ = リクエスト、注釈なし、webapplicationConext.xml と applicationContext.xml の両方でコンポーネント スキャンから除外されます。scope = request で webApplicationContext.xml に定義された Bean エントリ。<aop:scoped-proxy/>
も定義に含め
<bean>
ます。
web.xml に次のエントリを含めました。
CalculateComponent には 3 つのパラメーター ref オブジェクト コンストラクターがあり、それらの 3 つすべて<bean>
がシングルトン スコープの webApplicationContext.xml にエントリがあり、注釈が付けられていないことに注意してください。
When the request send to create the CalculateComponent object, spring container throwing the following error.
"No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request."
Please advise.
Update:
When I removed /WEB-INF/mvc-dispatcher-servlet.xml from contextConfigLocation and started the server, I got the Autowired failed error - "No qualifying bean of type CalculateComponent found for dependency:", even after I changed the scope from request to singleton.
Then I commented out the Autowiring of CalculateComponent in CalculateService and I can now see the CalculateComponent initiated twice (as mentioned my @Serge Ballesta). So I concluded that the CalculateService is initiated via ContextLoaderListener (bean entry in applicationContext.xml), before the DispatcherServlet is loaded(i.e no bean mentioned in mvc-dispatcher-servlet is loaded).
I added the /WEB-INF/mvc-dispatcher-servlet.xml back again in contextConfigLocation, but this time as the first entry (i.e on top of applicationContext.xml). Now the CalculateComponent loaded twice again and the Autowiring was done with singleton scope. With this setup I changed the CalculateComponent scope back to request, but again "I got the No thread-bound request found" error.
So the issue is,
ContextLoaderListener trying to initiaze the resources of DispatcherServlet(CalculateComponent) before its loaded / available.
java - Java メール セッションの遅延読み込み JndiObjectFactoryBean を構成する方法
Spring JndiObjectFactoryBean が、Jetty サーバーで構成された Java メール セッションの遅延ルックアップを実行する必要があるという要件があります。
以下は、私の jetty.xml でのメール セッションの宣言です。
私のSpring Bean定義ファイルには、次のBean定義があります
起動時に Spring にメール/GmailMailSession のルックアップを行わせたくありません。そのため、「lookupOnStartup」プロパティを「false」に設定しました。「lookupOnStartup」を false に設定すると、Spring は私が proxyInterface を提供することを期待します。よく検索しましたが、メール セッションのインターフェイスが見つかりませんでした。クラスである「javax.mail.Session」を設定してみました。明らかな次の例外を取得しました
私の質問は、「proxyInterface」に設定して遅延検索を機能させることができるJavaメールセッションで使用できるインターフェースはありますか?
java - 抽象親クラスと子クラスの Spring 構成の問題
次のコードを機能させようとしています。基本的に、mysql データベースに alert_settings というテーブルがあります。以下は、それとクラスの構成方法です。
以下は、Abstract Generic DAO、アラート設定 DAO インターフェイス、および実際の DAO クラスです。
抽象的なジェネリック DAO
}
AlertSettingDAO インターフェイス
/li>および 3. AlertSettingDAO 実装クラス
@Repository パブリック クラス AlertSettingDAOImplSpring は GenericDAO を拡張し、AlertSettingDAO を実装します {
}
これは私のメインクラスです
どこが間違っているのですか?正しいやり方は?