dubbo-admin
链接:https://pan.baidu.com/s/1VXepP2qgScOUsQRH2QWx_A
提取码:fe2t
调用进程链:
meeting-----》user-------》payservice
-- C:\Users\songlk\Documents\Tencent Files\FileRecv\
CREATE TABLE `meetingpub` (
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT '主键',
`pcode` varchar(32) NOT NULL,
`ptime` varchar(32) NOT NULL,
`tname` varchar(64) NOT NULL,
`ptitle` varchar(64) NOT NULL,
`zone` varchar(64) NOT NULL,
`remark` varchar(64) NOT NULL,
`uid` int(64) NOT NULL,
`createdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会议表';
CREATE TABLE `user` (
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(32) NOT NULL,
`email` varchar(32) NOT NULL,
`telephone` varchar(64) NOT NULL,
`province` varchar(64) NOT NULL,
`city` varchar(64) NOT NULL,
`zone` varchar(64) NOT NULL,
`rid` int(64) NOT NULL,
`wid` int(32) NOT NULL,
`status` smallint(32) NOT NULL,
`createdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';
--------------------------------------------------------
api
package com.songlk.pojo;
import lombok.Data;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
@Entity
@Table(name = "meetingpub")
@Data
public class Meetingpub implements Serializable {
/*主键ID*/
@Id
private Integer id;
/* 会议编号(按规则生成)*/
private String pcode;
/*会议召开时间*/
private String ptime;
/*会议类别*/
private String tname;
/*会议标题*/
private String ptitle;
/*会议区域*/
private String zone;
/*备注*/
private String remark;
/*创建时间*/
private Date createdate;
/*状态*/
private Short status;
/*关联用户 User[id]*/
private Integer uid;
/*关联的用户对象*/
//一对一映射
// @OneToOne(optional = true, cascade = CascadeType.ALL)
// @JoinColumn(name = "uid", unique = true)
// @OneToMany(mappedBy = "meetingpub")
// private User user;
@OneToOne(cascade = {CascadeType.PERSIST,CascadeType.REMOVE})
@JoinColumn(name="id",referencedColumnName = "id")
private User user;
}
---
package com.songlk.pojo;
//import jdk.nashorn.internal.ir.annotations.Immutable;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
//import org.springframework.boot.autoconfigure.domain.EntityScan;
//import javax.persistence.*;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
@Entity
@Table(name = "user")
@Data
@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler" })
public class User implements Serializable{
/*主键ID*/
@Id
private Integer id;
/*姓名*/
private String name;
/*邮箱*/
private String email;
private String telephone;
private String province;
private String city;
private String zone;
private Integer rid;
private Short status;
private Date createdate;
private Integer wid;
}
---
package com.songlk.service;
import com.songlk.pojo.Meetingpub;
public interface MeetingpubService {
/**
* 根据会议编号 查询会议信息
*/
Meetingpub selectByPcode(String pcode);
}
--
package com.songlk.service;
import com.songlk.pojo.User;
public interface UserService {
/**
* TODO 根据用户ID查询用户信息
* @param id
* @return
*/
User selectByPrimaryKey(Integer id);
}
---
package com.songlk.service.pay;
public interface PayService {
/**
* 根据帐户ID查询帐户的余额
* java 金额:
* long 123.12 --> 12312
* Decimal
* double
*/
public String account(Integer uid);
}
--
package com.songlk.utils;
import lombok.Data;
import java.io.Serializable;
@Data
public class ResultVO<T> implements Serializable {
private static final long serialVersionUID = -8349181922768084604L;
/** 错误码. */
private Integer code;
public static long getSerialVersionUID() {
return serialVersionUID;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
/** 提示信息. */
private String msg;
/* 具体内容. **/
private T data;
@Override
public String toString() {
return super.toString();
}
}
---
package com.songlk.utils;
public class ResultVOUtil {
public static ResultVO success(Object object){
ResultVO resultVO = new ResultVO();
resultVO.setData(object);
resultVO.setCode(0);
resultVO.setMsg("成功");
return resultVO;
}
public static ResultVO success(){
return success(null);
}
public static ResultVO error(Integer code,String msg){
ResultVO resultVO = new ResultVO();
resultVO.setCode(code);
resultVO.setMsg(msg);
return resultVO;
}
}
----
package com.songlk;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@Slf4j
public class ApiApplication {
public static void main(String[] args) {
SpringApplication.run(ApiApplication.class, args);
log.info("-----main start");
}
}
---
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.songlk</groupId>
<artifactId>api</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>api</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>RELEASE</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
------------------
meeting
---------------
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.songlk</groupId>
<artifactId>meeting</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>meeting</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- spring boot 整合dubbo
导入zookeeper-3.4.9.jar 同时还将curator-client.jar相关导入
-->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
<!-- springmvc + tomcat + log -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mybatis+spring mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<!--jpa-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- alibaba druid 数据源连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<!-- thymeleaf 模版引擎-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- 支持非严格语法的neko -->
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.22</version>
</dependency>
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<!-- 测试-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.songlk</groupId>
<artifactId>api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
---
package com.songlk.controller;
import com.songlk.pojo.Meetingpub;
import com.songlk.service.MeetingpubService;
import com.songlk.utils.ResultVO;
import com.songlk.utils.ResultVOUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@Autowired
private MeetingpubService meetingpubService;
// http://10.130.24.30:8082/test?number=222
@GetMapping("/test")
public ResultVO<Meetingpub> selectMeeting(String number){
System.out.println("----selectMeeting api");
Meetingpub meetingpub= meetingpubService.selectByPcode(number);
return ResultVOUtil.success(meetingpub);
}
}
--
package com.songlk.service.impl;
import com.alibaba.dubbo.config.annotation.Reference;
import com.songlk.pojo.Meetingpub;
import com.songlk.pojo.User;
import com.songlk.repository.MeetingRepository;
import com.songlk.service.MeetingpubService;
import com.songlk.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class MeetingpubServiceImpl implements MeetingpubService {
@Autowired
MeetingRepository meetingRepository;
@Reference(check = false) //注解 注册中心引用服务
private UserService userService;
/**
* 根据会议编号 查询会议信息
*
* @param pcode
*/
@Override
public Meetingpub selectByPcode(String pcode) {
//查询数据库
Meetingpub meetingpub= meetingRepository.findMeetingpubByPcode(pcode);
//调用服务完成服务消费功能(boot-user-sevice)
System.out.println("----"+meetingpub.getUid());
User user=userService.selectByPrimaryKey(meetingpub.getUid());
System.out.println("----"+user.toString());
meetingpub.setUser(user);
System.out.println("---设置了user "+user);
return meetingpub;
}
}
---
package com.songlk.repository;
import com.songlk.pojo.Meetingpub;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface MeetingRepository extends JpaRepository<Meetingpub, Integer> {
@Override
Meetingpub getOne(Integer integer);
Meetingpub findMeetingpubByPcode(String pcode);
}
---
package com.songlk;
import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableDubbo
public class MeetingApplication {
public static void main(String[] args) {
SpringApplication.run(MeetingApplication.class, args);
System.out.println("------meeting over");
}
}
---
server.port=8082
#server.servlet.context-path=/
#dubbo
dubbo.application.name=dubbo-meeting
dubbo.registry.address=zookeeper://192.168.198.200:2181?backup=192.168.198.201:2181,192.168.198.202:2181
#dubbo.registry.port=20882
dubbo.protocol.name=dubbo
dubbo.protocol.port=20882
#sql
spring.application.name=meetingClient
spring.datasource.url=jdbc:mysql://10.130.24.111:3306/springboot_demo?characterEncoding=utf8
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=user
spring.datasource.password=123456
spring.jpa.show-sql=true
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
#spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.database=mysql
########################## druid配置 ##########################
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
##最大活跃数
#spring.datasource.maxActive=20
##初始化数量
#spring.datasource.initialSize=5
##最小活跃数
#spring.datasource.minIdle=5
##配置超市等待时间
#spring.datasource.maxWait=60000
##配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
#spring.datasource.timeBetweenEvictionRunsMillis=60000
##配置一个连接在池中最小生存的时间,单位是毫秒
#spring.datasource.minEvictableIdleTimeMillis=300000
#spring.datasource.validationQuery=SELECT 1
#spring.datasource.testWhileIdle=true
#spring.datasource.testOnBorrow=false
#spring.datasource.exceptionSorter=true
#spring.datasource.testOnReturn=false
##打开PSCache,并且指定每个连接上PSCache的大小
#spring.datasource.poolPreparedStatements=true
#spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
##配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
#spring.datasource.filters=stat,wall,log4j
##通过connectProperties属性来打开mergeSql功能;慢SQL记录
#spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
##合并多个DruidDataSource的监控数据
#spring.datasource.useGlobalDataSourceStat=true
---
-------------------------
user
------------------------
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.songlk</groupId>
<artifactId>user</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>user</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--dubbo-->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
<!--jpa-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- alibaba druid 数据源连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.songlk</groupId>
<artifactId>api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
-------
package com.songlk.controller;
import com.songlk.pojo.Meetingpub;
import com.songlk.pojo.User;
import com.songlk.service.UserService;
import com.songlk.utils.ResultVO;
import com.songlk.utils.ResultVOUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
//
@Controller
@RequestMapping("user")
//@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/test2")
public ResultVO<Meetingpub> selectMeeting(){
Meetingpub meetingpub=new Meetingpub();
return ResultVOUtil.success(meetingpub);
}
@ResponseBody
@RequestMapping(value ="{id}",method = RequestMethod.GET) // user/1
public ResultVO<User> selectById(@PathVariable("id")final Integer id ){
User user=userService.selectByPrimaryKey(id);
return ResultVOUtil.success(user);
}
}
---
package com.songlk.dao;
import com.songlk.pojo.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.Optional;
@Repository
public interface UserRepository extends JpaRepository<User,Integer> {
User getById(Integer id);
}
---
package com.songlk.service.impl;
import com.alibaba.dubbo.config.annotation.Reference;
import com.songlk.dao.UserRepository;
import com.songlk.pojo.User;
import com.songlk.service.UserService;
import com.songlk.service.pay.PayService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Slf4j
@Service
@com.alibaba.dubbo.config.annotation.Service //暴露服务(服务提供者)
public class UserServiceImpl implements UserService {
@Reference(check = false,loadbalance = "roundRobin")
private PayService payService;
@Autowired
private UserRepository userRepository;
@Override
public User selectByPrimaryKey(Integer id) {
System.out.println("----selectByPrimaryKey("+id+")");
User user=userRepository.getById(id);//获取新的
String accountInfo=payService.account(id);
System.out.println("---调用远程服务,该用户余额"+accountInfo);
user.setName(accountInfo);
return user;
}
}
---
package com.songlk;
import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableDubbo
public class UserApplication {
public static void main(String[] args)
{
SpringApplication.run(UserApplication.class, args);
System.out.println("-----user provider started");
}
}
---
server.port=8081
spring.application.name=meetingClient
spring.datasource.url=jdbc:mysql://10.130.24.111:3306/springboot_demo?characterEncoding=utf8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=user
spring.datasource.password=123456
spring.jpa.show-sql=true
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
#spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.database=mysql
########################## druid配置 ##########################
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#dubbo
dubbo.application.name=dubbo-user
dubbo.registry.address=zookeeper://192.168.198.200:2181?backup=192.168.198.201:2181,192.168.198.202:2181
#dubbo.registry.port=20882
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
---
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.songlk</groupId>
<artifactId>user</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>user</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--dubbo-->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
<!--jpa-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- alibaba druid 数据源连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.songlk</groupId>
<artifactId>api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
---------------------------
pay
--------------------------
package com.songlk.controller;
import com.songlk.pojo.Meetingpub;
import com.songlk.service.pay.PayService;
import com.songlk.utils.ResultVO;
import com.songlk.utils.ResultVOUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
public class PayController {
@Autowired
private PayService payService;
@ResponseBody
@RequestMapping("account/{uid}") //pay/account/{uid}
public String account(@PathVariable("uid")Integer uid){
return payService.account(uid);
}
@GetMapping("/test2")
public ResultVO<Meetingpub> selectMeeting(){
Meetingpub meetingpub=new Meetingpub();
return ResultVOUtil.success(meetingpub);
}
}
---
package com.songlk.service.impl;
import com.songlk.service.pay.PayService;
import org.springframework.stereotype.Service;
@Service
@com.alibaba.dubbo.config.annotation.Service //暴露服务(服务提供者)
class PayServiceImpl implements PayService {
@Override
public String account(Integer uid) {
System.out.println("-----service_payservice"+uid);
return uid+"(余额是:123456元)";
}
// /**
// * 根据帐户ID查询帐户的余额
// * java 金额:
// * long 123.12 --> 12312
// * Decimal
// * double
// *
// * @param uid
// */
// @Override
// public String account(Integer uid) {
// return uid+":帐户余额是:1238878元";
// }
}
------
package com.songlk;
import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableDubbo
public class PayApplication {
public static void main(String[] args) {
SpringApplication.run(PayApplication.class, args);
System.out.println("---payService over");
}
}
----
server.port=8083
spring.application.name=meetingClient
spring.datasource.url=jdbc:mysql://10.130.24.111:3306/springboot_demo?characterEncoding=utf8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=user
spring.datasource.password=123456
spring.jpa.show-sql=true
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
#spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.database=mysql
########################## druid配置 ##########################
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
dubbo.application.name=payService
dubbo.registry.address=zookeeper://192.168.198.200:2181?backup=192.168.198.201:2181,192.168.198.202:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20883
-----
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.songlk</groupId>
<artifactId>pay</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>pay</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--dubbo-->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
<!--jpa-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- alibaba druid 数据源连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.songlk</groupId>
<artifactId>api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>