服务的提供者:
import com.alibaba.dubbo.config.ApplicationConfig; import com.alibaba.dubbo.config.ProtocolConfig; import com.alibaba.dubbo.config.RegistryConfig; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * Create by Administrator on 2018/12/22 8:47 */ @Configuration public class UserServiceConfig { //程序别名 @Bean public ApplicationConfig applicationConfig(){ ApplicationConfig applicationConfig= new ApplicationConfig(); applicationConfig.setName("user-service"); return applicationConfig; } //注册中心 @Bean public RegistryConfig registryConfig() { RegistryConfig registryConfig = new RegistryConfig(); //假设注册中心是zookeeper 地址是192.168.1.10:2181 方式1:zookeeper://192.168.1.10:2181 //方式二 协议: zookeeper 地址:192.168.1.10:2181 // registryConfig.setAddress("192.168.1.10:2181"); ///registryConfig.setProtocol("zookeeper"); registryConfig.setProtocol("zookeeper");//设置注册中心的协议类型 registryConfig.setAddress("39.106.6.295:2181"); return registryConfig; } //协议和端口 @Bean public ProtocolConfig protocolConfig() { ProtocolConfig protocolConfig = new ProtocolConfig(); protocolConfig.setName("dubbo"); protocolConfig.setPort(20888); return protocolConfig; } /* @Bean public ProviderConfig providerConfig(){ ProviderConfig providerConfig=new ProviderConfig(); providerConfig.setTimeout(6000000); return providerConfig; }*/ //指定发布的服务,通过扫描dubbo的注解就可以实现 }
相关服务代码:
import com.alibaba.dubbo.config.annotation.Service; import com.qianfeng.p2p.user.mapper.UserMaper; import com.qianfeng.p2p.user.pojo.User; import com.qianfeng.p2p.user.service.UserService; import org.springframework.beans.factory.annotation.Autowired; /** * Create by Administrator on 2018/12/21 23:07 */ @Service public class UserServiceImpl implements UserService { @Autowired private UserMaper userMapper; @Override public void addUser(User user)throws Exception { System.out.println("执行了"); //插入数据库 userMapper.addUser(user); } }
服务消费者:
import com.alibaba.dubbo.config.ApplicationConfig; import com.alibaba.dubbo.config.RegistryConfig; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * Create by Administrator on 2018/12/23 13:12 */ @Configuration public class UserControllerConfig { //程序的名字 @Bean public ApplicationConfig applicationConfig() { ApplicationConfig applicationConfig = new ApplicationConfig(); applicationConfig.setName("usercontroller"); return applicationConfig; } //注册中心 @Bean public RegistryConfig registryConfig() { RegistryConfig registryConfig = new RegistryConfig(); registryConfig.setProtocol("zookeeper"); registryConfig.setAddress("39.106.6.295:2181"); return registryConfig; } //引用服务 }
相关消费者代码:
import com.alibaba.dubbo.config.annotation.Reference; import com.qianfeng.p2p.commons.curator.redis.client.RedisclientInterface; import com.qianfeng.p2p.commons.curator.shiro.utils.PasswordUtils; import com.qianfeng.p2p.commons.curator.shiro.utils.StringUtils; import com.qianfeng.p2p.user.pojo.User; import com.qianfeng.p2p.user.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.BindingResult; import org.springframework.validation.FieldError; import org.springframework.validation.ObjectError; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import redis.clients.jedis.Jedis; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import java.util.Date; import java.util.List; /** * Create by Administrator on 2018/12/22 8:56 */ @RestController @RequestMapping("/user") public class UserController { @Autowired private RedisclientInterface redisClientInterface; @Reference//相当于 xml配置文件中的<dubbo:reference interface="xxxxx" id="userService"> 使用的是默认的注册中心等信息 private UserService userService;