0

我正在使用 Spring Roo 并希望访问 Controller 类中的一个 bean,该类在 applicationContext.xml 中具有以下配置:

<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该类的字段应该是自动装配的,并且您只有一个原语。所以删除该属性。

除此之外,config.getSkipWeeks()必须返回4,除非:

  • 您正在使用不同的实例(由您制作new
  • 您在某处调用了值为 0 的 setter
于 2012-05-18T21:51:57.830 回答