2016-09-28 7 views
1

У меня есть компонент, который содержит некоторую конфигурацию:Update свойства боба во время выполнения

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 
} 

приложения-context.xml:

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

и значение конфигурации получается во время выполнения (с помощью вызова API) , Как обновить эти значения во время выполнения? Могу ли я сделать это с помощью сеттер:

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

ответ

2

Вводите свой контекст Spring первым в нужном месте

@Autowired 
ApplicationContext context; 

Получить customerService экземпляр из контекста Spring

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

ли необходимые изменения в service во время выполнения

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

UPDATE: Вы можете также obtaine из контекста только ваш Config например

context.getBean(Config.class).setLogin("login"); 
+0

что область для Config боб? опытный образец? – romanvintonyak

+0

@romanvintonyak по умолчанию все весенние бобы - это синглтоны. –

+0

Я имел в виду, что должно быть надлежащей областью боба? – romanvintonyak

Смежные вопросы