0

Spring Rooを使用していて、applicationContext.xmlで次の構成を持つControllerクラス内のBeanにアクセスしたいと思います。

<bean class="com.reservation.jobs.Configuration" id="jobsConfiguration" autowire="byType">
 <property name="skipWeeks" value="4" />
</bean>

構成クラス自体は次のとおりです。

package com.reservation.jobs;

public class Configuration {
 private int skipWeeks;

 public void setSkipWeeks(int value) {
  System.out.println("SkipWeeks set auf: " + value);
  this.skipWeeks = value;
 }
 public int getSkipWeeks() {
  return this.skipWeeks;
 }
}

私のコントローラーでは、単純なAutowiredアノテーションでうまくいくと思いました

public class SomeController extends Controller {
 @Autowired
 private com.reservation.jobs.Configuration config;

}

起動時に、SpringはsetSkipWeeksメソッド内にメッセージを出力します。残念ながら、コントローラー内でconfig.getSkipWeeks()を呼び出すと、0が返されます。

ApplicationContextインスタンスのgetBeanメソッドを使用する必要がありますか、それとももっと良い方法がありますか?

4

1 に答える 1

2

autowire="byType"冗長です。これは、Configurationクラスのフィールドを自動配線する必要があり、プリミティブが1つしかないことを示しています。したがって、その属性を削除します。

それとは別に、次の場合を除いてconfig.getSkipWeeks()戻る必要があります。4

  • 別のインスタンスを使用しています(で作成new
  • 値0でセッターをどこかに呼び出しました
于 2012-05-18T21:51:57.830 に答える