5just自用框架---服务器端的编写

5just自用框架---服务器端的编写

 

架构使用

 

服务器端

服务器端要提供远程业务逻辑接口给各个客户端使用.这个接口要建在logic包下

这里说的接口不是java中的interface,它是一个方法必须返回一个规定好的类类型.

 

第一步 :

在你的EJB项目下META-INF目录(该目录下存放启动配置文件的),创建dbconfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<config>

<!--配置数据源的集合-->
<data-sources>
<data-source id="linuxsir">
<jndi-data-source>
java:/MySqlDS
</jndi-data-source>
</data-source>
</data-sources>

 

<!--默认使用这个数据源-->
<use-data-soruce>linuxsir</use-data-soruce>

<remote_load package="{classpath}/org/src/load/loadconfig.xml">远程代理类配置文件</remote_load>

<filepath path="${classpath}/META-INF/cache_config.xml">存放加载配置文件</filepath>
</config>

 

第二步:创建DAO

创建数据库和表,创建个包名称如com.just.dao,

在此包下创建类CityDAO.

CityDAO提供构造方法传入Connection

然后提供个查询的方法返回List,里面装入Form类型


第三步:创建远程接口

创建logicRemote接口com.just.logic.TestRemote里面提供个方法返回Object方法
这个很重要请看代码:

public class Test {

   //接收Connection
   private Connection con;
   public Test(Connection con) {
      this.con = con;
   }

   //调用DAO方法,并接收结果
   public Object queryALL(int id){
      List list=null;
      try {
         list = dao.queryList();
      } catch (SQLException e1) {
           e1.printStackTrace();
           return e1.getMessage();//有错误直接返回就可以了
      }

    //放入迭代类(5just自定义的)
   BeanToXMLEnumeration be = new BeanToXMLEnumeration();
   try {
      be.addBean(list, Address.class, null, null);
      return be.invoke();
   } catch (Exception e) {
      e.printStackTrace();return e.getMessage()

   }

}

 

第四步:创建代理类

找到dbconfig.xml里

<remote_loadpackage="{classpath}/org/src/load/loadconfig.xml"> 远程代理类配置文件</remote_load>

查看loadconfig.xml,内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<hosts>
   <host name="core">
      <package>org.src.load.core</package>
   </host>
   <host name="home">
      <package>org.src.load.core.home</package>
      <amend></amend>
   </host>
</hosts>

hosts是主机集合,子节点host是一个主机,name为远程代理的代号

看package节点中的值,这就是代理包的path找到这个包然后建立个类

例如我们创建

org.src.load.core.home包,在此包中创建类Chui

private Object object;
   public Object getObject() {
      return object;
   }
   public void setObject(Object object) {
      this.object = object;
   }
   public Chui(HttpServletRequest request){
      int id =Integer.parseInt((String)request.getAttribute("id"));
   Transaction tr=null;  //事务类
   try {
      tr = new Transaction();
   } catch (NamingException e1) {
      e1.printStackTrace();
   }
   tr.setCache(Integer.parseInt(""+ToolEL.getBeanValue(

      ConfigFactory.newInstance("home"),"config[home].[homecore].[cachetype]")

   ));
   tr.setclassname("com.just.logic.Test"); //调用服务器端的Test类
   tr.setMethodName("queryALL");           //调用Test类的queryALL方法
   tr.addParam(int.class,id);                   //给queryALL方法赋参数

   tr.setTime(Long.parseLong(""+ToolEL.getBeanValue(Config
   Factory.newInstance("home"),"config[home].[homecore].[time]")));
   tr.setUsedatasource(true);

   XmlObject xo = tr.executeResult();       //执行queryALL方法并接收返回的XmlObject类型
   try {
      System.out.println(xo.asXML());       //打印数据库中的结构
   } catch (IOException e1) {
      e1.printStackTrace();
   }
   ProxyBean xt = new ProxyBean(this,xo); //调用代理类,放入本身的类对象和
queryALL方法返回的 XmlObject
   try {
      this.object = xt.getBeans();  //把类的属性赋值成代理对象服务器端
   } catch (Exception e) {
      e.printStackTrace();
   }

}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值