0

Springを使用してWebサイトのキャッシュクラスを作成しようとしていますが、applicationContect.xmlファイルに次のコードを追加しました。

<bean id="SiteCache" class="Cache.SiteCache">

私がよくわからないのは、このクラスを初期化する方法です。自分で初期化する必要がありますか、それともサイトの読み込み時にSpringがそれを処理しますか?もしそうなら、コンストラクター内でパラメーターを受け入れるにはどうすればよいですか?

変数にアクセスしてサイトにデータを入力するためのより迅速な方法として、クラスをほとんどの場合使用したいのですが、XMLファイルをロードできるように、最初にインスタンスがあるかどうかを確認する方法が必要です。それ以外の場合はソースから。

春にキャッシュを実装するための最良の方法は何でしょうか?

どうもありがとう、

4

3 に答える 3

5

私がよくわからないのは、このクラスを初期化する方法です。

デフォルト(定義を提供)では、SpringはBeanのインスタンスを1つだけ作成し、他のコードが必要とするすべての場所でそれを使用します。

コンストラクター内でパラメーターを受け入れるにはどうすればよいですか?

4.4.1.1コンストラクターベースの依存性注入をチェックしてください:

<bean id="foo" class="x.y.Foo">
  <constructor-arg ref="bar"/>
  <constructor-arg value="42"/>
</bean>

および4.4.2.7c-namespaceを使用したXMLショートカット

<bean id="foo" class="x.y.Foo" c:_0-ref="bar" c:_1-ref="baz">

春にキャッシュを実装するための最良の方法は何でしょうか?

組み込みのSpringキャッシュ抽象化を使用することは良いスタートです。

于 2012-07-28T16:44:43.787 に答える
0

春にキャッシュを実装するための最良の方法は何でしょうか?

キャッシュの実装に関しては、EhCacheなどの既存のキャッシュ実装をSpringキャッシュ抽象化と組み合わせて使用​​することをお勧めします。

これにより、キャッシュにアクセスするメソッドに注釈を付けるのと同じくらい簡単にキャッシュできます@Cacheable。Springは、メソッドを実行する前にキャッシュの使用を試みます。

独自のキャッシュを作成するのは簡単に思えるかもしれませんが、最も難しい部分は常にキャッシュの無効化です。

于 2012-07-28T16:29:18.883 に答える
0

必要なのは、キャッシュクラスのコンストラクターにXMLファイルをロードすることだけだったようです。最終的にBeanを定義する必要はありませんでした。各コントローラーのGET/POSTメソッドでBeanを受け入れるだけで、キャッシュクラスをシングルトンに保つことができました。このように、XMLファイルは一度だけロードされ、サイトが構築されたときにキャッシュオブジェクトに保存されます。その後、キャッシュオブジェクトを使用してアクセスを容易にすることができます。

しかし、代替案のおかげで、それらはより複雑なシステムでより効果的であるように見え、私のものは実際にはそれをすべて必要としなかったことがわかりました。私も大まかな考えを持っていて、少しだけ思い出させる必要がありました!

于 2012-07-30T07:50:52.287 に答える