Design a simple service-oriented J2EE application framework 读书笔记

英语很差,花了N小时,查了N次金山词霸才勉强读完!
Design a simple service-oriented J2EE application framework读书笔记:

One:
  • The service broker layer will be added between the Web tier and the business tier.

  • Conceptually, an Action calls a business service request only, which passes the request to a service router. The service router knows how to hook up business service requests to different service provider controllers or adapters by looking up a service mapping XML file, X18p-config.xml.

  • The service provider controller has specific knowledge of finding and invoking the underlying business services. Here, business services could be anything from POJO, LDAP (lightweight directory access protocol), EJB, JMX, COM, and Web services to COTS (commercial off the shelf) product APIs. X18p-config.xml should supply sufficient data to help the service provider controller get the job done.

  • Leverage Spring for X18p's internal object lookup and references.

  • Build service provider controllers incrementally. As you will see, the more service provider controllers implemented, the more integration power X18p has.

  • Protect existing knowledge such as Struts, but keep eyes open for new things coming up

        在web tier 和 business tier之间增加service broker,让它路由请求到不同的服务控制器(service controller)。Business Manager的接口不会暴露给Action,Action只需要把Input传给指定的Service Provider,然后就等着接收Output。
    对于Business Manager的内部细节全然不知:
        ...
          ServiceRequest bsr = this.getApplicationContext().getBean("businessServiceRequest");  
          
          bsr.setServiceName("User Services");
          bsr.setOperation("addUser");
          bsr.addRequestInput("param1", "addUser");

          String userIDRetured = (String) bsr.service();
          ...

    Two:
       每个DAO都有CRUD操作,每个操作都遵循同样的步骤:First, a connection object is created. Then, input parameters are passed in to execute an operation. Lastly, the raw return data is processed and a more generic domain object or Java collection object returns to the caller. 这些步骤所对应的代码有很多都是重复的。这样的编程经历肯定是枯燥,乏味的,这篇文章的出现给我们带来了曙光。接口不变,方法的实现采取了巧妙的方式:
            ... 
            JdbcSQLProcessor p = JdbcProcessor.getSqlProcessor();
            List inputList = new ArrayList();
            inputList.add(userName);
            try {
                 p.executeUpdate("select_user", inputList);
            }
            catch (Throwable e) {
                e.printStackTrace();
            }
            ...

           JdbcSQLProcessor:executeUpdate :
           .....
           //Get a connection
          Connection conn = getConnection();
          doUpdate(sql, pStmtValues, processor, conn);
           //Need to replace it with sophisticated service from DB package
          closeConnection(conn);
          return;
          .....

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值