2016-09-28 93 views
1

更新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 
} 

APP-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; 

獲得Spring上下文

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

不要在運行時需要對service變化customerService實例:我可以用它二傳手做

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

更新:您還可以從上下文只是你Config實例

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

什麼是配置的bean範圍obtaine?原型? – romanvintonyak

+0

@romanvintonyak默認情況下所有的Spring bean都是單例。 –

+0

我的意思是什麼應該是一個合適的bean範圍? – romanvintonyak