springcloud快速入门

一、项目思路

  1. 使用idea工具创建一个maven空项目,删除不需要的src目录等东西,用来做父项目,只剩下pom.xml文件
  2. 在父项目中依次创建三个模块module,分别为eruekaservice、provide、consumer三个子项目(springboot项目)。
  3. 在erueka中添加配置信息、在启动类上添加@EnableEurekaServer注解。
  4. 在provide中添加配置信息、在启动类上添加@EnableEurekaClient注解(consumer的步骤相同)。
  5. 在provide子项目中创建entity实体类、DAO层、service层、controller层,此处使用mybatis连接数据库、Druid连接池来连接MySQL(DataSource配置略)。
  6. 在consumer子项目中创建controller层,使用restTemplate来访问provide中的api(消费者controller的接口)。
  7. 项目运行顺序,erueka>provide>comsumer。

二、实现步骤

1、创建maven空项目

springcloud快速入门

删除不需要的目录和文件

springcloud快速入门

2、创建erueka-service

springcloud快速入门

选择需要导入的模块(依赖)

java;gutter:true; 4.0.0 com.yiblue eureka-server 0.0.1-SNAPSHOT eureka-server eureka-server</p> <pre><code> 1.8 UTF-8 UTF-8 2.3.7.RELEASE Hoxton.SR9 org.springframework.cloud spring-cloud-starter-netflix-eureka-server org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import org.springframework.boot spring-boot-dependencies ${spring-boot.version} pom import //编译插件 org.apache.maven.plugins maven-compiler-plugin 3.8.1 1.8 1.8 UTF-8 //maven插件 org.springframework.boot spring-boot-maven-plugin 2.3.7.RELEASE com.yiblue.eurekaserver.EurekaServerApplication repackage repackage </code></pre> <pre><code> 修改配置文件application.yml ;gutter:true;
server:
port: 8080
spring:
application:
name: eureka-server
eureka:
instance:
hostname: localhost
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

在启动类EurekaServerApplication 上添加注解:@EnableEurekaServer

java;gutter:true; @SpringBootApplication @EnableEurekaServer public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }</p> <pre><code> 3、创建provider项目(与erueka一样,这省略) pom.xml依赖导入 ;gutter:true;
4.0.0
com.yiblue
provider-8001
0.0.1-SNAPSHOT
provider-8001
provider-8001

1.8
UTF-8
UTF-8
2.3.7.RELEASE
Hoxton.SR9

org.springframework.cloud
spring-cloud-starter-netflix-eureka-client

org.springframework.boot
spring-boot-starter-web

org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.4

org.springframework.boot
spring-boot-devtools
runtime
true

mysql
mysql-connector-java
runtime

org.projectlombok
lombok
true

org.springframework.boot
spring-boot-starter-test
test

org.junit.vintage
junit-vintage-engine

com.alibaba
druid
1.1.17

org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import

org.springframework.boot
spring-boot-dependencies
${spring-boot.version}
pom
import

org.apache.maven.plugins
maven-compiler-plugin
3.8.1

1.8
1.8
UTF-8

org.springframework.boot
spring-boot-maven-plugin
2.3.7.RELEASE

com.yiblue.provider8001.Provider8001Application

repackage

repackage

application.yml修改配置(provider),配置mybatis连接MySQL信息

spring:  datasource:    type: com.alibaba.druid.pool.DruidDataSource    driver-class-name: com.mysql.cj.jdbc.Driver    url: jdbc:mysql://localhost:3306/shiro?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8    username: caidongji    password: abc123  application:    name: provider-8001eureka:  client:    service-url:      defaultZone: http://localhost:8080/eureka/server:  port: 8001mybatis:  type-aliases-package: com.yiblue.provider8001.entity  mapper-locations: classpath:mappers/*xml

在启动类Provider8001Application上添加注解@EnableEurekaClient

java;gutter:true; @SpringBootApplication @EnableEurekaClient public class Provider8001Application { public static void main(String[] args) { SpringApplication.run(Provider8001Application.class, args); } }</p> <pre><code> 编写实体类 ;gutter:true;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ShiroUser {
private Integer uid;
private String uname;
private String password;
private String datasource;
}

编写接口(这里省略dao,合并到service中了)

java;gutter:true; @Mapper @Repository public interface ShiroUserService { @Select("select * from usershiro") public List selectAll();</p> <pre><code>@Select("select * from usershiro where uname=#{uname}") public ShiroUser selectOne(String uname); @Select("insert into usershiro (uname,password,datasource) values (#{uname},#{password},#{datasource})") void insertOne(ShiroUser shiroUser); @Select("delete from usershiro where uname=#{uname}") void deleteOne(String uname); </code></pre> <p>}</p> <pre><code> 编写controller ;gutter:true;
@RestController
public class ShiroUserController {
@Autowired
ShiroUserService shiroUserService;

@GetMapping("/getAll")
public List getAll(){
return shiroUserService.selectAll();
}
@GetMapping("/getOne")
public ShiroUser getOne(String uname){ return shiroUserService.selectOne(uname);}
}

4、创建comsumer项目(与erueka一样,这省略)

配置依赖,pom.xml

java;gutter:true; 4.0.0 com.yiblue eureka-server 0.0.1-SNAPSHOT eureka-server eureka-server</p> <pre><code> 1.8 UTF-8 UTF-8 2.3.7.RELEASE Hoxton.SR9 org.springframework.cloud spring-cloud-starter-netflix-eureka-server org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import org.springframework.boot spring-boot-dependencies ${spring-boot.version} pom import org.apache.maven.plugins maven-compiler-plugin 3.8.1 1.8 1.8 UTF-8 org.springframework.boot spring-boot-maven-plugin 2.3.7.RELEASE com.yiblue.eurekaserver.EurekaServerApplication repackage repackage </code></pre> <pre><code> 修改application.yml文件 ;gutter:true;
server:
port: 8080
spring:
application:
name: eureka-server
eureka:
instance:
hostname: localhost
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

在启动类Consumer8002Application上添加注解

java;gutter:true; @SpringBootApplication @EnableEurekaClient public class Consumer8002Application { public static void main(String[] args) { SpringApplication.run(Consumer8002Application.class, args); } }</p> <pre><code> spring不会自动装配restTemplate,需要配置类注入容器中 ;gutter:true;
@Configuration
public class restTemplateconfig {

@Bean
// @LoadBalanced
RestTemplate restTemplate(){ return new RestTemplate();}
}

创建controller类,调用提供者的api

java;gutter:true; @RestController public class ShiroUserController { @Resource RestTemplate restTemplate;</p> <pre><code>@GetMapping("/findAll") public List findAll(){ return restTemplate.getForObject("http://localhost:8001/getAll", List.class); } </code></pre> <p>}

5、项目运行顺序:erueka>provider>consumer

在浏览器中访问:localhost:8002/findAll

6、end

Original: https://www.cnblogs.com/yiblue/p/16726914.html
Author: 一个不会玩的狗子
Title: springcloud快速入门

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/621620/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Mybatis系列全解(八):Mybatis的9大动态SQL标签你知道几个?提前致女神!

    封面:洛小汐作者:潘潘 2021年,仰望天空,脚踏实地。 这算是春节后首篇 Mybatis 文了~跨了个年感觉写了有半个世纪 … 借着女神节 ヾ(◍°∇°◍)ノ゙提前祝…

    Java 2023年6月13日
    069
  • 分类数据展示功能

    代码实现 后台代码实现 BaseServlet类: 将对象序列化为json方法进行抽取 CategoryServlet类: CategoryService接口: CategoryS…

    Java 2023年6月6日
    0167
  • Windows安装使用Chocolatey 包软件管理(类似 rpm , yum, brew , apt-get 包管理器工具)

    Windows也能像Linux或者Mac那样命令行安装管理软件了,,,真的太方便了 *下载安装 使用window powershell 用管理员运行 Set-ExecutionPo…

    Java 2023年6月15日
    092
  • Linux具体目录结构

    Linux具体目录结构 root : 该目录为系统管理员目录,root是具有超级权限的用户。 bin ->usr/bin : 存放系统预装的可执行程序,这里存放的可执行文件可…

    Java 2023年6月9日
    091
  • 「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之EXCEL数据导出(十三)

    基于Vue和Quasar的前端SPA项目实战之数据导出(十三) 回顾 通过之前一篇文章基于Vue和Quasar的前端SPA项目实战之数据导入(九)的介绍,通过配置的方式可以零代码实…

    Java 2023年6月6日
    086
  • 有n步台阶,一次只能上1步或2步,共有多少种走法

    1 public class steps { 2 public int js(int n) { 3 int one = 2; //初始化为第三级台阶最后跨一步的走法 4 int t…

    Java 2023年6月9日
    077
  • [JVM]逃逸分析

    JVM的内存分配策略 首先回顾一下 JVM的内存分配策略。 JVM的内存包括方法区、堆、虚拟机栈、本地方法栈、程序计数器。一般情况下JVM运行时的数据都是存在栈和堆上的。栈用来存放…

    Java 2023年6月5日
    086
  • Java truelicense 实现License授权许可和验证

    文章目录前言一、使用场景以及truelicense是什么二、原理三、使用Keytool命令生成密钥对四、实现代码 – 证书生成五、测试 – 证书生成六、代码…

    Java 2023年5月29日
    0107
  • 《SpringBoot官网文档:2.1.5》

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月6日
    055
  • SpringDataJpa学习

    # SpringBoot Jdbc JPAJPA是Java Persistence API的简称,&#x4E2…

    Java 2023年5月30日
    069
  • Java中循环体 标记的用法

    break 的作用 循环结构中使用break,直接结束当前循环体,跳出当前循环。 用于switch或者是循环语句中。 单用break 只跳出当前循环,如果使用标记,可以跳出其他外层…

    Java 2023年6月8日
    073
  • CentOS7系统配置国内yum源和epel源

    1.备份原文件 首先进入 /etc/yum.repos.d/目录下,新建一个repo_bak目录,用于保存系统中原来的repo文件 2.在CentOS中配置使用网易和阿里的开源镜像…

    Java 2023年6月13日
    085
  • java~Map集合整理

    Map图 HashMap 是 Java Collection Framework 的重要成员,也是Map族(如下图所示)中我们最为常用的一种。不过遗憾的是,HashMap是无序的,…

    Java 2023年5月29日
    077
  • 开发当中curl简单使用

    curl是linux上可以发送http请求的命令。当然Postman是一个很好的接口调用管理工具,但在验证一个linux服务器调用另外一个linux服务器API是否可用的场景下,非…

    Java 2023年6月14日
    080
  • 网络划分和各层协议以及webservice 浅谈

    最近在公司做一些和其他外部系统接口调用的工作,遇到一些网络传输的问题,趁周末的时间记录、整理一下。 提到网络我们不得不提网络的分层架构:我们通常听到 网络七层架构/五层架构/四层架…

    Java 2023年6月7日
    089
  • Java连载153-可变参数、多线程状态图

    一、可变参数 可变参数顾名思义就是,编写一个函数的时候,可以传入一个或者多个参数 实际原理:根据传入的参数类型以及个数,创建一个数组,用于存储这些数据,在函数中调用的时候,也可以使…

    Java 2023年6月13日
    097
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球