用的springboot及springcloud版本都是当前官网最新,版本对应关系可官网查看
- 所讲代码仓库地址:https://gitee.com/raoyuuuu/springcloud-demo
- 父工程-parent,管理依赖
- 子项目-注册中心eureka
- 子项目-服务提供者provider
- 子项目-服务消费者consumer
- provider工程实现查询
- 实现feign:consumer通过feign调用provider方法,实现查询
- 实现gateway:consumer通过网关调用provider方法,实现查询
parent工程的意义:在服务越来越多的情况下,起到统一依赖版本的作用,不用每个服务都去改
具体看—> maven项目pom.xml中parent标签的使用
创建一个普通的maven项目即可
pom依赖
1.3、创建provider工程 1.3.1、创建springboot项目 1.3.2、pom依赖:这边有些依赖就可以引用父工程中的依赖了4.0.0 org.springframework.boot spring-boot-starter-parent 2.5.5 com.example cloud-parent 0.0.1-SNAPSHOT cloud-parent Demo project for Spring Boot pom 1.8 org.springframework.cloud spring-cloud-dependencies 2020.0.3 pom import org.mybatis.spring.boot mybatis-spring-boot-starter 2.2.0 mysql mysql-connector-java 8.0.15 com.alibaba druid 1.2.5 junit junit 4.13.2 org.projectlombok lombok 1.18.6 log4j log4j 1.2.17 ch.qos.logback logback-core 1.2.6
1.3.3、application配置:配置数据库等4.0.0 com.example cloud-parent 0.0.1-SNAPSHOT com.example cloud-provider 0.0.1-SNAPSHOT cloud-provider Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test mysql mysql-connector-java com.alibaba druid ch.qos.logback logback-core org.mybatis.spring.boot mybatis-spring-boot-starter org.springframework.boot spring-boot-starter-jetty org.projectlombok lombok org.springframework.boot spring-boot-maven-plugin
server:
port: 8001
mybatis:
type-aliases-package: com.example.entity
mapper-locations: classpath:mapper/*.xml
configuration:
# 开启驼峰
map-underscore-to-camel-case: true
spring:
application:
name: cloud-provider
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://localhost:3306/feather?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
数据库
CREATE TABLE `dept` ( `deptno` bigint NOT NULL AUTO_INCREMENT, `dname` varchar(32) DEFAULT NULL, `db_source` varchar(32) DEFAULT NULL, PRIMARY KEY (`deptno`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb3;1.3.4、实体类Dept
@Data
public class Dept implements Serializable {
private Integer deptno;
private String dname;
private String db_source;
}
1.3.5、DeptMapper
@Mapper
public interface DeptMapper {
List list();
}
1.3.6、DeptMapper.xml
1.3.7、DeptServiceselect * from dept where deptno = #{no}
public interface DeptService {
List list();
}
1.3.8、DeptServiceImpl
@Service
public class DeptServiceImpl implements DeptService {
@Autowired
private DeptMapper deptMapper;
@Override
public List list() {
return deptMapper.list();
}
}
1.3.9、DeptController
@RestController
@RequestMapping("dept")
public class DeptController {
@Autowired
private DeptService deptService;
@GetMapping("list")
public List list(){
return deptService.list();
}
}
1.3.10、CloudProviderApplication
@SpringBootApplication
public class CloudProviderApplication {
public static void main(String[] args) {
SpringApplication.run(CloudProviderApplication.class, args);
}
}
启动项目
调用接口 http://localhost:8001/dept/list
到目前为止,provider就实现了,接下来实现eureka



