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