创建公共接口或者project用到的一些bean。我这里就仅仅是创建了一个接口。project文件夹例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

DemoService接口的代码例如以下:

  1. <span style="font-size:14px;">package com.sw.www;
  2.  
  3. public interface DemoService {
  4. public void sayHello();
  5. }
  6. </span>

将上面的接口project打包为一个jar给服务提供方和消费方公用。创建服务提供方project,project文件夹例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

当中DemoServiceImpl实现了公共接口。

而后期服务消费方不须要关心它是怎样实现的。其代码例如以下:

  1. <span style="font-size:14px;">package com.sw.www.impl;
  2.  
  3. import com.sw.www.DemoService;
  4.  
  5. public class DemoServiceImpl implements DemoService{
  6. @Override
  7. public void sayHello() {
  8. System.out.println("hello dubbo!");
  9. }
  10. }
  11. </span>

applicationProvider.xml 配置例如以下:

  1. <span style="font-size:14px;"><?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://code.alibabatech.com/schema/dubbo
  8. http://code.alibabatech.com/schema/dubbo/dubbo.xsd
  9. ">
  10. <dubbo:application name="hello-world-app" />
  11. <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" />
  12. <dubbo:protocol name="dubbo" port="20880" />
  13. <bean id="demoService" class="com.sw.www.impl.DemoServiceImpl" />
  14. <!-- 和本地bean一样实现服务 -->
  15. <dubbo:service interface="com.sw.www.DemoService" ref="demoService" />
  16. </beans>
  17. </span>

pom.xml 配置例如以下:

  1. <span style="font-size:14px;"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.sw.www</groupId>
  5. <artifactId>dubbo_provider</artifactId>
  6. <packaging>jar</packaging>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <name>role_access_control</name>
  9. <url>http://maven.apache.org</url>
  10.  
  11. <!-- 各类依赖jar的版本号声明 -->
  12. <properties>
  13. <junit.version>4.8.2</junit.version>
  14. <spring.version>3.2.2.RELEASE</spring.version>
  15. <javax-activation.version>1.1</javax-activation.version>
  16. <mysql-connector-java.version>5.1.34</mysql-connector-java.version>
  17. <shiro.version>1.2.3</shiro.version>
  18. </properties>
  19. <dependencies>
  20. <!-- junit -->
  21. <dependency>
  22. <groupId>junit</groupId>
  23. <artifactId>junit</artifactId>
  24. <version>${junit.version}</version>
  25. <type>jar</type>
  26. </dependency>
  27. <!-- spring start -->
  28. <dependency>
  29. <groupId>org.springframework</groupId>
  30. <artifactId>spring-aop</artifactId>
  31. <version>${spring.version}</version>
  32. </dependency>
  33. <dependency>
  34. <groupId>org.springframework</groupId>
  35. <artifactId>spring-aspects</artifactId>
  36. <version>${spring.version}</version>
  37. </dependency>
  38. <dependency>
  39. <groupId>org.springframework</groupId>
  40. <artifactId>spring-beans</artifactId>
  41. <version>${spring.version}</version>
  42. </dependency>
  43. <dependency>
  44. <groupId>org.springframework</groupId>
  45. <artifactId>spring-context</artifactId>
  46. <version>${spring.version}</version>
  47. </dependency>
  48. <dependency>
  49. <groupId>org.springframework</groupId>
  50. <artifactId>spring-context-support</artifactId>
  51. <version>${spring.version}</version>
  52. </dependency>
  53. <dependency>
  54. <groupId>org.springframework</groupId>
  55. <artifactId>spring-core</artifactId>
  56. <version>${spring.version}</version>
  57. </dependency>
  58. <dependency>
  59. <groupId>org.springframework</groupId>
  60. <artifactId>spring-dao</artifactId>
  61. <version>2.0.8</version>
  62. </dependency>
  63. <dependency>
  64. <groupId>org.springframework</groupId>
  65. <artifactId>spring-expression</artifactId>
  66. <version>${spring.version}</version>
  67. </dependency>
  68. <dependency>
  69. <groupId>org.springframework</groupId>
  70. <artifactId>spring-jdbc</artifactId>
  71. <version>${spring.version}</version>
  72. </dependency>
  73. <dependency>
  74. <groupId>org.springframework</groupId>
  75. <artifactId>spring-mock</artifactId>
  76. <version>2.0.8</version>
  77. </dependency>
  78. <dependency>
  79. <groupId>org.springframework</groupId>
  80. <artifactId>spring-orm</artifactId>
  81. <version>${spring.version}</version>
  82. </dependency>
  83. <dependency>
  84. <groupId>org.springframework</groupId>
  85. <artifactId>spring-test</artifactId>
  86. <version>${spring.version}</version>
  87. </dependency>
  88. <dependency>
  89. <groupId>org.springframework</groupId>
  90. <artifactId>spring-tx</artifactId>
  91. <version>${spring.version}</version>
  92. </dependency>
  93. <dependency>
  94. <groupId>org.springframework</groupId>
  95. <artifactId>spring-web</artifactId>
  96. <version>${spring.version}</version>
  97. </dependency>
  98. <dependency>
  99. <groupId>org.springframework</groupId>
  100. <artifactId>spring-webmvc</artifactId>
  101. <version>${spring.version}</version>
  102. </dependency>
  103. <!-- spring end -->
  104.  
  105. <!-- mysql -->
  106. <dependency>
  107. <groupId>mysql</groupId>
  108. <artifactId>mysql-connector-java</artifactId>
  109. <version>${mysql-connector-java.version}</version>
  110. </dependency>
  111.  
  112. <!-- shiro -->
  113. <dependency>
  114. <groupId>org.apache.shiro</groupId>
  115. <artifactId>shiro-core</artifactId>
  116. <version>${shiro.version}</version>
  117. </dependency>
  118. <dependency>
  119. <groupId>org.apache.shiro</groupId>
  120. <artifactId>shiro-web</artifactId>
  121. <version>${shiro.version}</version>
  122. </dependency>
  123. <dependency>
  124. <groupId>org.apache.shiro</groupId>
  125. <artifactId>shiro-spring</artifactId>
  126. <version>${shiro.version}</version>
  127. </dependency>
  128. <dependency>
  129. <groupId>org.apache.shiro</groupId>
  130. <artifactId>shiro-ehcache</artifactId>
  131. <version>${shiro.version}</version>
  132. </dependency>
  133. <dependency>
  134. <groupId>org.apache.shiro</groupId>
  135. <artifactId>shiro-quartz</artifactId>
  136. <version>${shiro.version}</version>
  137. </dependency>
  138.  
  139. <!-- servlet -->
  140. <dependency>
  141. <groupId>javax.servlet</groupId>
  142. <artifactId>servlet-api</artifactId>
  143. <version>2.5</version>
  144. </dependency>
  145. <dependency>
  146. <groupId>aopalliance</groupId>
  147. <artifactId>aopalliance</artifactId>
  148. <version>1.0</version>
  149. </dependency>
  150. <dependency>
  151. <groupId>org.apache.james</groupId>
  152. <artifactId>apache-mime4j</artifactId>
  153. <version>0.6.1</version>
  154. </dependency>
  155. <dependency>
  156. <groupId>asm</groupId>
  157. <artifactId>asm</artifactId>
  158. <version>3.3.1</version>
  159. </dependency>
  160. <dependency>
  161. <groupId>org.apache.axis</groupId>
  162. <artifactId>axis</artifactId>
  163. <version>1.4</version>
  164. </dependency>
  165. <dependency>
  166. <groupId>cglib</groupId>
  167. <artifactId>cglib-nodep</artifactId>
  168. <version>3.1</version>
  169. </dependency>
  170.  
  171. <!-- commons -->
  172. <dependency>
  173. <groupId>commons-beanutils</groupId>
  174. <artifactId>commons-beanutils</artifactId>
  175. <version>1.9.2</version>
  176. </dependency>
  177. <dependency>
  178. <groupId>commons-codec</groupId>
  179. <artifactId>commons-codec</artifactId>
  180. <version>1.10</version>
  181. </dependency>
  182. <dependency>
  183. <groupId>commons-collections</groupId>
  184. <artifactId>commons-collections</artifactId>
  185. <version>3.2.1</version>
  186. </dependency>
  187. <dependency>
  188. <groupId>commons-discovery</groupId>
  189. <artifactId>commons-discovery</artifactId>
  190. <version>0.5</version>
  191. </dependency>
  192. <dependency>
  193. <groupId>commons-fileupload</groupId>
  194. <artifactId>commons-fileupload</artifactId>
  195. <version>1.3.1</version>
  196. </dependency>
  197. <dependency>
  198. <groupId>commons-httpclient</groupId>
  199. <artifactId>commons-httpclient</artifactId>
  200. <version>3.1</version>
  201. </dependency>
  202. <dependency>
  203. <groupId>commons-io</groupId>
  204. <artifactId>commons-io</artifactId>
  205. <version>2.4</version>
  206. </dependency>
  207. <dependency>
  208. <groupId>commons-lang</groupId>
  209. <artifactId>commons-lang</artifactId>
  210. <version>2.6</version>
  211. </dependency>
  212. <dependency>
  213. <groupId>commons-logging</groupId>
  214. <artifactId>commons-logging</artifactId>
  215. <version>1.2</version>
  216. </dependency>
  217. <dependency>
  218. <groupId>dom4j</groupId>
  219. <artifactId>dom4j</artifactId>
  220. <version>1.6.1</version>
  221. </dependency>
  222.  
  223. <dependency>
  224. <groupId>com.alibaba</groupId>
  225. <artifactId>druid</artifactId>
  226. <version>1.0.9</version>
  227. </dependency>
  228. <dependency>
  229. <groupId>net.sf.ehcache</groupId>
  230. <artifactId>ehcache-core</artifactId>
  231. <version>2.6.9</version>
  232. </dependency>
  233. <dependency>
  234. <groupId>net.sf.ezmorph</groupId>
  235. <artifactId>ezmorph</artifactId>
  236. <version>1.0.6</version>
  237. </dependency>
  238. <dependency>
  239. <groupId>org.freemarker</groupId>
  240. <artifactId>freemarker</artifactId>
  241. <version>2.3.21</version>
  242. </dependency>
  243. <dependency>
  244. <groupId>com.google.code.gson</groupId>
  245. <artifactId>gson</artifactId>
  246. <version>2.3.1</version>
  247. </dependency>
  248. <dependency>
  249. <groupId>org.apache.httpcomponents</groupId>
  250. <artifactId>httpcore</artifactId>
  251. <version>4.4</version>
  252. </dependency>
  253. <dependency>
  254. <groupId>org.apache.httpcomponents</groupId>
  255. <artifactId>httpmime</artifactId>
  256. <version>4.3.6</version>
  257. </dependency>
  258. <dependency>
  259. <groupId>com.fasterxml.jackson.core</groupId>
  260. <artifactId>jackson-core</artifactId>
  261. <version>2.4.4</version>
  262. </dependency>
  263. <dependency>
  264. <groupId>com.alibaba</groupId>
  265. <artifactId>fastjson</artifactId>
  266. <version>1.1.36</version>
  267. </dependency>
  268. <dependency>
  269. <groupId>javax.xml</groupId>
  270. <artifactId>jaxrpc</artifactId>
  271. <version>1.1</version>
  272. </dependency>
  273. <dependency>
  274. <groupId>jstl</groupId>
  275. <artifactId>jstl</artifactId>
  276. <version>1.2</version>
  277. </dependency>
  278. <dependency>
  279. <groupId>log4j</groupId>
  280. <artifactId>log4j</artifactId>
  281. <version>1.2.17</version>
  282. </dependency>
  283. <dependency>
  284. <groupId>org.mybatis</groupId>
  285. <artifactId>mybatis</artifactId>
  286. <version>3.2.1</version>
  287. </dependency>
  288. <dependency>
  289. <groupId>org.mybatis</groupId>
  290. <artifactId>mybatis-spring</artifactId>
  291. <version>1.2.0</version>
  292. </dependency>
  293. <dependency>
  294. <groupId>org.slf4j</groupId>
  295. <artifactId>slf4j-api</artifactId>
  296. <version>1.7.9</version>
  297. </dependency>
  298. <dependency>
  299. <groupId>org.slf4j</groupId>
  300. <artifactId>slf4j-log4j12</artifactId>
  301. <version>1.7.9</version>
  302. </dependency>
  303. <dependency>
  304. <groupId>taglibs</groupId>
  305. <artifactId>standard</artifactId>
  306. <version>1.1.2</version>
  307. </dependency>
  308. <dependency>
  309. <groupId>wsdl4j</groupId>
  310. <artifactId>wsdl4j</artifactId>
  311. <version>1.6.3</version>
  312. </dependency>
  313. <dependency>
  314. <groupId>org.freemarker</groupId>
  315. <artifactId>freemarker</artifactId>
  316. <version>2.3.21</version>
  317. </dependency>
  318. <!-- 兴许 -->
  319.  
  320. <!-- dubbo依赖jar -->
  321. <dependency>
  322. <groupId>com.alibaba</groupId>
  323. <artifactId>dubbo</artifactId>
  324. <version>2.4.9</version>
  325. <exclusions>
  326. <exclusion>
  327. <artifactId>spring</artifactId>
  328. <groupId>org.springframework</groupId>
  329. </exclusion>
  330. </exclusions>
  331. </dependency>
  332.  
  333. <dependency>
  334. <groupId>org.apache.zookeeper</groupId>
  335. <artifactId>zookeeper</artifactId>
  336. <version>3.4.5</version>
  337. <exclusions>
  338. <exclusion>
  339. <groupId>log4j</groupId>
  340. <artifactId>log4j</artifactId>
  341. </exclusion>
  342. </exclusions>
  343. </dependency>
  344.  
  345. <dependency>
  346. <groupId>com.github.sgroschupf</groupId>
  347. <artifactId>zkclient</artifactId>
  348. <version>0.1</version>
  349. </dependency>
  350.  
  351. </dependencies>
  352. <build>
  353. <plugins>
  354. <plugin>
  355. <artifactId>maven-compiler-plugin</artifactId>
  356. <configuration>
  357. <source>1.7</source>
  358. <target>1.7</target>
  359. <encoding>utf8</encoding>
  360. </configuration>
  361. </plugin>
  362. <plugin>
  363. <artifactId>maven-surefire-plugin</artifactId>
  364. <configuration>
  365. <includes>
  366. <include>**/*Tests.java</include>
  367. </includes>
  368. </configuration>
  369. </plugin>
  370. </plugins>
  371. <defaultGoal>compile</defaultGoal>
  372. <finalName>dubbo_provider</finalName>
  373. </build>
  374. </project>
  375. </span>

编写服务提供方启动的測试类TestProvider,代码例如以下:

  1. <span style="font-size:14px;">package com.sw.www;
  2.  
  3. import org.springframework.context.ApplicationContext;
  4. import org.springframework.context.support.ClassPathXmlApplicationContext;
  5.  
  6. public class TestProvider {
  7. public static void main(String[] args) {
  8. try {
  9. // 初始化Spring
  10. ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationProvider.xml");
  11. System.out.println("dubbo provider is running...");
  12. System.in.read();
  13. } catch (Exception ex) {
  14. ex.printStackTrace();
  15. }
  16. }
  17. }</span>

注意:由于我之前的project是基于spring+springmvc+mybatis+shiro搭建的一个角色权限管理框架,所以一些相关的jar能够去掉(当然你不去掉也是没有问题的)。这里特别指出,后面的服务消费方的project中的pom.xml和这个一样。

记得导入公共接口的jar包。

创建服务消费方project,project文件夹例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

消费方调用測试类TestDemo,代码例如以下:

  1. <span style="font-size:14px;">package com.sw.www;
  2.  
  3. import java.io.IOException;
  4.  
  5. import org.springframework.context.ApplicationContext;
  6. import org.springframework.context.support.ClassPathXmlApplicationContext;
  7.  
  8. public class TestDemo {
  9.  
  10. public static void main(String[] args) {
  11.  
  12. try {
  13. // 初始化Spring
  14. ApplicationContext ctx = new ClassPathXmlApplicationContext(
  15. "applicationConsumer.xml");
  16. DemoService demoService = (DemoService) ctx
  17. .getBean("demoService"); // 获取远程服务代理
  18. demoService.sayHello(); // 运行远程方法
  19. System.in.read();
  20. } catch (IOException e) {
  21. e.printStackTrace();
  22. }
  23. }
  24. }</span>

applicationConsumer.xml 配置文件例如以下:

  1. <span style="font-size:14px;"><?xml version="1.0" encoding="UTF-8"?
  2.  
  3. >
  4. <beans xmlns="http://www.springframework.org/schema/beans"
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6. xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans.xsd
  9. http://code.alibabatech.com/schema/dubbo
  10. http://code.alibabatech.com/schema/dubbo/dubbo.xsd
  11. ">
  12. <!-- 消费方应用名。用于计算依赖关系,不是匹配条件。不要与提供方一样 -->
  13. <dubbo:application name="consumer-of-helloworld-app" />
  14. <!-- 使用multicast广播注冊中心暴露发现服务地址 -->
  15. <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"/>
  16. <!-- 生成远程服务代理,能够和本地bean一样使用demoService -->
  17. <dubbo:reference id="demoService" interface="com.sw.www.DemoService" />
  18. </beans> </span>

pom.xml 配置例如以下:

  1. <span style="font-size:14px;"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.sw.www</groupId>
  5. <artifactId>dubbo_consumer</artifactId>
  6. <packaging>jar</packaging>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <name>role_access_control</name>
  9. <url>http://maven.apache.org</url>
  10.  
  11. <!-- 各类依赖jar的版本号声明 -->
  12. <properties>
  13. <junit.version>4.8.2</junit.version>
  14. <spring.version>3.2.2.RELEASE</spring.version>
  15. <javax-activation.version>1.1</javax-activation.version>
  16. <mysql-connector-java.version>5.1.34</mysql-connector-java.version>
  17. <shiro.version>1.2.3</shiro.version>
  18. </properties>
  19. <dependencies>
  20. <!-- junit -->
  21. <dependency>
  22. <groupId>junit</groupId>
  23. <artifactId>junit</artifactId>
  24. <version>${junit.version}</version>
  25. <type>jar</type>
  26. </dependency>
  27. <!-- spring start -->
  28. <dependency>
  29. <groupId>org.springframework</groupId>
  30. <artifactId>spring-aop</artifactId>
  31. <version>${spring.version}</version>
  32. </dependency>
  33. <dependency>
  34. <groupId>org.springframework</groupId>
  35. <artifactId>spring-aspects</artifactId>
  36. <version>${spring.version}</version>
  37. </dependency>
  38. <dependency>
  39. <groupId>org.springframework</groupId>
  40. <artifactId>spring-beans</artifactId>
  41. <version>${spring.version}</version>
  42. </dependency>
  43. <dependency>
  44. <groupId>org.springframework</groupId>
  45. <artifactId>spring-context</artifactId>
  46. <version>${spring.version}</version>
  47. </dependency>
  48. <dependency>
  49. <groupId>org.springframework</groupId>
  50. <artifactId>spring-context-support</artifactId>
  51. <version>${spring.version}</version>
  52. </dependency>
  53. <dependency>
  54. <groupId>org.springframework</groupId>
  55. <artifactId>spring-core</artifactId>
  56. <version>${spring.version}</version>
  57. </dependency>
  58. <dependency>
  59. <groupId>org.springframework</groupId>
  60. <artifactId>spring-dao</artifactId>
  61. <version>2.0.8</version>
  62. </dependency>
  63. <dependency>
  64. <groupId>org.springframework</groupId>
  65. <artifactId>spring-expression</artifactId>
  66. <version>${spring.version}</version>
  67. </dependency>
  68. <dependency>
  69. <groupId>org.springframework</groupId>
  70. <artifactId>spring-jdbc</artifactId>
  71. <version>${spring.version}</version>
  72. </dependency>
  73. <dependency>
  74. <groupId>org.springframework</groupId>
  75. <artifactId>spring-mock</artifactId>
  76. <version>2.0.8</version>
  77. </dependency>
  78. <dependency>
  79. <groupId>org.springframework</groupId>
  80. <artifactId>spring-orm</artifactId>
  81. <version>${spring.version}</version>
  82. </dependency>
  83. <dependency>
  84. <groupId>org.springframework</groupId>
  85. <artifactId>spring-test</artifactId>
  86. <version>${spring.version}</version>
  87. </dependency>
  88. <dependency>
  89. <groupId>org.springframework</groupId>
  90. <artifactId>spring-tx</artifactId>
  91. <version>${spring.version}</version>
  92. </dependency>
  93. <dependency>
  94. <groupId>org.springframework</groupId>
  95. <artifactId>spring-web</artifactId>
  96. <version>${spring.version}</version>
  97. </dependency>
  98. <dependency>
  99. <groupId>org.springframework</groupId>
  100. <artifactId>spring-webmvc</artifactId>
  101. <version>${spring.version}</version>
  102. </dependency>
  103. <!-- spring end -->
  104.  
  105. <!-- mysql -->
  106. <dependency>
  107. <groupId>mysql</groupId>
  108. <artifactId>mysql-connector-java</artifactId>
  109. <version>${mysql-connector-java.version}</version>
  110. </dependency>
  111.  
  112. <!-- shiro -->
  113. <dependency>
  114. <groupId>org.apache.shiro</groupId>
  115. <artifactId>shiro-core</artifactId>
  116. <version>${shiro.version}</version>
  117. </dependency>
  118. <dependency>
  119. <groupId>org.apache.shiro</groupId>
  120. <artifactId>shiro-web</artifactId>
  121. <version>${shiro.version}</version>
  122. </dependency>
  123. <dependency>
  124. <groupId>org.apache.shiro</groupId>
  125. <artifactId>shiro-spring</artifactId>
  126. <version>${shiro.version}</version>
  127. </dependency>
  128. <dependency>
  129. <groupId>org.apache.shiro</groupId>
  130. <artifactId>shiro-ehcache</artifactId>
  131. <version>${shiro.version}</version>
  132. </dependency>
  133. <dependency>
  134. <groupId>org.apache.shiro</groupId>
  135. <artifactId>shiro-quartz</artifactId>
  136. <version>${shiro.version}</version>
  137. </dependency>
  138.  
  139. <!-- servlet -->
  140. <dependency>
  141. <groupId>javax.servlet</groupId>
  142. <artifactId>servlet-api</artifactId>
  143. <version>2.5</version>
  144. </dependency>
  145. <dependency>
  146. <groupId>aopalliance</groupId>
  147. <artifactId>aopalliance</artifactId>
  148. <version>1.0</version>
  149. </dependency>
  150. <dependency>
  151. <groupId>org.apache.james</groupId>
  152. <artifactId>apache-mime4j</artifactId>
  153. <version>0.6.1</version>
  154. </dependency>
  155. <dependency>
  156. <groupId>asm</groupId>
  157. <artifactId>asm</artifactId>
  158. <version>3.3.1</version>
  159. </dependency>
  160. <dependency>
  161. <groupId>org.apache.axis</groupId>
  162. <artifactId>axis</artifactId>
  163. <version>1.4</version>
  164. </dependency>
  165. <dependency>
  166. <groupId>cglib</groupId>
  167. <artifactId>cglib-nodep</artifactId>
  168. <version>3.1</version>
  169. </dependency>
  170.  
  171. <!-- commons -->
  172. <dependency>
  173. <groupId>commons-beanutils</groupId>
  174. <artifactId>commons-beanutils</artifactId>
  175. <version>1.9.2</version>
  176. </dependency>
  177. <dependency>
  178. <groupId>commons-codec</groupId>
  179. <artifactId>commons-codec</artifactId>
  180. <version>1.10</version>
  181. </dependency>
  182. <dependency>
  183. <groupId>commons-collections</groupId>
  184. <artifactId>commons-collections</artifactId>
  185. <version>3.2.1</version>
  186. </dependency>
  187. <dependency>
  188. <groupId>commons-discovery</groupId>
  189. <artifactId>commons-discovery</artifactId>
  190. <version>0.5</version>
  191. </dependency>
  192. <dependency>
  193. <groupId>commons-fileupload</groupId>
  194. <artifactId>commons-fileupload</artifactId>
  195. <version>1.3.1</version>
  196. </dependency>
  197. <dependency>
  198. <groupId>commons-httpclient</groupId>
  199. <artifactId>commons-httpclient</artifactId>
  200. <version>3.1</version>
  201. </dependency>
  202. <dependency>
  203. <groupId>commons-io</groupId>
  204. <artifactId>commons-io</artifactId>
  205. <version>2.4</version>
  206. </dependency>
  207. <dependency>
  208. <groupId>commons-lang</groupId>
  209. <artifactId>commons-lang</artifactId>
  210. <version>2.6</version>
  211. </dependency>
  212. <dependency>
  213. <groupId>commons-logging</groupId>
  214. <artifactId>commons-logging</artifactId>
  215. <version>1.2</version>
  216. </dependency>
  217. <dependency>
  218. <groupId>dom4j</groupId>
  219. <artifactId>dom4j</artifactId>
  220. <version>1.6.1</version>
  221. </dependency>
  222.  
  223. <dependency>
  224. <groupId>com.alibaba</groupId>
  225. <artifactId>druid</artifactId>
  226. <version>1.0.9</version>
  227. </dependency>
  228. <dependency>
  229. <groupId>net.sf.ehcache</groupId>
  230. <artifactId>ehcache-core</artifactId>
  231. <version>2.6.9</version>
  232. </dependency>
  233. <dependency>
  234. <groupId>net.sf.ezmorph</groupId>
  235. <artifactId>ezmorph</artifactId>
  236. <version>1.0.6</version>
  237. </dependency>
  238. <dependency>
  239. <groupId>org.freemarker</groupId>
  240. <artifactId>freemarker</artifactId>
  241. <version>2.3.21</version>
  242. </dependency>
  243. <dependency>
  244. <groupId>com.google.code.gson</groupId>
  245. <artifactId>gson</artifactId>
  246. <version>2.3.1</version>
  247. </dependency>
  248. <dependency>
  249. <groupId>org.apache.httpcomponents</groupId>
  250. <artifactId>httpcore</artifactId>
  251. <version>4.4</version>
  252. </dependency>
  253. <dependency>
  254. <groupId>org.apache.httpcomponents</groupId>
  255. <artifactId>httpmime</artifactId>
  256. <version>4.3.6</version>
  257. </dependency>
  258. <dependency>
  259. <groupId>com.fasterxml.jackson.core</groupId>
  260. <artifactId>jackson-core</artifactId>
  261. <version>2.4.4</version>
  262. </dependency>
  263. <dependency>
  264. <groupId>com.alibaba</groupId>
  265. <artifactId>fastjson</artifactId>
  266. <version>1.1.36</version>
  267. </dependency>
  268. <dependency>
  269. <groupId>javax.xml</groupId>
  270. <artifactId>jaxrpc</artifactId>
  271. <version>1.1</version>
  272. </dependency>
  273. <dependency>
  274. <groupId>jstl</groupId>
  275. <artifactId>jstl</artifactId>
  276. <version>1.2</version>
  277. </dependency>
  278. <dependency>
  279. <groupId>log4j</groupId>
  280. <artifactId>log4j</artifactId>
  281. <version>1.2.17</version>
  282. </dependency>
  283. <dependency>
  284. <groupId>org.mybatis</groupId>
  285. <artifactId>mybatis</artifactId>
  286. <version>3.2.1</version>
  287. </dependency>
  288. <dependency>
  289. <groupId>org.mybatis</groupId>
  290. <artifactId>mybatis-spring</artifactId>
  291. <version>1.2.0</version>
  292. </dependency>
  293. <dependency>
  294. <groupId>org.slf4j</groupId>
  295. <artifactId>slf4j-api</artifactId>
  296. <version>1.7.9</version>
  297. </dependency>
  298. <dependency>
  299. <groupId>org.slf4j</groupId>
  300. <artifactId>slf4j-log4j12</artifactId>
  301. <version>1.7.9</version>
  302. </dependency>
  303. <dependency>
  304. <groupId>taglibs</groupId>
  305. <artifactId>standard</artifactId>
  306. <version>1.1.2</version>
  307. </dependency>
  308. <dependency>
  309. <groupId>wsdl4j</groupId>
  310. <artifactId>wsdl4j</artifactId>
  311. <version>1.6.3</version>
  312. </dependency>
  313. <dependency>
  314. <groupId>org.freemarker</groupId>
  315. <artifactId>freemarker</artifactId>
  316. <version>2.3.21</version>
  317. </dependency>
  318. <!-- 兴许 -->
  319.  
  320. <!-- dubbo依赖jar -->
  321. <dependency>
  322. <groupId>com.alibaba</groupId>
  323. <artifactId>dubbo</artifactId>
  324. <version>2.4.9</version>
  325. <exclusions>
  326. <exclusion>
  327. <artifactId>spring</artifactId>
  328. <groupId>org.springframework</groupId>
  329. </exclusion>
  330. </exclusions>
  331. </dependency>
  332.  
  333. <dependency>
  334. <groupId>org.apache.zookeeper</groupId>
  335. <artifactId>zookeeper</artifactId>
  336. <version>3.4.5</version>
  337. <exclusions>
  338. <exclusion>
  339. <groupId>log4j</groupId>
  340. <artifactId>log4j</artifactId>
  341. </exclusion>
  342. </exclusions>
  343. </dependency>
  344.  
  345. <dependency>
  346. <groupId>com.github.sgroschupf</groupId>
  347. <artifactId>zkclient</artifactId>
  348. <version>0.1</version>
  349. </dependency>
  350.  
  351. </dependencies>
  352. <build>
  353. <plugins>
  354. <plugin>
  355. <artifactId>maven-compiler-plugin</artifactId>
  356. <configuration>
  357. <source>1.7</source>
  358. <target>1.7</target>
  359. <encoding>utf8</encoding>
  360. </configuration>
  361. </plugin>
  362. <plugin>
  363. <artifactId>maven-surefire-plugin</artifactId>
  364. <configuration>
  365. <includes>
  366. <include>**/*Tests.java</include>
  367. </includes>
  368. </configuration>
  369. </plugin>
  370. </plugins>
  371. <defaultGoal>compile</defaultGoal>
  372. <finalName>dubbo_consumer</finalName>
  373. </build>
  374. </project>
  375. </span>

这个时候后我们的相关project创建和代码的工作就完成了。以下我们就来測试一把吧!

首先我们启动zk,然后我们启动dubbo-admin的管理界面,界面例如以下(这里就不讲述它的安装部署方法了能够參照相关的文章):

这里我们能够看到提供这里没有不论什么信息,以下我们来启动一下服务提供者,即上面提到的TestProvider类。执行完,我们能够看到管理页面例如以下:

上图我们就能够看到有服务的提供者信息了。

可是此时我们还看不到消费者的信息。由于还没有消费者去调用这个服务:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

这时我们就要启动消费服务的測试类。调用服务。即上面提到的TestDemo,调用完以后我们能够看到例如以下图:

到此整个过程就完成了!

源代码下载地址:http://download.csdn.net/detail/u011192409/9476829

spring+dubbo整合的更多相关文章

  1. Spring Boot整合Dubbo使用及开发笔记

    一.概述: Spring Dubbo是我开发的一个基于spring-boot和dubbo,目的是使用Spring boot的风格来使用dubbo.(即可以了解Spring boot的启动过程又可以学习 ...

  2. Spring Boot和Dubbo整合

    provider端 POM依赖 <dependencies> <dependency> <groupId>org.springframework.boot</ ...

  3. Spring Boot 整合 Dubbo和Zookeeper

    Spring Boot 整合 Dubbo和Zookeeper Spring Boot 整合 Dubbo和Zookeeper 环境介绍 Zookeeper 安装 启动 Dubbo admin 搭建 创建 ...

  4. Spring Boot 整合 Elasticsearch,实现 function score query 权重分查询

    摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢! 『 预见未来最好的方式就是亲手创造未来 – <史蒂夫·乔布斯传> 』 运行环境: ...

  5. SSM 即所谓的 Spring MVC + Spring + MyBatis 整合开发。

    SSM 即所谓的 Spring MVC + Spring + MyBatis 整合开发.是目前企业开发比较流行的架构.代替了之前的SSH(Struts + Spring + Hibernate) 计划 ...

  6. SpringBoot与Dubbo整合下篇

    (1)pom.xml引入相关依赖jar包,如下: <dependency> <groupId>com.alibaba</groupId> <artifactI ...

  7. spring boot2整合dubbox全注解

    前题 dubbox是dubbo的一个升级版,简单说就是本来dubbo是阿里开发的,现在阿里不维护了,当当网拿过去继续开发.本来阿里的dubbo维护到2.6版本,而再高版本的都是当当网维护的就叫成dub ...

  8. springboot与dubbo整合入门(三种方式)

    Springboot与Dubbo整合三种方式详解 整合环境: jdk:8.0 dubbo:2.6.2 springboot:2.1.5 项目结构: 1.搭建项目环境: (1)创建父项目与三个子项目,创 ...

  9. SpringBoot与Dubbo整合-项目搭建

    本章节建立生产者和消费者来演示dubbo的demo 生产者:springboot-dubbo-provider 和 消费者:springboot-dubbo-consumer 工程配置详解 Apach ...

随机推荐

  1. redis transactions(事务)

    MULTI MULTI:标记一个事务块的开始. 事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行. 可用版本:>= 1.2.0 时间复杂度: ...

  2. Koa 框架 的错误处理

    默认情况下Koa会将所有错误信息输出到 stderr,除非 NODE_ENV 是 "test".为了实现自定义错误处理逻辑(比如 centralized logging),您可以添 ...

  3. 关于解决多台linux服务器间的文件实时同步问题

    最近要做一个相关的解决方案,在虚拟机测试没有问题.给大家分享出来,有更好的解决方案,欢迎讨论. 1.1 inotify相关介绍 1.rsync 与传统的cp.tar备份方式相比,rsync具有安全性高 ...

  4. kafaka学习

    创建一个topic: [root@hdp1 bin]# ./kafka-topics. --replication-factor --partitions --topic justin Created ...

  5. Caffe搭建:常见问题解决办法和ubuntu使用中遇到问题(持续更新)

    严正声明: 在linux下面使用命令行操作时,一定要懂得命令行的意思,然后再执行,要不然在不知道接下来会发生什么的情况下输入一通命令,linux很有可能崩掉. 因为在linux下面,使用sudo以及r ...

  6. zookeeper 的日常管理

    http://www.cnblogs.com/ggjucheng/p/3352591.html

  7. 解决git pull时出现的几个问题

    第1个问题: 解决GIT代码仓库不同步 今天在执行git pull时出现: 解决方法:执行git checkout -f,然后再执行git pull重新checkout 再执行git pull时就可以 ...

  8. 机器学习 之 SVM VC维度、样本数目与经验风险最小化的关系

    VC维在有限的训练样本情况下,当样本数 n 固定时.此时学习机器的 VC 维越高学习机器的复杂性越高. VC 维反映了函数集的学习能力,VC 维越大则学习机器越复杂(容量越大). 所谓的结构风险最小化 ...

  9. lua -- 事件响应与局部变量

    -- 这里要注意的点是:虽然nAmount是局部变量,却在控件的响应函数中使用 -- 因为控件的响应函数是在该变量的区域内,所以可以用 -- 如果控件的响应函数在外部,那么该变量就要声明成为全局变量 ...

  10. non-deterministic-turing-machine

    https://stackoverflow.com/questions/13524011/i-do-not-understand-the-concept-of-non-deterministic-tu ...