本文使用的是dubbo提供的主类com.alibaba.dubbo.container.Main启动容器。
主要区别是提供不同插件的的启动方式。
目录
一、项目内容
1.1、目录结构图
1.2、相关文件配置
二、运行容器方式
2.1 使用Java命令启动(手动)
2.1.1 使用maven-shade-plugin 插件打包运行
2.1.2 使用 maven-jar-plugin 插件和 maven-dependency-plugin 插件打包运行
2.2 使用脚本启动
2.2.1 windows启动脚本start.bat
2.2.2 linux启动脚本start.sh
2.2.3 linux停止脚本stop.sh
2.2.4 linux重启脚本restart.sh
一、项目内容
1.1 目录结构如图:

1.2 相关文件的配置
- DemoService
package com.test.provider; /** * Created by Administrator on 2018/2/1. */ public interface DemoService { String sayHello(String word); }
- DemoServiceImpl
package com.test.provider; import org.springframework.stereotype.Service; /** * Created by Administrator on 2018/2/1. */ @Service("demoService") public class DemoServiceImpl implements DemoService { public String sayHello(String word) { return "hello " + word + ",I'm provider \r\n"; } }
- assemble-descriptor.xml
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <id>bin</id> <formats> <format>tar.gz</format> <format>zip</format> </formats> <includeBaseDirectory>true</includeBaseDirectory> <fileSets> <fileSet> <directory>src/main/resources/bin</directory> <outputDirectory>bin</outputDirectory> <includes> <include>*</include> </includes> <fileMode>0755</fileMode> <filtered>true</filtered> </fileSet> <fileSet> <directory>src/main/resources/cconf</directory> <outputDirectory>cconf</outputDirectory> <includes> <include>*</include> </includes> <fileMode>0755</fileMode> <filtered>true</filtered> </fileSet> </fileSets> <dependencySets> <dependencySet> <outputDirectory>lib</outputDirectory> <useProjectArtifact>true</useProjectArtifact> <unpack>false</unpack> <scope>runtime</scope> </dependencySet> </dependencySets> </assembly>
- application.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <import resource="classpath:cconf/dubbo-provider.xml"/> </beans>
- dubbo-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" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="com.test.provider"/> <!--IP 为zookeeper 地址--> <dubbo:registry protocol="zookeeper" address="47.93.200.10:2181"/> <dubbo:service interface="com.test.provider.DemoService" ref="demoService" /> </beans>
- dubbo.properties
#把属行放在该文件主要是为了方便使用脚本启动时,获取以下的信息 dubbo.application.name=hello-provider dubbo.protocol.name=dubbo dubbo.protocol.port=20880
- 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>com.jay.test.dubbo-zookeeper</groupId> <artifactId>hello-provider</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <properties> <spring.version>4.3.8.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.9</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> </exclusions> </dependency> <!--dubbo注册中心--> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.10</version> </dependency> <!--zookeeper客户端--> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</