dubbo 开发 provider

dubbo 开发provider
// Tomcat 启动 : E:\apache-tomcat-8.0.53-windows-x64\apache-tomcat-8.0.53\bin  下的 : startup   。(自己安装的位置,)
//  D:\repository\cn\kgc1803\smbm-common\1.0-SNAPSHOT\smbm-common-1.0-SNAPSHOT.jar,(这个是在Idea,创建dubbo工程的公共包测试成功后的 jar 位置 ,)


1. (IDEA) 新建一个 module smbms-user-provider
步骤: 在Project 下,右击工程名,选择 Module,  选择Maven ,点击 Next 。

2. 增加jar 包依赖 、
    1.) mybatis   jar
    2.) spring-*  jar
    3.) mysql 驱动包
    4.)    mybatis-spring   jar
-----------一下是bubbo --------------
  5.) zookeeper jar 包  ——》 和注册中心通讯的基础包
    6.) zkclicent  jar 包  ——》 和注册中心通讯的客户端包
    7.) dubbo jar包  ——》 发布服务与订阅服务的包
    8.) smbms-common 公共包    ——》 公共的实体类与 service 接口
    9.) hession  jar包  ——》 提供中通信协议(HTTP, dubbo 等协议)
<dependency>
            <groupId>cn.kgc.1803</groupId>
            <artifactId>smbms-common</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.8</version>
        </dependency>

        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.6</version>
        </dependency>

        <dependency>
            <groupId>repository.com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.8.4</version>
        </dependency>
        <!--通信包-->
        <dependency>
            <groupId>com.caucho</groupId>
            <artifactId>hessian</artifactId>
            <version>4.0.7</version>
        </dependency>
3. 编写 dao
    1.)  

4. 配置 service
    dubbox rest 风格访问
//@Produces 设置输出结果集的  数据类型
@Path("order")
@Produces(ContentType.APPLICATION_JSON_UTF_8)
public class OrderServiceImpl implements OrderService {
    //@Path 是访问路径
    // @GET 是请求方式
    @Path("/orderlist.html")
    @GET
    public List <Order> findList () {
 
5. 配置 dubbox 发布服务 (spring)
    新建spring 配置文件 dubbo_user_provider.xml
    1 注入service 到spring 中
    <!--service 注入-->
<bean id="userService" class="cn.kgc1803.smbms_common.service.UserServiceImpl" />
    2.在配置文件中增加命名空间 dubbo     xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
    3. 利用 dubbox 命名空间配置应用名称
          <!--设置提供者本次发布服务的应用名称-->
    <dubbo:application name="user_provider_app" owner="kgc" organization="kgc1803"/>
    4. 配置注册中心地址
    <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
    <!-- rest 协议-->
<dubbo:protocol name="rest" port="20888" />
5. 发布服务
    <!--发布服务-->
<dubbo:service protocol="dubbo" interface="cn.kgc1803.smbms_common.service.UserService" ref="userService" />
注: 发布服务时里的 ref 要与 service 注入的bean  id 一样;

    —————————————————————————————dubbox 的jar依赖————————————————————————————————————————
    HTTP只能接收string,引入JSON包
    6, JSON 插件包
            <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.12</version>
        </dependency>
        该插件的作用是在实体类上增加@JsonProperty注解标签的属性会自动转化为json对象属性。
    7. rest 风格访问dubbo (dubbox)
                <dependency>
            <groupId>repository.com.alibaba</groupId>
            <artifactId>dubbo-rpc-rest</artifactId>
            <version>2.8.4</version>
        </dependency>
        

8.配置spring
9. 启动测试
// test 测试:
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestProvider {
    public static void main(String[] args){

        ApplicationContext ctx =
                new ClassPathXmlApplicationContext("dubbo_user_provider.xml");
        try {
            Thread.sleep(10*60*1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }
}

浏览器输入:
dubbox测试:http://127.0.0.1:20888/order/orderlist.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值