dubbo环境搭建
dubbo環境主要分為以下幾個步驟:
1.建立項目結構:service-api,service-provider,web(controller接口)
2.引入jar包(配置pom.xml)
3.spring配置,springMVC配置,dubbo配置(provider接口提供方:spring-test-provider.xml,web消費方:dubbo-server-consumer.xml),properties文件配置。
4.zookeeper安裝,dubbo基于zookeeper注冊、提供、發布服務。
?
1.建立項目結構如圖所示:
?
說明:test-service是接口項目,test-web是webapp項目,建立maven項目。
2.各個項目的pom.xml配置引入jar包:
test-service-api的pro.xml:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>test-service</artifactId><groupId>test</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>test</groupId><artifactId>test-service-api</artifactId></project>test-service-provider的pom.xml:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>test-service</artifactId><groupId>test</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>test</groupId><artifactId>test-service-provider</artifactId><dependencies><dependency><groupId>test</groupId><artifactId>test-service-api</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies></project>test-service的pom.xml:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>test</artifactId><groupId>test</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>test</groupId><artifactId>test-service</artifactId><packaging>pom</packaging><modules><module>test-service-api</module><module>test-service-provider</module></modules><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><endorsed.dir>${project.build.directory}/endorsed</endorsed.dir><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring.version>4.3.10.RELEASE</spring.version><mybatis.version>3.3.0</mybatis.version><mybatis-spring.version>1.2.3</mybatis-spring.version><jackson.version>2.6.3</jackson.version><slf4j.version>1.7.13</slf4j.version></properties><dependencies><!--Redis封裝--><dependency><groupId>com.richgo</groupId><artifactId>richgo-redis-api</artifactId><version>1.0.3-SNAPSHOT</version></dependency><!--公共參數--><dependency><groupId>com.common</groupId><artifactId>common-util</artifactId><version>1.0.19-SNAPSHOT</version></dependency><!--消息隊列--><dependency><groupId>com.message</groupId><artifactId>message-service</artifactId><version>1.0.3-SNAPSHOT</version></dependency><!-- hr系統--><dependency><groupId>com.user</groupId><artifactId>user-api</artifactId><version>2.0.6-SNAPSHOT</version></dependency><!-- 統一客戶--><dependency><groupId>com.customer</groupId><artifactId>customer-api</artifactId><version>1.2.2-SNAPSHOT</version></dependency><!-- excel解析--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version></dependency><!-- spring 所需包 start --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-oxm</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version></dependency><!-- spring 所需包 end --><!-- mybatis 框架包 start --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><!-- Mybatis分頁插件包 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>4.0.3</version></dependency><!-- mybatis 框架包 end --><!-- jackson包 start --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>${jackson.version}</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>${jackson.version}</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>${jackson.version}</version></dependency><!-- jackson包 start --><!-- junit start --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><!-- junit end --><!-- slf4j包 start --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!-- slf4j包 end --><!-- 自動生成代碼 start --><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.2</version></dependency><!-- 自動生成代碼 end --><dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.5.3</version><exclusions><exclusion><artifactId>spring</artifactId><groupId>org.springframework</groupId></exclusion></exclusions></dependency><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.9</version></dependency><dependency><groupId>com.github.sgroschupf</groupId><artifactId>zkclient</artifactId><version>0.1</version></dependency><!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.8</version></dependency><!--owner--><dependency><groupId>org.aeonbits.owner</groupId><artifactId>owner</artifactId><version>1.0.8</version><exclusions><exclusion><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId></exclusion><exclusion><groupId>junit</groupId><artifactId>junit</artifactId></exclusion></exclusions></dependency></dependencies> </project>test-web的pom.xml:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>test</artifactId><groupId>test</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>test</groupId><artifactId>test-web</artifactId><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><endorsed.dir>${project.build.directory}/endorsed</endorsed.dir><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring.version>4.2.2.RELEASE</spring.version><spring-webmvc.version>4.2.2.RELEASE</spring-webmvc.version><mysql.version>5.1.37</mysql.version><mybatis.version>3.3.0</mybatis.version><mybatis-spring.version>1.2.3</mybatis-spring.version><jackson.version>2.6.3</jackson.version><commonsio.version>2.4</commonsio.version><json.version>2.4</json.version><slf4j.version>1.7.13</slf4j.version><springfox.swagger.version>2.6.0</springfox.swagger.version></properties><dependencies><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>5.2.4.Final</version></dependency><!-- api --><dependency><groupId>com.salesproject</groupId><artifactId>sales-project-api</artifactId><version>1.0.0-SNAPSHOT</version></dependency><dependency><groupId>com.product</groupId><artifactId>product-integrate-api</artifactId><version>1.0.0-SNAPSHOT</version></dependency><!-- 用戶 --><dependency><groupId>com.user</groupId><artifactId>user-api</artifactId><version>2.2.0-SNAPSHOT</version></dependency><!-- 公共 --><dependency><groupId>com.common</groupId><artifactId>common-util</artifactId><version>1.0.19-SNAPSHOT</version></dependency><!-- 權限 --><dependency><groupId>com.rbac</groupId><artifactId>rbac-common</artifactId><version>2.0.5-SNAPSHOT</version></dependency><dependency><groupId>com.rbac</groupId><artifactId>rbac-server-api</artifactId><version>2.0.3-SNAPSHOT</version></dependency><!-- 產品 --><dependency><groupId>com.product</groupId><artifactId>product-api</artifactId><version>3.0.0-SNAPSHOT</version></dependency><!-- 消息 --><dependency><groupId>com.sms</groupId><artifactId>sms-api</artifactId><version>1.3.1-SNAPSHOT</version></dependency><dependency><groupId>com.richgo</groupId><artifactId>richgo-redis-api</artifactId><version>1.0.3-SNAPSHOT</version></dependency><!-- 視頻面簽 --><dependency><groupId>com.chtwm</groupId><artifactId>videoverify-api</artifactId><version>1.0.0-SNAPSHOT</version></dependency><!-- 統一客戶--><dependency><groupId>com.customer</groupId><artifactId>customer-api</artifactId><version>2.0.0-SNAPSHOT</version></dependency><!-- https://mvnrepository.com/artifact/net.sourceforge.javacsv/javacsv --><dependency><groupId>net.sourceforge.javacsv</groupId><artifactId>javacsv</artifactId><version>2.1</version></dependency><!-- jwt --><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.7.0</version></dependency><!-- excel解析--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version></dependency><!-- spring 所需包 start --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version><type>jar</type><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-oxm</artifactId><version>${spring.version}</version></dependency><!-- spring 所需包 end --><!-- spring mvc 所需包 start --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring-webmvc.version}</version><type>jar</type><scope>compile</scope></dependency><!-- spring mvc 所需包 end --><!-- spring mvc 文件上傳所需包 start --><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>${commonsio.version}</version></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version></dependency><!-- spring mvc 文件上傳所需包 end --><!-- mybatis 框架包 start --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><!-- Mybatis分頁插件包 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>4.0.3</version></dependency><!-- mybatis 框架包 end --><!-- mybatis與spring 整合所需包 start --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>${mybatis-spring.version}</version></dependency><!-- mybatis與spring 整合所需包 end --><!-- jackson包 start --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>${jackson.version}</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>${jackson.version}</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>${jackson.version}</version></dependency><!-- jackson包 start --><!-- ehcache緩存 start --><dependency><groupId>net.sf.ehcache</groupId><artifactId>ehcache</artifactId><version>2.10.0</version></dependency><!-- ehcache緩存 end --><!-- junit start --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><!-- junit end --><!-- javaee api start --><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><version>7.0</version></dependency><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!-- javaee api end --><!-- 數據庫連接池druid包 start --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.16</version></dependency><!-- 數據庫連接池druid包 end --><!-- mysql驅動包 start --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><!-- mysql驅動包 end --><!-- httpclient包 start --><dependency><groupId>commons-httpclient</groupId><artifactId>commons-httpclient</artifactId><version>3.1</version></dependency><!-- httpclient包 end --><!-- slf4j包 start --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!-- slf4j包 end --><!-- 日期處理包 start --><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>2.9.1</version></dependency><!-- 日期處理包 end --><!-- 讀取資源文件包 start --><dependency><groupId>commons-configuration</groupId><artifactId>commons-configuration</artifactId><version>1.10</version></dependency><!-- 讀取資源文件包 end --><!-- java解析html包 start --><dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.8.3</version></dependency><!-- java解析html包 end --><!-- mongodb包 start --><dependency><groupId>org.mongodb</groupId><artifactId>mongo-java-driver</artifactId><version>3.1.1</version></dependency><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-mongodb</artifactId><version>1.8.0.RELEASE</version></dependency><!-- mongodb包 end --><!-- redis start --><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-redis</artifactId><version>1.6.0.RELEASE</version></dependency><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.7.2</version></dependency><!-- redis end --><!-- spring session redis start --><dependency><groupId>org.springframework.session</groupId><artifactId>spring-session</artifactId><version>1.0.2.RELEASE</version></dependency><dependency><groupId>com.orange.redis-embedded</groupId><artifactId>embedded-redis</artifactId><version>0.6</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId><version>2.4.2</version></dependency><!-- spring session redis end --><!-- xml解析 start --><dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.6.1</version></dependency><!-- xml解析 end --><!-- solr包start --><dependency><groupId>org.apache.solr</groupId><artifactId>solr-solrj</artifactId><version>5.3.1</version></dependency><!-- solr包end --><!-- apache 工具包 start --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.4</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-math</artifactId><version>2.2</version></dependency><!-- apache 工具包 end --><!-- 郵件包 start --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-email</artifactId><version>1.4</version></dependency><!-- 郵件包 end --><!-- 文件操作 --><!-- 阿里云包(目前只使用到OSS)start --><dependency><groupId>com.aliyun.openservices</groupId><artifactId>aliyun-openservices</artifactId><version>1.2.3</version></dependency><!-- 阿里云包(目前只使用到OSS) end --><!-- ftp上傳包 start --><dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.3</version><classifier>ftp</classifier></dependency><!-- ftp上傳包 end --><!-- 文件操作 --><!-- json start --><!--<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId><version>${json.version}</version> <classifier>jdk15</classifier> </dependency> --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.7</version></dependency><!-- json end --><!-- rocketmq start --><dependency><groupId>com.alibaba.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version>3.2.6</version></dependency><!-- rocketmq end --><!-- Excel start --><dependency><groupId>net.sourceforge.jexcelapi</groupId><artifactId>jxl</artifactId><version>2.6.12</version></dependency><!-- Excel end --><!-- 自動生成代碼 start --><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.2</version></dependency><!-- 自動生成代碼 end --><dependency><groupId>com.thoughtworks.xstream</groupId><artifactId>xstream</artifactId><version>1.4.7</version></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.4</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.5.3</version><exclusions><exclusion><artifactId>spring</artifactId><groupId>org.springframework</groupId></exclusion></exclusions></dependency><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.9</version></dependency><dependency><groupId>com.github.sgroschupf</groupId><artifactId>zkclient</artifactId><version>0.1</version></dependency><!-- swagger-springmvc start --><!-- swagger2核心依賴 --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>${springfox.swagger.version}</version></dependency><!-- swagger-ui為項目提供api展示及測試的界面 --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>${springfox.swagger.version}</version></dependency><!--petStore是官方提供的一個代碼參考, 可用于后期寫文檔時進行參考, 可不加 --><dependency><groupId>io.springfox</groupId><artifactId>springfox-petstore</artifactId><version>${springfox.swagger.version}</version></dependency><!-- swagger-springmvc end --><!--owner--><dependency><groupId>org.aeonbits.owner</groupId><artifactId>owner</artifactId><version>1.0.8</version><exclusions><exclusion><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId></exclusion><exclusion><groupId>junit</groupId><artifactId>junit</artifactId></exclusion></exclusions></dependency><!-- excel讀寫工具 --><dependency><groupId>com.xiaoleilu</groupId><artifactId>hutool-all</artifactId><version>3.2.1</version></dependency></dependencies></project>test的pom.xml:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>test</groupId><artifactId>test</artifactId><packaging>pom</packaging><version>1.0-SNAPSHOT</version><modules><module>test-service</module><module>test-web</module></modules></project>3.test-service-provider的spring、dubbo配置等,test-web的springMVC、dubbo配置等
test-service-provider的配置:
applicationContext.xml:
spring-test-provider.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsd"><!-- 提供方應用信息,用于計算依賴關系 --><!--<dubbo:application name="${dubbo.application.name}" />--><!-- 使用zookeeper注冊中心暴露服務地址 即zookeeper的所在服務器ip地址和端口號 --><dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}" check="false" /><!-- 用dubbo協議在20880端口暴露服務 --><!--<dubbo:protocol name="${dubbo.protocol.name}" port="${dubbo.protocol.port}" />--><!-- 聲明需要暴露的服務接口 --><!--test信息服務--><bean id="testService" class = "com.test.impl.TestServiceImpl"/><dubbo:service interface = "com.test.service.TestService" ref = "testService" version="1.0.0" timeout="20000"/></beans>config.properties:
#連接池中可同時連接的最大的連接數(默認值為8)1000 maxActive=100 # 初始化連接(默認為0)10 initialSize=5 #連接池中最大的空閑的連接數,超過的空閑連接將被釋放,如果設置為負數表示不限制(默認為8個)10 maxIdle=10 #連接池中最小的空閑的連接數,低于這個數量會被創建新的連接(默認為0個)10 minIdle=10 #最大等待時間,當沒有可用連接時,連接池等待連接釋放的最大時間,超過該時間限制會拋出異常(默認為-1表示無限等待)(單位為 ms)9秒 maxWait=9000 #關閉abanded連接時輸出錯誤日志 logAbandoned=true #超過removeAbandonedTimeout時間后,是否進行沒用連接(廢棄)的回收(默認為false) removeAbandoned=true #超過時間限制,回收沒有用(廢棄)的連接(單位秒,默認為 300秒,5分鐘) 2分半 removeAbandonedTimeout=150########## validate ########## #每次檢查鏈接的數量,建議設置和maxActive一樣大,這樣每次可以有效檢查所有的鏈接.(默認為3個)100 numTestsPerEvictionRun=100 #每隔多少時間檢測一次(默認毫秒),根據mysql:wait_timeout值來設定 100秒 timeBetweenEvictionRunsMillis=100000 #連接池中連接,在時間段內一直空閑, 被逐出連接池的時間(單位毫秒,默認為 1800000L,30分鐘) minEvictableIdleTimeMillis=1800000 #不限制 statement池能夠同時分配的打開的statements的最大數量, 如果設置為0表示不限制 maxOpenPreparedStatements=20 ########## validate #########################mysql數據源################### # 測試環境 #db.crm.url=*** #db.crm.user=*** #db.crm.pwd=*** # 開發環境 db.crm.url=*** db.crm.user=*** db.crm.pwd=***dubbo.properties:
dubbo.application.name=sales-project-external-provider dubbo.protocol.name=dubbo dubbo.protocol.port=30889 #dubbo.registry.file=/root/.dubbo/pes-dubbo-registry.properties dubbo.log4j.file=logs/sales-project-external-provider.log dubbo.registry.address=127.0.0.1:2181log4j.properties:
log.dir=/var/log/sales-project-external-provider log4j.rootLogger=debug,stdout,root log4j.logger.org.springframework=debug,root #log4j log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{5}:%L: %m%n #org.springframework log4j.appender.root=org.apache.log4j.RollingFileAppender log4j.appender.root.File=${log.dir}/springframework.log log4j.appender.root.MaxFileSize=50MB log4j.appender.root.MaxBackupIndex=5 log4j.appender.root.layout=org.apache.log4j.PatternLayout log4j.appender.root.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{5}:%L: %m%nmybatis-config.xml:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><typeAliases><!-- <typeAlias alias="member1" type="com.ryfinance.entity.Member" /> --></typeAliases><plugins><!-- com.github.pagehelper為PageHelper類所在包名 --><plugin interceptor="com.github.pagehelper.PageHelper"><property name="dialect" value="mysql"/><!-- 該參數默認為false --><!-- 設置為true時,會將RowBounds第一個參數offset當成pageNum頁碼使用 --><!-- 和startPage中的pageNum效果一樣--><property name="offsetAsPageNum" value="true"/><!-- 該參數默認為false --><!-- 設置為true時,使用RowBounds分頁會進行count查詢 --><property name="rowBoundsWithCount" value="true"/><!-- 設置為true時,如果pageSize=0或者RowBounds.limit = 0就會查詢出全部的結果 --><!-- (相當于沒有執行分頁查詢,但是返回結果仍然是Page類型)<property name="pageSizeZero" value="true"/>--><!-- 3.3.0版本可用 - 分頁參數合理化,默認false禁用 --><!-- 啟用合理化時,如果pageNum<1會查詢第一頁,如果pageNum>pages會查詢最后一頁 --><!-- 禁用合理化時,如果pageNum<1或pageNum>pages會返回空數據 --><property name="reasonable" value="false"/><!-- 3.5.0版本可用 - 為了支持startPage(Object params)方法 --><!-- 增加了一個`params`參數來配置參數映射,用于從Map或ServletRequest中取值 --><!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默認值 --><!-- 不理解該含義的前提下,不要隨便復制該配置 <property name="params" value="pageNum=start;pageSize=limit;"/> --></plugin></plugins> </configuration>test-web的配置:
applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!-- 引入config.properties文件 --><bean id="placeholderConfig"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><list><value>classpath:config.properties</value><value>classpath:dubbo.properties</value></list></property></bean><!-- 導入配置文件 --><import resource="classpath:spring/dubbo-server-consumer.xml" /><bean class="com.common.listener.MyApplicationContextAware" /></beans>dubbo-server-consumer.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsd"><!-- 提供方應用信息,用于計算依賴關系 --><!--<dubbo:application name="${dubbo.application.name}" />--><!-- 使用multicast廣播注冊中心暴露服務地址 --><!-- <dubbo:registry address="multicast://224.5.6.7:1234" /> --><!-- 使用zookeeper注冊中心暴露服務地址 即zookeeper的所在服務器ip地址和端口號 --><dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}" check="false" /><!--員工管理系統服務--><dubbo:reference id="testService" interface="com.test.service.TestService" version="1.0.0" timeout="20000" retries="0" /></beans>spring-mvc.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsd"><aop:aspectj-autoproxy proxy-target-class="true"/><mvc:annotation-driven/><!--注解控測器 設置使用注解的類所在的jar包 --><context:component-scan base-package="com.test"/><!-- 對靜態資源文件的訪問,交給default servlet handler處理 --><mvc:default-servlet-handler /><bean id="contentNegotiationManager"class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"><property name="favorParameter" value="false" /><!-- 設置為true以忽略對Accept Header的支持 --><property name="ignoreAcceptHeader" value="true" /><!-- 在沒有擴展名時即: "/blog/1" 時的默認展現形式 --><property name="defaultContentType" value="text/html" /><!-- 擴展名至mimeType的映射,即 /blog.json => application/json --><property name="mediaTypes"><map><entry key="html" value="text/html" /><entry key="json" value="application/json" /><!-- 后續需要支持這些格式,再放開 <entry key="pdf" value="application/pdf" /> <entry key="xsl" value="application/vnd.ms-excel" /> <entry key="xml" value="application/xml" /> --></map></property></bean><beanclass="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"><property name="order" value="1" /><property name="contentNegotiationManager" ref="contentNegotiationManager" /><property name="viewResolvers"><list><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass"value="org.springframework.web.servlet.view.JstlView" /><property name="prefix" value="/" /><property name="suffix" value=".html" /></bean></list></property><property name="defaultViews"><list><!-- application/json ModelAndView里的數據變成JSON --><beanclass="org.springframework.web.servlet.view.json.MappingJackson2JsonView" /><!-- application/xml --><!-- <bean class="org.springframework.web.servlet.view.xml.MarshallingView"> <property name="marshaller"> <bean class="org.springframework.oxm.xstream.XStreamMarshaller"> </bean> </property> </bean> --></list></property></bean><!-- 文件上傳解析器 id 必須為multipartResolver 10M --><bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!-- 上傳的最大字節數,-1代表沒有任何限制 1024*1024*4=4194304即4m --><!--<property name="maxUploadSize" value="4194304" />--><property name="maxUploadSize" value="10485760" /><!-- 讀取文件到內存中最大的字節數,默認是1024 --><property name="maxInMemorySize" value="1024" /><!-- 文件上傳頭部編碼,默認是iso-8859-1,注意defaultEncoding必須和前端頁面pageEncoding屬性一致,以便能正常讀取文件 --><property name="defaultEncoding" value="UTF-8" /><!-- 文件上傳暫存目錄,文件上傳完成之后會清除該目錄,模式是在servlet容器的臨時目錄,例如tomcat的話,就是在tomcat文件夾的temp目錄 --><!--<property name="uploadTempDir" value="/upload" />--></bean><bean class="com.test.base.swagger.SalesProjectSwaggerConfig" /><bean class="com.test.base.resolver.MySimpleMappingExceptionResolver" /><bean id="methodExecuteTime" class="com.common.aspect.Aspect" /><aop:config><aop:aspect id="logMethodExecuteTime" ref="methodExecuteTime" ><aop:pointcut id="controllerMethods" expression="execution(* com.test.controller..*.*(..))" /><aop:around method="methodExecuteTime" pointcut-ref="controllerMethods" /></aop:aspect></aop:config> </beans>config.properties:
#權限系統配置 rbac.system=21 #單點登錄站點 sso.web.site=http://user.chtwm.com:8080 #單點登錄域名 sso.web.domain=chtwm.comdubbo.properties:
dubbo.application.name=sales-project-cms-web-consumer dubbo.log4j.file=logs/sales-project-cms-web-consumer.log dubbo.registry.address=127.0.0.1:2181log4j.properties:
log.dir=/var/log/test log4j.rootLogger=debug,stdout,root log4j.logger.org.springframework=debug,root #log4j log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{5}:%L: %m%n #org.springframework log4j.appender.root=org.apache.log4j.RollingFileAppender log4j.appender.root.File=${log.dir}/springframework.log log4j.appender.root.MaxFileSize=50MB log4j.appender.root.MaxBackupIndex=5 log4j.appender.root.layout=org.apache.log4j.PatternLayout log4j.appender.root.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{5}:%L: %m%nweb.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"version="2.5"><display-name>test-web</display-name><session-config><session-timeout>30</session-timeout></session-config><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/applicationContext.xml</param-value></context-param><filter><filter-name>springEncoding</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param><init-param><!-- 是否強制設在request編碼 --><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>springEncoding</filter-name><url-pattern>/*</url-pattern></filter-mapping><servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping><listener><listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class></listener><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><listener><listener-class>org.springframework.web.context.request.RequestContextListener</listener-class></listener></web-app>4.安裝zookeeper
參考網上安裝方法,安裝完成后,設置zoo.cfg配置文件,啟動zookeeper
5.結果
啟動provicer,啟動web,swagger-ui測試。
?
可以看到controller調用dubbo接口并進入dubbo接口的斷點。
至此,dubbo環境搭建成功。
?
轉載于:https://www.cnblogs.com/super-chao/p/9603295.html
總結
- 上一篇: WebUploader 设置单个文件上传
- 下一篇: NOIP2016 愤怒的小鸟