Repository: wacai/spring-boot-starter-dubbo Branch: master Commit: 33ace740696c Files: 6 Total size: 5.3 KB Directory structure: gitextract_d8fc152g/ ├── .gitignore ├── README.md ├── pom.xml └── src/ └── main/ ├── java/ │ └── com/ │ └── wacai/ │ └── springboot/ │ └── dubbo/ │ ├── autoconfigure/ │ │ └── DubboAutoConfiguration.java │ └── commands/ │ └── DubboServiceLatchCommandLineRunner.java └── resources/ └── META-INF/ └── spring.factories ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ .classpath .project webapp/WEB-INF/classes/ lib_managed/ project/target/* project/project/target/* project/build/target/* project/boot/* project/plugins/lib_managed/* project/plugins/project/* project/plugins/target/* project/plugins/src_managed/* target/ .idea/ .idea_modules/ *.iml .DS_Store out/ logs/ *.log .settings/ ================================================ FILE: README.md ================================================ # 项目介绍 Dubbo项目的SpringBoot自动配置module项目, 会提供一个CommandLineRunner来帮助latch当前dubbo服务端进程的退出。 # 使用说明 在要开发的基于dubbo和springboot的微服务项目的pom.xml中追加如下依赖配置: ~~~~~~~ {.xml} com.alibaba dubbo 2.5.3 org.springframework spring com.wacai spring-boot-starter-dubbo 1.0.2 ~~~~~~~ 然后, 在SpringBootApplication启动类中加载dubbo相关的spring xml配置即可: ~~~~~~~ {.java} @SpringBootApplication public class DubboWithSpringbootApplication { /** * SpringApplication的构造参数中, 标注了@SpringBootApplication的Main入口类是必须的; * 后面的参数一般传入dubbo服务的bean定义所在的配置文件路径,比如"classpath*:/spring/*.xml" * 之后,直接运行即可;(当然也可以设置一些参数,比如禁止banner打印等) */ public static void main(String[] args) { SpringApplication application = new SpringApplication(DubboWithSpringbootApplication.class, "classpath*:/spring/**/*.xml"); application.run(args); } } ~~~~~~~ 就这些~ ================================================ FILE: pom.xml ================================================ 4.0.0 org.springframework.boot spring-boot-starters 1.2.5.RELEASE com.wacai spring-boot-starter-dubbo 1.0.3-SNAPSHOT jar spring-boot-starter-dubbo https://github.com/wacai/spring-boot-starter-dubbo Apache License 2.0 http://www.apache.org/licenses/LICENSE-2.0 yunshi 陨石, aka.扶墙老师 yunshi@wacai.com http://afoo.me/whoami.html wacai.com http://www.wacai.com/ https://github.com/wacai/spring-boot-starter-dubbo git@github.com:wacai/spring-boot-starter-dubbo.git org.springframework.boot spring-boot-starter com.wacai goodies 1.0.0 ================================================ FILE: src/main/java/com/wacai/springboot/dubbo/autoconfigure/DubboAutoConfiguration.java ================================================ package com.wacai.springboot.dubbo.autoconfigure; import com.wacai.springboot.dubbo.commands.DubboServiceLatchCommandLineRunner; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.Order; @Configuration @Order public class DubboAutoConfiguration { protected Logger logger = LoggerFactory.getLogger(DubboAutoConfiguration.class); @Value("${shutdown.latch.domain.name:com.wacai.lifecycles}") private String shutdownLatchDomainName; @Bean @ConditionalOnClass(name = "com.alibaba.dubbo.rpc.Exporter") public DubboServiceLatchCommandLineRunner configureDubboServiceLatchCommandLineRunner() { logger.debug("DubboAutoConfiguration enabled by adding DubboServiceLatchCommandLineRunner."); DubboServiceLatchCommandLineRunner runner = new DubboServiceLatchCommandLineRunner(); runner.setDomain(shutdownLatchDomainName); return runner; } } ================================================ FILE: src/main/java/com/wacai/springboot/dubbo/commands/DubboServiceLatchCommandLineRunner.java ================================================ package com.wacai.springboot.dubbo.commands; import com.wacai.goodies.lifecycle.ShutdownLatch; import org.springframework.boot.CommandLineRunner; public class DubboServiceLatchCommandLineRunner implements CommandLineRunner { private String domain = "com.wacai.lifecycles"; @Override public void run(String... args) throws Exception { ShutdownLatch latch = new ShutdownLatch(getDomain()); latch.await(); } public String getDomain() { return domain; } public void setDomain(String domain) { this.domain = domain; } } ================================================ FILE: src/main/resources/META-INF/spring.factories ================================================ org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.wacai.springboot.dubbo.autoconfigure.DubboAutoConfiguration