問題タブ [applicationcontext]
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 - 春の階層コンテキスト
次の問題があります: 既存のearアプリケーションに Spring を実装しようとしています (Jboss を App Server として使用し、Hibernate を ORM として使用しています)。ear アプリケーションは、war (基本的にいくつかの単純なサーブレット)、har (クラスとしてのデータ モデルと対応する休止状態のマッピング ファイル (xml) のみを持つ休止状態のアーカイブ)、sar (スケジュールされたタスクとして 1 つの解析クラスのみ) で構成されます。したがって、戦争中 (サーブレットがデータベースからデータを取得しているため) および sar (パーサーがデータベースを「埋めている」ため) で、har アーカイブの最終的なappContextを共有する方法に興味があります。その点で、両方(戦争とsar)はシングルトンSessionFactory Beanを使用する必要がありますこれは、har のコンテキストで定義されます。コード例またはスニペットをいただければ幸いです。
multithreading - 春のマルチスレッドコンテキストの初期化?
春の伝統的な3層アプリケーションがあります。私のリポジトリの 1 つは初期化に 3 分以上かかるため、プロセス全体を高速化するためにマルチスレッド アプローチを考えました。依存関係ツリー内のほとんどのサービスとコントローラーは既に開始されていると思います。最後に登場するリポジトリ。
ベストプラクティスのアプローチはありますか?
java - ApplicationContext 自体を注入する方法
ApplicationContext
自分自身をBeanに注入したい。
何かのようなもの
それは春に可能ですか?
java - ApplicationContext と Bean の取得
Spring のドキュメントを読んでいるときに、ちょっと考えさせられるテキストに出くわしました。
getBean() を使用して、Bean のインスタンスを取得します。ApplicationContext インターフェイスには、Bean を取得するためのメソッドが他にもいくつかありますが、理想的には、アプリケーション コードでそれらを使用しないでください。実際、アプリケーション コードには getBean() メソッドの呼び出しがまったくないため、Spring API への依存はまったくありません。
さて、xml ファイルで Bean を構成しました。しかし、必要なときにそれらを取得する必要があります。getBean() メソッドなしでそれを行うにはどうすればよいですか? 説明が詳しいほど良いです。
spring - Springトランザクションコンテキストはデータを永続化しません
私の問題は一般的な問題であることは知っていますが、ここで多くの質問を確認し、Springのドキュメントを確認しましたが、何が間違っているのか本当にわかりません。私の問題:JPAを使用したSpring WebFlowプロジェクトがあります(実装:OpenJPA + MySQLデータベース)。Spring ORMを使用して、EntityManagerを(@PersistenceContextアノテーションによって)単純なRegisterDAOに挿入します。MySQLを使用するためにGlassFishs(使用している)接続プールを構成しましたが、すべてが機能します-データベースで作業できますが、何かを永続化すると何も起こりません(データはデータベースに永続化されません)。問題は、私が使用するトランザクションコンテキストにあることを知っています。Spring Transaction Managementのドキュメントを読み、このドキュメントの構成手順に従います。これは私のapplicationContext.xmlです:
ご覧のとおり、RegisterDAOをRegisterFormModelに挿入しています。これには、レジスタフォームデータを検証し、最終的にデータベースにユーザーを追加するためのビジネスロジックが含まれています。検証は正常に機能します。新しいユーザーを追加しようとすると問題が発生します。コードは次のとおりです。
RegisterDAO:
@Transactionalアノテーションも試してみました。SpringapplicationContext.xmlを次のように構成しました。
そして、私のaddUser()メソッドに次のような@Transactionalアノテーションを付けました。
または、この注釈によってクラス全体に注釈を付けることもできます。
しかし、どちらの場合も問題は同じです-データはデータベースに保存されません。私はこれの初心者なので(春全体のように:))、AOPプロキシに問題はありますか?
編集:persistence.xmlでtransaction-type="JTA
「」を使用しているので、applicationContext.xmlで使用する必要があると思い<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager" />
ます-私は正しいですか?
java - Springはどのようにしてアプリケーションコンテキストまたはコンテナ階層を作成しますか?
IoC Containerによると、Springはコンテキスト階層またはコンテナーの階層を管理し、を使用し<ref parent="beanId"/>
て親コンテキスト内のBeanを参照できます。Springはこのコンテナ階層を作成するためにどのようなメカニズムを使用していますか?このコマンドを使用<import resource="application-context.xml"/>
してこの階層を作成できますか?階層を形成するアプリケーションコンテキストの例を提供してください。
google-app-engine - Bean は @Controller で初期化されますが、@RequestMapping は呼び出されません
以下は、新しい Spring 3 アノテーション ベースのコントローラーのセットアップです。
//dispatcher-servlet.xml
// web.xml
// スプリング コントローラー
/auth に移動すると、404 が返されます。Bean を次のように登録しようとすると、次のapplicationContext
ようになります。
BeanException
Bean が既に登録されているという状態を取得し/logingoogle
ますControllerClassNamehandlerMapping
。Google App Engine で Spring 3.0.2 を使用しています。
助けていただければ幸いです。
java - SpringApplicationListenerがイベントを受信していません
私は次のApplicationListenerを持っています:
そして、次のBean定義:
コンストラクターからのメッセージが出力されるときにBeanが作成されることがわかりますが、コンテキスト開始イベントが受信されることはありません。私は何が欠けていますか?
spring - Spring アプリケーション コンテキストを使用した JUnit カスタム ランナー
私は Spring を初めて使用し、Web アプリケーション用の一連の JUnit 4.7 統合テストに取り組んでいます。次の形式の実際のテストケースがいくつかあります。
私のアプリケーションには、テスト中の多くの外部依存関係があり、そのすべてにtestContext.xmlのロードによって初期化される Bean があります。これらの外部依存関係の一部では、必要なリソースを初期化して破棄するためにカスタム コードが必要です。
このコードを必要とするすべてのテスト クラスでこのコードを複製するのではなく、共通の場所にカプセル化したいと考えています。私の考えは、次のように、別のコンテキスト定義と、 SpringJUnit4ClassRunnerを拡張し、@ContextConfiguration アノテーションと関連するカスタム コードを含むカスタム ランナーを作成することでした。
次に、各テスト クラスに該当するランナーを次のように指定させることができます。
これを行うと、テストが実行され、適切なwithBeforeClassesおよびwithAfterClassesメソッドが実行されます。ただし、テストクラスに applicationContext が返されず、すべてのテストが次のように失敗します。
java.lang.IllegalArgumentException: NULL 'contextLoader' で ApplicationContext をロードできません。テスト クラスに @ContextConfiguration のアノテーションを付けることを検討してください。
コンテキストは、各テスト クラスで @ContextConfiguration アノテーションを指定した場合にのみ正しく読み込まれます。理想的には、このアノテーションが読み込みを担当するリソースのハンドラー コードと一緒に存在するようにしたいと考えています。これが私の質問につながります-カスタムランナークラスからSpringコンテキスト情報をロードすることは可能ですか?
java - コンテキストを介してSpringサービスに常にいくつかのフィールドを挿入します
私は次のクラスを持っています:
今、私はTestService
このクラスの外から自分をインスタンス化しています
size
もちろん、変数はですnull
。ただし、オブジェクト全体を注入しなかったとしても、Springコンテキストから注入したいと思います。
常にいくつかのフィールドを挿入することは可能ですか?