用java自己动手写个简单RCP框架

工具下载地址https://download.csdn.net/download/qq_31408331/11022369   

首先引入EasyRPC包(服务提供方使用EasyRPCServer1.0.jar,服务调用方使用EasyRPCClient1.0.jar)
    然后引入依赖的三个工具包
        guava.jar
        guava-util.jar
        javassist.jar

    然后你就可欢快的使用EasyRPC了

    如何配置一个注册中心?
        1.作为简单服务使用
            第一步,你需要为EasyRPC准备一个配置启动类,该启动类需要继承 LXSRPCAbstractContext,
            第二步,使用@LXSRPCScan 标识 RPC注册中心需要扫描作为远程服务接口的包
            第三步,调用 load方法启动注册中心
            example
                @LXSRPCScan("org.lxs.rpc.test")
                public class LXSJavaBeanConfig extends LXSRPCAbstractContext{
                    public static void main(String[] args) {
                        LXSJavaBeanConfig config = new LXSJavaBeanConfig();
                        config.load();
                    }
                }
        2.Spring项目中使用
            example
                @Component
                @LXSRPCScan("com.casic.cloud.analysis.service")
                public class RPCServerConfig extends LXSRPCAbstractContext{

                }
    如何定义自己的远程服务
        1.定义通信实体
            public class Order implements Serializable{
                private static final long serialVersionUID = -4150317909261201120L;
            }
        2.定义接口
            example
                public interface OrderService {
                    /**
                     * 根据主键获取订单名称
                     * @param cguid
                     * @return
                     */
                    public String getOrderName(String cguid);
                    
                    /**
                     * 根据主键获取订单的详细信息
                     * @param cguid
                     * @return
                     */
                    public Order getOrderInfo(String cguid);
                }
        3.接口实现
            example
                @LXSService
                public class OrderServiceImpl implements OrderService{

                    @Override
                    public String getOrderName(String cguid) {
                        System.out.println("打开数据库连接");
                        System.out.println("查询数据 "+cguid);
                        System.out.println("关闭数据库连接");
                        
                        return "查询结果:"+cguid+"~";
                    }

                    @Override
                    public Order getOrderInfo(String cguid) {
                        System.out.println("打开数据库连接");
                        System.out.println("查询数据 "+cguid);
                        System.out.println("关闭数据库连接");
                        Order order = new Order();
                        order.setCguid(cguid);
                        order.setCount(265);
                        order.setOrderName("西门子订单");
                        order.setDutyOfficer("张三");
                        return order;
                    }
                }

    如何调用远程的服务
        1.使用Maven下载服务提供方的jar包(或者直接自己打jar包)
        2.自定义配置类
            example
                @LXSRPCTarget(host = "localhost",port="18000")//服务注册中心默认端口为18000
                public class RPCConfig extends LXSRPCAbstractClientConfig{
                    //无需任何实现
                }
        3.接口调用
            example
                OrderService service
                        = LXSRPCClient.newInstance(OrderService.class);
                String orderName = service.getOrderName("1234");

    注册中心状态介绍
        DOWN:默认状态
        SECURE:保护状态,EasyRpc在启动之后到对外提供服务之前处于该状态,该阶段会进行服务注册,检查
        RUNNING:注册中心已经完全启动完毕,可以对外提供服务
        DESTORY:强制调用注册中心关闭方法,将处于该状态,主要是资源销毁
            

        
       

你可能感兴趣的:(java)