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)

大家都在看

  • [学习笔记] Java修饰符

    Java当中的修饰符可在定义类、方法或变量时放在语句前面作修饰。根据修饰符的用途,可将其分为访问修饰符和非访问修饰符。 访问控制修饰符 访问控制修饰符用于指明对类、方法/构造方法的…

    Java 2023年6月5日
    085
  • 这个开源组织里的项目都是精品(第二弹)

    前言 之前我写过一篇文章——《这个开源组织里的项目都是精品》,里面列举了Dromara开源组织的4个java项目,每一个都轻量且实用,受到了很多小伙伴的喜爱。Dromara这个开源…

    Java 2023年6月8日
    0108
  • Redis LRU源码分析

    LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是”如果数据最近被访问过,那么将来被访问的几率也更高&…

    Java 2023年6月6日
    0109
  • 给定class对象返回该类的实例

    今天分享给大家一个实用的开发技巧, 创建一个返回值为泛型的对象构建函数, 要求是传入返回值类的 class 对象. 例如: 平时我们开发接口的时候发现很多响应类里面基本都会有cod…

    Java 2023年6月7日
    0116
  • join为啥会阻塞主线程?

    join使用 上篇我们介绍了CountDownLatch,顺便说到了Thread中的join方法! 如上代码所示:在JoinTest开启一个线程A,threadA调用join()方…

    Java 2023年6月8日
    075
  • 【Java分享客栈】SpringBoot线程池参数搜一堆资料还是不会配,我花一天测试换你此生明白。

    一、前言 首先说一句,如果比较忙顺路点进来的,可以先收藏,有时间或用到了再看也行;我相信很多人会有一个困惑,这个困惑和我之前一样,就是线程池这个玩意儿,感觉很高大上,用起来很fas…

    Java 2023年6月9日
    0117
  • JAXB java类与xml互转

    JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了…

    Java 2023年6月5日
    092
  • synchronized

    线程锁 1.1synchronized的认识 1.1.1synchronized的介绍 在多线程并发编程中,synchronized关键字是重量级锁的代名词。但是,随着JDK的发展…

    Java 2023年6月7日
    0100
  • 带你理解MST性质

    写在前面 最小生成树的引出 假设要在n个城市之间建立通信联络网,则连通n个城市需要n-1条线路。在这种情况下,我们自然需要考虑一个问题,如何在最节省经费的条件下建立这个网络?很自然…

    Java 2023年6月9日
    0112
  • MongoDB实现数组中重复数据删除

    这个功能真的是写死我了,对于MongoDB一点都不熟悉,本来想使用spring与MongoDB的融合mongoDBTemplate,发现压根不是web项目,懒得配置那些配置文件,就…

    Java 2023年6月8日
    0100
  • 搭建SpringCloud Alibaba鉴权中心服务(详细教程)

    鉴权中心服务 认识JWT json web token 是一个开放的标准 ,它定义了一个种紧凑的,自包含的方式,用于作为json对象在各方之间安全的传输信息 服务器鉴权完成之后 会…

    Java 2023年6月5日
    0106
  • JVM-垃圾回收机制

    引用计数法 可达性分析 Java 中常见的垃圾回收算法 标记-清除算法 复制算法 标记-整理算法 分代回收算法 内存分配机制 Minor GC 和 Full GC 垃圾收集器 在 …

    Java 2023年6月9日
    091
  • Stream.toList()和Collectors.toList()的性能比较

    昨天给大家介绍了Java 16中的Stream增强,可以直接通过toList()来转换成List。 主要涉及下面这几种转换方式: list.stream().toList(); l…

    Java 2023年6月9日
    099
  • 设计模式 — Template Method(模板方法)

    直接上代码、先按原来开发步骤、在重构到模式、即在现成代码间寻找变化点、在使用对应的设计模式! 按流程执行代码 import org.junit.Test; // 程序库开发人员 c…

    Java 2023年6月16日
    090
  • 1小时搭建全栈Web应用框架,支持二次开发,随时更新扩展

    现在越来越多的公司企业选择自主开发SaaS软件、OA工作流办公自动化体系、企业信息数据处理运用平台以及许多各种各样的业务流程管理系统。但如何选择一个合适好用的开发框架又成了他们的一…

    Java 2023年6月5日
    0100
  • SQL的执行流程

    1. SQL的语句结构 1.1 SQL92 语法 SELECT DISTINCT …,…,…(存在聚合函数) FROM …,…,… WHERE 多表的连接条…

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