Dubbo服务的运行方式(使用maven构建dubbo可执行的jar包)
2017-10-24 09:24
501 查看
1.使用Servlet容器运行(Tomcat Jetty等)—–不建议
缺点:增加复杂性(端口,管理) 浪费资源(内存)
2.自建Main方法来执行(Spring容器) —不建议(仅限本地调试)
缺点:Dubbo本身的高级特性没用上 启动类可能会有缺陷
public class DubboProvider { private static final Log log = LogFactory.getLog(DubboProvider.class); public static void main(String[] args) { try { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring/spring-context.xml"); context.start(); } catch (Exception e) { log.error("== DubboProvider context start error:",e); } synchronized (DubboProvider.class) { while (true) { try { DubboProvider.class.wait(); } catch (InterruptedException e) { log.error("== synchronized error:",e); } } } } }
3.用Dubbo框架提供的Main方法类来运行(Spring容器) –建议使用
优点:框架本身提供 可优雅的实现关闭
1 在pom.xml文件增加如下内容
<build> <finalName>edu-service-user</finalName> <resources> <resource> <targetPath>${project.build.directory}/classes</targetPath> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> </resource> <!-- 结合com.alibaba.dubbo.container.Main --> <resource> <targetPath>${project.build.directory}/classes/META-INF/spring</targetPath> <directory>src/main/resources/spring</directory> <filtering>true</filtering> <includes> <include>spring-context.xml</include> </includes> </resource> </resources> <pluginManagement> <plugins> <!-- 解决Maven插件在Eclipse内执行了一系列的生命周期引起冲突 --> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <versionRange>[2.0,)</versionRange> <goals> <goal>copy-dependencies</goal> cc1b </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> </plugins> </pluginManagement> <plugins> <!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <classesDirectory>target/classes/</classesDirectory> <archive> <manifest> <mainClass>com.alibaba.dubbo.container.Main</mainClass> <!-- 打包时 MANIFEST.MF文件不记录的时间戳版本 --> <useUniqueVersions>false</useUniqueVersions> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> </manifest> <manifestEntries> <Class-Path>.</Class-Path> </manifestEntries> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <type>jar</type> <includeTypes>jar</includeTypes> <useUniqueVersions>false</useUniqueVersions> <outputDirectory> ${project.build.directory}/lib </outputDirectory> </configuration> </execution> </executions> </plugin> </plugins> </build>
执行maven install生成jar包
在生成的jar包目录下 执行
java -jar source.jar即可启动dubbo服务
相关文章推荐
- 使用Maven构建dubbo服务可执行的jar包--待完善
- 使用maven构建dubbo服务的可执行jar包
- SpringBank 开发日志 使用maven构建dubbo服务的可执行jar包
- Dubbo之使用Maven构建服务的可执行jar包
- Dubbo-使用Maven构建Dubbo服务的可执行jar包
- 使用maven构建Dubbo服务的可执行的jar包
- 分布式服务框架dubbo-使用Maven构建Dubbo服务的可执行jar包(4)
- 使用maven 构建dubbo服务的可执行jar包
- 使用Maven构建Dubbo服务的可运行jar包 支持优雅关机
- 学习dubbo(五):使用maven构建dubbo服务的可执行的jar
- 跟我学习dubbo-使用Maven构建Dubbo服务的可执行jar包(4)
- Dubbo基础编二_使用Maven构建Dubbo服务可执行jar包
- 菜鸟的DUBBO进击之路(六):使用maven构建dubbo服务的可执行jar包
- Dubbo基础篇_04_使用Maven构建Dubbo服务可执行jar包
- 跟我学习dubbo-使用Maven构建Dubbo服务的可执行jar包(4)
- 使用Maven构建dubbo服务可执行的jar包
- 基于maven构建dubbo服务的可执行jar包
- 使用maven构建dubbo服务的可执行jar包
- maven构建dubbo服务的可执行jar包
- 使用Maven构建Dubbo服务的可运行jar包