论坛首页 Java版 Spring

spring如何动态配置bean的注入值

浏览 331 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2008-05-09
在sprint 的beans中有个远程调用 接口就是上面的helloService,这个调用接口的serviceUrl属性我开始使用values变量直接赋值上去的,我想在程序中控制serviceUrl中赋的值,让每次调用的地址不一样。怎么配置,有没有人给讲解一下。 我写的代码如下: beans.xml相关内容: getUrl ipdate为: public class Ipdate { // String ipaddress=null; private String url=null; /** Creates a new instance of Ipdate */ public Ipdate () { } public String getUrl () { return url; } public void setUrl (String url) { this.url = url; } } hello为: public interface Hello { public String hello(String name,String password); } 我怎么在spring中随时地通过设置ipdate.setUrl()来控制helloService的serviceUrl属性呢?不太会配置spring的这种注入?
   
时间:2008-05-09
XML中不适合注入实时的动态配置,建议把这个动态值作为被调用方法的接口参数用

当然只有若干种固定值配置值,可以针对每一个固定值给service起不同的ID,比如:
“helloService1”、“helloService2”、“helloService3”
这时候也可以考虑在XML中用工厂方法进行配置

ps:LZ的源代码排版非常糟糕
   
0 请登录后投票
时间:前天
关键是楼主为什么要实现这样的配置呢?为了实现一种怎样的功能?
   
0 请登录后投票
时间:前天
spring remoting的service accessor属于一种client proxy,即使你更改访问的url,你的interface也会不一样,这是相互关联的,希望你把需求搞清楚,看看是否真的需要这么做!

排除具体需求因素,但从技术层面讲,除了armorking说的,通过参数传递动态值,如果你真的需要在运行期间动态更改对象的属性的话,JMX或许可以帮你,当然你或许可以想出更多方法,但还是首先确定真实的需求为妙。
   
0 请登录后投票
时间:前天
其实在有些情况下是可以做到的
比如与Spring紧密结合的acegi
我们可以把原来配置在xml中的URL信息
写到数据库里
这样一来
可以在数据库里随意添加资源信息
而不需要去频繁的改到xml
频道的重启服务器.
这一点在很多项目中都有应用
当然
如果是一般的bean的话
我觉得要部分改变它的配置信息
并非一件不可能的事情
或许会麻烦一些
会调用一些spring更底层的类
看一下spring类加载的源码
或许会有帮助
   
0 请登录后投票
论坛首页 Java版 Spring

跳转论坛:
JavaEye推荐
    快速回复 引用上一条消息 (Alt+S)