3

我有一个包含一些配置的bean:

public class CustomerService{
  private Config config;

  @Required
  public void setConfig(Config config){
    this.config = config;
  }
}

public Config {
  private String login;
  private String password;

  //setters/getters
}

应用上下文.xml:

<bean id="config" class="Config"/>
<bean id="customerService" class="CustomerService">
   <property name="config" ref="config"/>
</bean>

并且配置值是在运行时获得的(通过调用 api)。如何在运行时更新这些值?我可以使用二传手来做到这一点:

customerService.getConfig().setLogin("login");
4

1 回答 1

10

首先在需要的地方注入你的 Spring 上下文

@Autowired
ApplicationContext context;

从 Spring 上下文中获取customerService实例

CustomerService service = context.getBean(CustomerService.class);

service在运行时做需要的改变

service.getConfig().setLogin("login");

更新:您也可以从上下文中获取您的Config实例

context.getBean(Config.class).setLogin("login");
于 2016-09-28T19:36:25.617 回答