论坛首页 Java版 Spring

Spring的动态配置

浏览 5563 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2005-07-12
我比较喜欢Spring中通过XML文件配置来实现POJO的自动加载,不但思路清楚,而且更加灵活,但有的时候我的XML中的个别参数需要变动一下,那就要重新写一个XML文件或是将所有类用代码来实现,能不能把XML的内容保存到一个容器中,如writer或String、document等对象中,通过动态的改动容器重新加载的办法来实现个别参数的变动,这样极大的增加了spring的灵活性。我接触spring的时间不多,我只是提出一个想法,大家来讨论一下。
   
最后更新时间:2005-07-12
JMX
   
0 请登录后投票
最后更新时间:2005-07-14
spring难道真的没有办法增加他的灵活性了吗
   
0 请登录后投票
最后更新时间:2005-07-15
有办法了,可以将字符串抽取成inputstream,然后压入spring中就可以了,谢谢大家
   
0 请登录后投票
最后更新时间:2005-07-24
能给一个例子吗?
说说你的大致解决方法
我也好学习学习
   
0 请登录后投票
最后更新时间:2005-10-13
在真实的环境中,经常遇到代码更新遇到的麻烦。
线上系统不允许经常重新启动WEBSERVER,
如何能通过spring重新载入BEAN以及它的配置属性?

如果仅仅是配置属性的修改,比较简单
<%
ServletContext context = this.getServletContext();
ApplicationContext ctx =
WebApplicationContextUtils.getWebApplicationContext(context);
TestBean bean = (TestBean)ctx.getBean("bean1");
bean.setProperty("new value");
%>

但是如果代码更新呢?
   
0 请登录后投票
最后更新时间:2005-10-13
关注,强烈关注,Spring1.3 有没有提出解决方案。

重启Web Server,罪莫大焉,让人怀恋起php和jsp.
   
0 请登录后投票
最后更新时间:2005-10-13
确实是,我们的服务经常要更新代码,重启服务,
apache很快,但是tomcat尤其用了spring,会好几分钟。

自己写ClassLoader,读取class文件,动态注入到factory中?

没有具体做过,我觉得可以的,
但是ApplicationContext没有注册bean的接口啊,ConfigurableBeanFactory有,但是
ConfigurableBeanFactory ctx =
      (ConfigurableBeanFactory)WebApplicationContextUtils.getWebApplicationContext(context); 

转型失败
   
0 请登录后投票
最后更新时间:2005-10-13
江南白衣 写道
关注,强烈关注,Spring1.3 有没有提出解决方案。

重启Web Server,罪莫大焉,让人怀恋起php和jsp.

这个要jvm支持的把,假若还有旧的对象引用在内存,那么要动态换
就需要实时evict掉旧的对象(或者让jvm支持multiversion技术),
spring作为application层的东西,恐怕作不到这一点吧。
   
0 请登录后投票
最后更新时间:2005-10-13
[code:1]<%
  ServletContext context = this.getServletContext();
  XmlWebApplicationContext ctx =
      (XmlWebApplicationContext)WebApplicationContextUtils.getWebApplicationContext(context);       
  TestBean bean = (TestBean)ctx.getBean("bean1"); 
  DependBean bean2 = (DependBean)ctx.getBean("bean2"); 
  ConfigurableListableBeanFactory factory = ctx.getBeanFactory();
%>             
<h1>
Before load:<%=bean.getName()%>
bean2:<%=bean2.getRefbean().getName()%>
</h1>
<% 
  //bean.setName("newName");
  TestBean newBean = new TestBean();
  newBean.setName("newName");
  factory.registerSingleton("bean1", newBean);
  bean = (TestBean)ctx.getBean("bean1"); 
%>  [/code:1]
报org.springframework.beans.factory.BeanDefinitionStoreException: Could not register object [testspring.TestBean@6835fb] under bean name 'bean1': there's already object [testspring.TestBean@1124746 bound
   
0 请登录后投票
论坛首页 Java版 Spring

跳转论坛:
JavaEye推荐