dubbo案例

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>
 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值