- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章SpringCloud入门实验环境搭建由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
个人理解
所谓微服务是指每个模块都可以独立完成自己的核心业务,某一个模块的崩溃不影响其他模块的运行, 每个微服务有自己单独的一个数据库 每一个微小的服务组成了一个复杂的软件系统 。
微服务指的是服务的大小,关注的是完成一个具体的服务(医院的科室) 。
微服务架构是一种架构模式 ,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相 配合,为用户提供最终价值。一种将一个单一应用程序开发为一组小型服务的方法,每个服务都在其运行 的进程中。(整个医院) 。
优点
Springboot关注于更快的开发单体的微服务,而SpringCloud关注于全局服务的治理 。
Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署.
Spring 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 Spring Boot 风格进行再封装、屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包.
在idea中新建一个maven父工程在其pom配置对应依赖,以管理子类依赖的版本 。
<properties> <lombock.version>1.18.18</lombock.version> <log4j.version>1.2.17</log4j.version> </properties> <dependencyManagement> <dependencies> <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-eureka-client --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> <version>3.0.2</version> </dependency> <!--spring cloud 依赖包--> <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Hoxton.SR9</version> <type>pom</type> <scope>import</scope> </dependency> <!--spring boot 依赖包--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.3.5.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <!--数据库驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.22</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.21</version> </dependency> <!--springboot 启动器--><!-- <dependency>--><!-- <groupId>org.springframework.boot</groupId>--><!-- <artifactId>spring-boot-starter</artifactId>--><!-- <version>2.4.4</version>--><!-- </dependency>--> <!--JUnit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version> <scope>test</scope> </dependency> <!--lombock--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombock.version}</version> <scope>import</scope> </dependency> <!--log4j--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> </dependencies> </dependencyManagement>
创建名为db01的数据库,有一张表dept 。
其中只有一个实体类dept对应我们数据库中的表 。
public class Dept { private int deptnumber; private String dname; private String d_source; //对应属性的get和set方法}
导入依赖 。
<dependencies> <!--将api模块导入由此可使用Dept实体类--> <dependency> <groupId>org.example</groupId> <artifactId>springcloud-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> </dependencies>
配置配置文件和对应的操作类和接口 。
application.xml 。
server: port: 8081mybatis: type-aliases-package: pojo mapper-locations: classpath:Mybatis/mapper/*.xml config-location: classpath:Mybatis/mybatis-config.xmlspring: application: name: provider-name datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver username: root password: 123456 url: jdbc:mysql://localhost:3306/db01?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8
mapper-config.xml和Deptmapper.xml 。
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <settings> <setting name="cacheEnabled" value="true"/> </settings></configuration>
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.Dao.DeptDao"> <insert id="add" parameterType="Dept"> insert into dept(dname, d_source) values (#{dname},DATABASE()); </insert> <select id="queryByID" resultType="Dept" parameterType="Long"> select * from dept where deptnumber = #{id}; </select> <select id="queryAll" resultType="Dept"> select * from dept; </select></mapper>
对应的Dao,Controller,Service 。
@Mapperpublic interface DeptDao { boolean add(Dept dept); Dept queryByID(long id); List<Dept> queryAll();}
@Servicepublic class DeptImpl implements DeptService{ @Resource private DeptDao deptDao; public boolean add(Dept dept) { return deptDao.add(dept) ; } public Dept queryByID(long id) { System.out.println("deptimpl"+id); return deptDao.queryByID(id); } public List<Dept> queryAll() { return deptDao.queryAll(); }}
@RestControllerpublic class DeptController { @Autowired private DeptImpl deptimpl; @PostMapping("/dev/add") public boolean addDept(@RequestBody Dept dept){ System.out.println(dept); return deptimpl.add(dept); } @GetMapping("/dev/{id}") public Dept DeptqueryByID(@PathVariable("id") long id) { System.out.println("deptcontroller"+id); return deptimpl.queryByID(id); } @PostMapping("/dev/list") public List<Dept> DeptqueryAll() { return deptimpl.queryAll(); }
启动类 。
@SpringBootApplicationpublic class SApplication { public static void main(String[] args) { SpringApplication.run(SApplication.class,args); }}
导入依赖 。
<dependencies> <dependency> <groupId>org.example</groupId> <artifactId>springcloud-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
配置文件 。
server: port: 80
config类和controller 。
/*RestTemplate 是从 Spring3.0 开始支持的一个 HTTP 请求工具,它提供了常见的REST请求方案的模版,例如 GET 请求、POST 请求、PUT 请求、DELETE 请求以及一些通用的请求执行方法 exchange 以及 execute。*/@Configurationpublic class ConfigBean { @Bean public RestTemplate getRestTemplate() { return new RestTemplate(); }}
@RestControllerpublic class ConsumerController { @Autowired private RestTemplate template; private static final String url="http://localhost:8001"; @RequestMapping("/consumer/get/{id}") public Dept getByID(@PathVariable long id){ //请求的路径,请求返回的对象 Dept getEntity = template.getForObject(url + "/dev/" + id, Dept.class); return getEntity; } @RequestMapping("/consumer/add") public boolean add(String dname){ Dept dept = new Dept(); dept.setDname(dname); System.out.println(dept); //请求的路径,传递的参数,返回的对象 return template.postForObject(url+ "/dev/add",dept,Boolean.class); } @RequestMapping("/consumer/list") public List<Dept> list(){ //请求的路径,返回的对象 return template.postForObject(url+"/dev/list",void.class,List.class); }}
启动类及运行结果 。
debug-connect refuserd---debug-传参为null 。
@SpringBootApplicationpublic class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class,args); }}
1 如果父项目pom使用 。
<dependencyManagement><dependencies> ....</dependencies></dependencyManagement>
方式,则子项目pom不会自动使用父pom中的jar包, 如果需要使用,就要给出groupId和artifactId,无需给出version 。
使用是为了统一管理版本信息 。
在子工程中使用时,还是需要引入坐标的,但是不需要给出version 。
在我们项目顶层的POM文件中,元素.
通过它元素来管理jar包的版本, 。
让子项目中引用一个依赖而不用显示的列出版本号.
Maven会沿着父子层次向上找, 。
直到找到一个拥有dependencyManagement元素的项目, 。
然后它就会使用在这个dependencyManagement元素中指定的版本号.
使用@Mapper而不是@Repository 。
1、使用@mapper后,不需要在spring配置中设置扫描地址,通过mapper.xml里面的namespace属性对应相关的mapper类,spring将动态的生成Bean后注入到ServiceImpl中.
2、@repository则需要在Spring中配置扫描包地址,然后生成dao层的bean,之后被注入到ServiceImpl中 。
检查url端口号,是否写对,是否占用 。
在服务器端对应的参数上添加@RequestBody 。
@PostMapping("/dev/add") public boolean addDept(@RequestBody Dept dept){ System.out.println(dept); return deptimpl.add(dept); }
以上就是SpringCloud入门实验环境搭建的详细内容,更多关于SpringCloud 环境搭建的资料请关注我其它相关文章! 。
原文链接:https://juejin.cn/post/6949533826339700767#heading-2 。
最后此篇关于SpringCloud入门实验环境搭建的文章就讲到这里了,如果你想了解更多关于SpringCloud入门实验环境搭建的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
为了构建 CentOS 6.5 OSM 切片服务器,我正在寻找一些文档和/或教程。 我试过this one正如我在我的 previous post 中所说的那样但它适用于 Ubuntu 14.04,而
我正在寻找可用于集成任何源代码控制管理系统的通用 git 桥(如 git-svn、git-p4、git-tfs)模板。 如果没有这样的模板,至少有一些关于如何在 git 端集成基本操作的说明(对于其他
1、前言 redis在我们企业级开发中是很常见的,但是单个redis不能保证我们的稳定使用,所以我们要建立一个集群。 redis有两种高可用的方案: High availabilit
简介 前提条件: 确保本机已经安装 VS Code。 确保本机已安装 SSH client, 并且确保远程主机已安装 SSH server。 VSCode 已经安装了插件 C/
为什么要用ELK ELK实际上是三个工具,Elastricsearch + Logstash + Kibana,通过ELK,用来收集日志还有进行日志分析,最后通过可视化UI进行展示。一开始业务量比
在日常办公当中,经常会需要一个共享文件夹来存放一些大家共享的资料,为了保证文件数据的安全,最佳的方式是公司内部服务器搭建FTP服务器,然后分配多个用户给相应的人员。今天给大家分享FileZilla搭
最近由于业务需要,开始进行 Flutter 的研究,由于 Flutter 的环境搭建在官网上有些细节不是很清楚,笔者重新整理输出 1. 配置镜像 由于在国内访问 Flutter
目录 1. 安装go软件包 2. 配置系统变量 3. 安装git 4. 设置go代理 5. 下载gin框架 6. 创建项目 7.
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任
上篇文章给大家介绍了使用docker compose安装FastDfs文件服务器的实例详解 今天给大家介绍如何使用 docker compose 搭建 fastDFS文件服务器,内容详情如下所示:
目录 1.创建Maven 2.Maven目录和porm.xml配置 3.配置Tomcat服务器 1.创建Maven
laravel 官方提供 homestead 和 valet 作为本地开发环境,homestead 是一个官方预封装的 vagrant box,也就是一个虚拟机,但是跟 docker 比,它占用体积
这个tutorial显示了 Razor Pages 在 Asp.Net Core 2 中的实现。但是,当我运行 CLI 命令时: dotnet aspnet-codegenerator razorp
我创建了一个单独的类库项目来存储数据库上下文和模型类。在同一解决方案中,我创建了一个 ASP.NET MVC 项目并引用了类库项目,并在项目的 Web.config 文件中包含了数据库上下文的连接字符
关于代码托管,公司是基于Gitlab自建的,它功能全而强大,但是也比较重,我个人偏向于开源、小巧、轻便、实用,所以就排除了Github,在Gogs和Gitea中选者。Gogs在Github有38
目录 1、高可用简介 1.1 高可用整体架构 1.2 基于 QJM 的共享存储系统的数据同步机制分析 1.3 NameNode 主
Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。 在高并发连接的情况
对于我们的 ASP.NET Core 项目,我们使用包管理器控制台中的 Scaffold-DbContext 搭建现有数据库。 每次我们做脚手架时,上下文类与所有实体一起生成,它包含调用 option
我正在使用 .net 核心 2.0。我已经安装了以下 nuget 包:1: Microsoft.AspNetCore.All2: Microsoft.EntityFrameworkCore.Tools
我正在使用 NetBeans 及其 RAD 开发功能开发 JEE6 JSF 应用程序。我想使用脚手架来节省更新 Controller 和模型 View 的时间。 OneToMany 关联在 View
我是一名优秀的程序员,十分优秀!