問題タブ [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 - 春にBeanの作成に失敗する
これがログです
これは私のxmlファイルのエントリです..
問題を解決するのを手伝ってください よろしくお願いします..
spring - SpringInitializingBeanインターフェース
春のXMLファイルには、IDは異なるがクラスが同じ2つのBeanがあります。それらはオフコースで同じプロパティを持っています。これでInitializingBeanインターフェースができ、afterPropertySet()でプロパティの値を出力しています。
値を2回印刷しますか?
java - 動的なキーと値を持つ Spring Bean マップ
現在、Spring Bean マップにアプリケーション関連のデータがあり、このマップを他のクラスに ref として渡しています。
マップは以下のように定義されています
このマップは、他の Bean では次のように参照されます。
データベーステーブルからマップ値を取得し、それを他のクラスに注入したいだけです。どうすれば春にそれを行うことができますか。基本的に、そのテーブルにはアプリケーション関連のデータが含まれています。マップのキーと値は int,Configuration になります。
構成データをロードするのに最適な場所は? Spring Beanマップを使用できますか、またはデータベースから構成をロードし、サービス、デリゲート、DAOなどのアプリケーションの他の場所でそれを参照するための他の良いアプローチはありますか?
助けていただければ幸いです
ありがとう
spring - lazy-init の Spring デフォルト動作
私はスプリング初心者で、コントロールのESP反転です。次の違いを理解するのに戸惑いました
私の理解では、lazy-init=false は起動時に Bean を作成し、lazy-init=true は起動時に Bean を作成せず、特定の Bean の要求に応じて Bean を作成します。私の解釈が間違っている場合は、ここで訂正してください。
lazy-init のデフォルトの動作は正確には何ですか? どのようにインスタンス化しますか?
java - Spring IOC を実装するときに ApplicationContext.getBean() を使用しないようにする方法
私はSpring IOCのコンセプトを始めたばかりです。インターネットで見つかったほとんどの例では、コードを使用してオブジェクトを取得することがよくあります。
stackoverflow のこれらの質問1および2からの参照として。私は、悪い習慣と見なされるコードで appContext.getBean("hello") を使用する必要はないと推測しました。また、推奨されなくなりました。私の推論が間違っている場合は、ここで訂正してください。
それを考慮して、それに応じてプロジェクトに変更を加えました。これが私のapplicationContext.xmlです
私のcontextProviderクラスコード
たとえば、org.hd.derbyops.DUtils に依存するクラス A を考えてみましょう。次のコード行を使用しています
クラスAでDUtilsオブジェクトを取得するため ApplicationContext.getBean()
、コード内のどこでも使用できなくなります。
10 個のクラスがあり、クラス A がそれらすべてに依存しており、そのオブジェクトが を使用せずに作成およびアクセスされるとしますApplicationContext.getBean()
。その場合も、上記のように、ContextProvider クラスのプロパティを作成し、その後にそのプロパティのセッターとゲッターを作成することを考えています。ここで、inget<PropertyName>
は静的です。そのため、このように、オブジェクトが必要な場所ならどこでも使用できます
これが私の簡単な質問です。まず、私のアプローチは正しいですか?もしそうなら、起動時にすべての Bean をロードすると、パフォーマンス キラーになりませんか? getBean を少なくとも 2 回以上呼び出すことなく、アプリケーションでそれを行うにはどうすればよいでしょうか?
Web アプリケーションを設計しApplicationContext.getBean()
、コードを使用せずに Spring IOC を実装する場合。どうやってそれをしますか?
注:上記でタグ付けされた他の質問を参照してください。
ApplicationContext.getBean() の呼び出しは制御の反転ではありません!
spring - SpringでBean名を自動配線することは可能ですか?
インターフェイスを使用する代わりにアノテーションを使用してSpringでBean名を自動配線することは可能BeanNameAware
ですか?
spring - Spring アノテーションはどのように機能しますか?
動機
クラスローディングに関する以前の質問のフォローアップとして
人気のある Spring フレームワークでアノテーションがどのように機能するのか興味があります。
考えられる解決策
私が理解している限りでは、2 つのメカニズムが使用される可能性があります。
1. クラスローディング時のバイトコード インジェクション
Spring は独自のクラスローダーを使用して、必要なクラスをロードできます。実行時に、クラスがロードされ、Spring が適切なアノテーションがあると判断すると、バイトコードを挿入して、追加のプロパティまたは動作をクラスに追加します。
したがって、 で注釈が付けられたコントローラーは、@Controller
いくつかのコントローラー基本クラスを拡張するために変更される可能性があり、関数は で注釈が付けられたときにルーティングを実装するように変更される可能性があります@RequestMapping
。
2. インスタンス化に使用されるリフレクション
@Autowired
インスタンス化の順序を処理し、構成されたプロパティをインスタンス化するために、実行時に BeanFactory によるリフレクションによって読み取ることができます。
質問
Spring アノテーションは実際にどのように機能しますか?
java - Spring Beanスコープ:セッションとglobalSession
SpringフレームワークのセッションとglobalSessionの違いは何ですか?
私の調査によると、どちらもWeb対応のSpringApplicationContextのコンテキストで有効です。
これで、セッションBeanスコープはユーザーセッションまで残りますが、globalSession Beanスコープはアプリケーション全体で使用できますか?
アプリケーションスコープですか?
「グローバルHTTPセッション」という用語を理解できません。グローバルHTTPセッション全体で利用できますか?
java - Spring シングルトンのメモリ使用量の最適化
遅延ロードされたシングルトン Bean を使用する場合、Spring は何らかの方法でメモリ使用量を最適化しますか?
いくつかのモジュール (アプリケーション フレーム/ウィンドウ) を表すシングルトン Bean があり、それが遅延しているとします。この Bean は、このフレームのコンポーネントであり、Spring の IoC コンテナーで定義されていないいくつかのクラスをロードします。
モジュールを閉じると仮定するとJFrame
、フレームのすべてのコンポーネントは通常、ガベージ コレクションされるはずですが、Spring Bean によって参照されます。
この状況でスプリングはメモリ使用量を最適化しますか?
正確には、プロトタイプについてではなく、シングルトンについて質問しています。ウィンドウを閉じると、Springシングルトンのメモリが解放されるという奇妙な動作があるためです。ウィンドウにプロトタイプ Bean を使用すると、さらに多くのメモリが解放されます。