浏览 20415 次
锁定老帖子 主题:pico印象
该帖已经被评为精华帖
作者 正文
   发表时间:2005-03-09  
spring支持基于constructor。
0 请登录后投票
   发表时间:2005-03-10  
我倒没有看到spring的配置基于构造函数的xml。不知道长成什么样子?
0 请登录后投票
   发表时间:2005-03-10  
ajoo 写道
我倒没有看到spring的配置基于构造函数的xml。不知道长成什么样子?

你是想要这样的?
<bean id="exampleBean" class="examples.ExampleBean">
    <constructor-arg><ref bean="anotherExampleBean"/></constructor-arg>
    <constructor-arg><ref bean="yetAnotherBean"/></constructor-arg>
    <constructor-arg type="int"><value>1</value></constructor-arg>
</bean>
0 请登录后投票
   发表时间:2005-03-10  
好麻烦。这种用xml描述java逻辑的东西真是蹩脚。
java对应版本不过是:
new ExampleBean(anotherBean, yetAnotherBean, 1);;

jaskell的配置不过是:
new "ExampleBean"[anotherBean, yetAnotherBean, 1]
0 请登录后投票
   发表时间:2005-03-10  
多几个字,少几个字而已,不觉得使用jaskel做l配置有什么特别吸引力啊。
0 请登录后投票
   发表时间:2005-03-10  
nihongye 写道
多几个字,少几个字而已,不觉得使用jaskel做l配置有什么特别吸引力啊。


这句深得我心,ajoo的研究方向和思路都很好,但却要把自己局限在jaskel的狭窄范围之内,还要去研究写配置这种无聊课题,简直就是杀鸡用牛刀。
0 请登录后投票
   发表时间:2005-03-10  
引用
ajoo的研究方向和思路都很好,但却要把自己局限在jaskel的狭窄范围之内,还要去研究写配置这种无聊课题,简直就是杀鸡用牛刀。
这句话也是深得我心
0 请登录后投票
   发表时间:2005-03-11  
呵呵,两位太抬举我了。
我这点本事,能把jaskell或者配置研究出点东西就不错了。

要不是有兴趣,早就不在软件业混了,人比人,气死人的。(当然,那样我也只有饿死了)
0 请登录后投票
   发表时间:2005-03-12  
jetty的配置文件,典型的用xml写代码,又长又臭。
<Call name="addWebApplication">
    <Arg>/servlets-examples/*</Arg>
    <Arg><SystemProperty name="jetty.home" default="."/>/demo/webapps/servlets-examples.war</Arg>
    <Set name="extractWAR">false</Set>
    <Call name="getServletHandler">
      <Call name="getSessionManager">
        <Call name="setUseRequestedId">
          <Arg type="boolean">true</Arg>
        </Call>
      </Call>
    </Call>
  </Call>
0 请登录后投票
   发表时间:2005-03-15  
还是继续说pico吧。

看了pico的ImplementationHidingComponentAdapter(看来好像这个功能还没有正式发布?下载下来的版本里没有,javadoc里也没有)。
实现就不说了。还是说它的接口定义。


它通过downcast 成Swappable接口来提供所谓“hot swapping”。(就是说,可以在对组件透明的情况下,动态篡改一个组件的实现)

这个设计个人觉得比较不优雅。

首先,Swappable必然是个public interface。既然如此,就很难100%假设客户代码不会实现这个接口。

假设我的组件自己实现了Swappable接口。

当我调用

((Swappable);instance);.hotswap(abc);;


的时候,我调用的是我自己实现的那个hotswap还是pico提供的hot swap?

怎么能容忍这种二义性呢?

当然,你可以争辩说:可以让客户组件不要实现这个接口嘛。
可以,只不过感觉太那个了,所以我要说“不优雅”。


在我自己实现的容器中,我是通过系统提供的一个静态函数来实现hot swap的。

Components.setProxyImplementation(instance, abc);;



同样得到了透明于组件的hot-swapping,但是没有引入一个额外的接口,也没有二义性。



下一个问题: life-cycle。

一般来说,到底什么样的lifecycle是组件所需要的?
pico这样每start, stop一次都要调用ComponentAdapter.getComponentInstance()是否合适?


如果谁用过pico,能不能给讲解一下你需要什么样的life-cycle或者你怎么用pico的life-cycle的?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics