DSF框架使用(DAO、序列化、注解、服务接口、服务代理)

1、首先说一下什么是DSF
DSF(到家服务框架):提供服务接口供客户端调用,实现服务端服务共享、避免服务的不一致及二次开发;(个人理解:类似于对外提供的API接口—只是这里是提供的服务的接口)

2、框架:
客户端程序、服务端程序、DSF容器:它们之间的连接通过RPC远程调用(基于TCP)

3、各模块实现
服务端程序:
(1)数据实体类(添加注解@Table(name=“表名”)):
与数据库相关——–表与数据实体类的成员之间的映射通过注解实现,存于entity包;成员变量(主键对应的变量:添加注解@Id(insertable = true)——表示主键,可设置属性可插入、可更新等;其他数据库中的变量@Column(name = “id”),对于不属于数据库表中的变量通过添加@NotDBColumn进行标注),各变量对应set、get方法,基本使用默认构造参数,有需要的话重写toString方法;这里还要注意(不像MyBatis,sql写在xml中)
与 序列化、反序列化相关——-针对Java数据实体类,要实现serialize接口():要序列化的Java实体数据类添加@DSFSerializable(name =Java实体数据类 )标注;实体数据类成员添加@DSFMember(sortId=1)标注,并指定sortId值(不重复、1-127之间)
(2)数据访问层(DAO):
定义数据操作接口(增、删、改、查);
定义数据操作接口的实现类(因为考虑到多个服务可能要同时访问、操作一个数据库,所以这里的实现通过单例模式实现–定义静态DAOOperator变量,通过静态方法获取变量,如果变量未进行初始化,则根据数据库连接配置文件db.config中的字段,初始化远端数据库连接:
public static DAOOperator getDAOOperator() throws Exception{
if(daoOperator == null){
String dbConfig = Config.getConfigFolder()+”/db.config”;
System.out.println(dbConfig);
daoOperator = new DAOOperator(dbConfig);
}
return daoOperator;
}
数据库配置文件db.config中包含:
- connectionURL : jdbc:mysql://IP:端口号/数据库?connectTimeout=1000&useUnicode=true&characterEncoding=utf-8&autoReconnect=true
driversClass : com.mysql.jdbc.Driver
username :用户名
password : 密码
minPoolSize : 1
maxPoolSize : 50
idleTimeout : 30
queryTimeout : 50
insertUpdateTimeout : 10
autoShrink : true
//其他配置信息视情况而定
(3)服务实现类:添加@DSFServiceBehavior(lookUP = “HouseRentService”)注解,服务代理(客户端)通过该标注中设定的lookUP值进行实际服务实现类的查找(因为可能同一个服务接口对应不同的服务实现类,同一接口的不同实现类通过lookUP值进行查找区分),服务的是实现(要确保DAO层静态DAOOperator变量被初始化了);
服务接口类:添加注解@DSFServiceContract;服务接口类中方法添加注解@DSFOperationContract
DSF容器服务端包含配置文件:dsf_config.xml、log4_config.xml

客户端程序(服务代理):
调用DSFInit进行初始化:
使用图片服务(DFSClient(Distribution File System))和DSF(Daojia Service Framework)时,特别要注意初始化方法,分别是:DFSInit.init(String filePath) 和 DSFInit.init(String config);
使用DSF服务代理工厂根据服务接口参数实例化服务接口变量;
调用服务接口提供的方法实现功能;
DSF容器客户端包含配置文件:dsf.config

服务是要部署在DSF容器中:/dsf/service/deploy、服务端分别导出entity、contract、componentjar包下的jar包,然后放入服务命名的文件夹(里面除了服务端导出的jar包,还包括服务端配置文件dsf_config.xml、dsf_log4.xml、lib文件夹—maven下载的所有的依赖jar包、conf文件夹–数据库等配置文件)
客户端的pom.xml文件要引入服务端对应导出的jar包,它的外层目录lib文件夹里面放的的共用底层的jar包;

注意:socket、http、telnet配置服务部署的IP、端口号要一样,还有在服务代理的服务URL中,我们要使用url = “tcp://服务名/服务实现类”;这里命名要对应起来。

你可能感兴趣的:(工作,学习)