首先要依賴dubbo和spring
<!-- start of spring -->
<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-webmvc</artifactId>
<version>${spring.version}</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<artifactId>spring-aop</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
<exclusion>
<artifactId>spring-expression</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
在resources下創建一個xml
引用dubbo接口服務
<?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/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<dubbo:reference id="myRpcService" interface="com.rpc.service.MyRpcService"/>
</beans>
創建一個ContextUtil類去加載xml,這個類是比較通用的
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @author chengzhenxing
* @date 2019/4/17
*/
public class ContextUtil {
private static String configLocation = "spring/consumer.xml";
private static ContextUtil instance;
private static AbstractApplicationContext context = new ClassPathXmlApplicationContext(configLocation);
private ContextUtil() {
}
private static ContextUtil getInstance() {
if (instance == null) {
synchronized (ContextUtil.class) {
if (instance == null) {
instance = new ContextUtil();
}
}
}
return instance;
}
public static <T> T getBean(String bean) {
return getInstance().getBeanEx(bean);
}
@SuppressWarnings("unchecked")
private <T> T getBeanEx(String bean) {
return (T) context.getBean(bean);
}
public static void close() {
if (context != null) {
context.registerShutdownHook();
}
}
}
創建對象
MyRpcServicemyRpcService= ContextUtil.getBean("myRpcService");