中国加油,武汉加油!
篇幅较长,配合目录观看
1. 新建spring-dubbo
1.1 删掉src做站点工程
2. 新建spring-dubbo-api(module-maven)
2.1 编写Service接口
package com.wpj.service;
public interface IUserService {
public String addUser(String username);
}
3. 新建spring-dubbo-iml(module-maven)
3.1 导包
<dependencies>
<dependency>
<groupId>com.wpj</groupId>
<artifactId>spring-dubbo-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.8</version>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
</dependencies>
3.2 编写ServiceImpl实现类
package com.wpj.service.impl;
import com.wpj.service.IUserService;
public class UserServiceImpl implements IUserService {
public String addUser(String username) {
System.out.println("username = " + username);
return username;
}
}
3.3 编写bean.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"
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:application name="user-service"/>
<dubbo:registry address="zookeeper://192.168.59.100:2181"/>
<dubbo:protocol port="-1"/>
<dubbo:annotation package="com.wpj.service"/>
</beans>
4. 发布服务
4.1 Test
package com.wpj.service.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.io.IOException;
public class ProviderTest {
public static void main(String[] args) throws IOException {
ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:beans.xml");
System.in.read();
}
}
5. 调用服务
5.1 新建spring-dubbo-web(module-maven)
5.2 导包
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.8</version>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
5.3 编写beans.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"
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:application name="user-web"/>
<dubbo:registry address="zookeeper://192.168.59.100:2181"/>
<dubbo:consumer cache="false" retries="3" />
<dubbo:reference interface="com.wpj.service.IUserService" id="userService"/>
</beans>
5.4 Test
package com.wpj;
import com.wpj.service.IUserService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(value = "classpath:beans.xml")
public class ConsumerTest {
@Autowired
private IUserService userService;
@Test
public void testAddUser() throws Exception{
System.out.println(userService.addUser("admin"));
}
}