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