SpringCloud系列:2.Spring Boot项目搭建

搭建SpringCloud项目,并实现自动化部署 前一阵子一直在忙着做项目,最近有空,把项目中用到的SpringBoot微服务相关架构再梳理一遍。 项目资源:https://github.com/sunroyi/SpringCloud 主要分为以下几步: (1)搭建SpringBootService,这里是各个微服务的业务逻辑。(这里搭建了2个Service,用来测试熔断) (2)搭建SpringBootEureka,用来发现服务。 (... 阅读详情

Spring Cloud以Spring Boot为基石,是Spring Boot框架的延续和扩展,所以在开始Spring Cloud微服务前,我们需要先了解Spring Boot框架,如果之前没有接触过Spring Boot,也是没有关系的,相信简单的了解后你就会使用。

一、什么是Spring Boot

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。Spring Boot框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

可以说Spring Boot并不是什么新的框架,它只是默认配置了很多框架的使用方式,对一切常用的组件进行整合,达到了自动配置,开箱即用,从而方便快速开发。

在使用上,Spring Boot通过提供一系列名称以spring-boot-starter开头的启动器帮助我们简化项目的依赖。比如,当我们在项目中添加了spring-boot-starter-web时,Spring Boot就自动将相关依赖,如spring-mvc、jackson-json、tomcat等引入,从而将项目变成一个Web项目。大家可以到这里(http://t.cn/Rn30Zr7)查看全部的Spring Boot启动器列表。以下是开发中常用的启动器:

二、搭建Spring Boot

搭建环境:jdk1.8(必须1.8或以上版本)、Spring Boot2.1.1.RELEASE(2.x版本与1.x版本有所不同)、maven3.5.3(没有版本要求)、mysql8.0.13(不同版本可能略有不同)

开发工具没有任何要求,自己熟悉的即可,这里我使用了Eclipse。

在eclipse中,选择新建项目,选择Spring Boot下的Spring Starter Project即可。

然后设置项目名和包名。

然后选择Spring Boot版本,选择2.x的版本,以及需要依赖的组件,这里选择了则pom文件里会自动引入,不选择也没有任何影响,后续需要可以再手动添加。

项目建成后,目录结构如下,其中SpringbootProjectApplication为项目的启动类,默认为Application.java,这里我进行了修改,右键选择Run As或者Debug As即可启动该项目,其中@SpringBootApplication声明这是一个Spring Boot项目,@ComponentScan扫描项目中的bean,如果程序代码均在启动类同包下,则不需要声明,@MapperScan声明mybatis的dao层的扫描路径,如果不引入mybatis,则不需要。

以下是pom文件,其中除了Spring Boot项目必须的spring-boot-starter-web外,还引入了mybatis组件(因为实际工作中常用mybatis,所以这里也引入了mybatis),mysql数据源以及druid连接池,此外,为了简化代码和开发,还引入了lombok插件——简化繁杂代码,swagger2API文档组件——方便接口调用测试,spring-boot-devtools热部署插件。

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<!-- 这里将项目的父项目设置为Spring Boot,所使用版本为2.1.1.RELEASE -->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.1.RELEASE</version>
		<relativePath />
	</parent>

	<!-- 这里设置本项目的groupId、artifactId和版本等信息 -->
	<groupId>com.yanger</groupId>
	<artifactId>user-server</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>user-server</name>
	<description>Demo project for SpringCloud</description>

	<properties>
		<!-- 定义项目所使用的编码为UTF-8 -->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<!-- 项目所用JDK 1.8,也可以使用低版本,但建议还是使用JDK 1.8以上版本 -->
		<java.version>1.8</java.version>
		<maven.compiler.source>${java.version}</maven.compiler.source>
		<maven.compiler.target>${java.version}</maven.compiler.target>
		<!-- 项目所使用第三方包的版本,统一在一个地方声明版本号,对项目可以进行统一管理,方便以后升级 -->
		<swagger.version>2.7.0</swagger.version>
		<mybatis.version>1.3.1</mybatis.version>
		<druid.version>1.0.28</druid.version>
		<mysql.version>8.0.13</mysql.version>
		<spring-cloud.version>Finchley.SR2</spring-cloud.version>
	</properties>

	<dependencies>

		<!-- 项目所用Spring Boot starters:web -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<!-- mybatis组件 -->
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>${mybatis.version}</version>
		</dependency>

		<!-- alibaba的druid数据库连接池 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>${druid.version}</version>
		</dependency>

		<!-- 数据库连接 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>

		<!-- lombok插件 -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>

		<!-- swagger2API文档支持 -->
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger2</artifactId>
			<version>${swagger.version}</version>
		</dependency>
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger-ui</artifactId>
			<version>${swagger.version}</version>
		</dependency>

		<!-- test依赖 -->
		<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-devtools</artifactId>
			<!-- optional=true,依赖不会传递 -->
			<optional>true</optional>
			<scope>true</scope>
		</dependency>

	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<fork>true</fork>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>

然后就是Spring Boot的配置文件,Spring Boot文件支持properties和yml两种格式,默认文件名称都是application,存放在resources目录中。项目默认生成的是application.properties,这里改用了application.yml。其中server.port为应用启动后所监听的端口,不配置默认就是8080端口。

# 应用启动后所监听的端口,可以不配置,默认就是8080端口
server:
  port: 10800

# 数据源的配置
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver #com.mysql.jdbc.Driver #8.0.13的驱动连接与旧版本有更改
    url: jdbc:mysql://localhost:3306/clouds?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT
    username: root
    password: 1234
    # 使用druid数据源
    type: com.alibaba.druid.pool.DruidDataSource
    
# mybatis配置,设置po数据库映射文件的路径,以及mapper的xml文件路径
mybatis:
  typeAliasesPackage: com.yanger.*.po
  mapperLocations: classpath*:mapper/**/*Dao.xml
  configuration:
    #打印mybatis的sql,方便开发
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    mapUnderscoreToCamelCase: true

# 配置日志输出级别,将Spring框架设置为INFO级别,而自己所编写的代码设置为DEBUG级别
logging:
  file: D:/code/cloud/log/springboot-project.log
  level:
    org:
      springframework: INFO
    com:
      yanger: DEBUG

自此,一个完整的Spring Boot项目就搭建完成了。另附上swagger的配置文件,使用则在Controller类上加上@Api注解即可,此外在方法上加上@ApiOperation可进行解释说明。user包为业务代码。user包为业务代码,包含了controller,service,dao,po实体,vo对象,功能为简单的增删改差,这里就不贴具体代码了,需要的可以去源码地址查看或者下载,项目源码地址:https://github.com/imyanger/springcloud-project/tree/master/p1-springboot。

然后启动项目,因为没有前台界面,可以访问swagger界面,输入网址:http://localhost:10800/swagger-ui.html,即可出现如下界面,可以对展示方法进行测试。

项目源码地址:https://github.com/imyanger/springcloud-project/tree/master/p1-springboot

使用Idea简单搭建springcloud项目 前言: 开发工具:IntelliJ IDEA 2020版 (Ultimate Edition) 框架:spring boot 、spring cloud 搭建一套spring cloud微服务系统,实现服务之间的调用。 需要搭建一个父工程springcloud-test,一个服务注册中心eureka-server,两个微服务cloud-client,cloud-provider。 两个微服务均注册到服务注册中心。 一.搭建父项目 2. 3. (1)删掉src目录 (2)定义pom.xml文件 阅读详情

相关推荐

搭建springcloud+nacos项目--IDEA

spirngcloud官网版本 pringcloudalibaba版本, nacos官网介绍 nacos官方项目介绍(是不是新项目,更新时间) pm.xml介绍

Tomorrow 1万+

spring-cloud教程一:创建spring boot

背景 想想,微服务这概念在当初刚从业时就听过,那时也只是停留在概念上,缺少技术支撑,或者说没有公认完美的技术支撑。docker的出现,给微服务提供了平台支持,spring cloud的出现给微服务提供全家桶式的解决方案,几乎成了微服务的代名词。微服务需要解决的问题太多太多,既然spring cloud号称是一站式的解决方案,对微服务中碰到...

weixin_34112181的博客 175

SpringCloud微服务实战系列:01让SpringCloud项目在你机器上运行起来

1. 这是一个spring微服务项目吗?为什么微服务很多组件、概念这里没涉及? 这是基于springcloud的微服务,最精简版, 只用了2个与微服务概念相关的服务治理组件,所有的微服务架构必须要有这2个组件。 gateway : 业务网关 nacos: 注册中心 2. yudao-demo 这个明显是java项目,为什么叫前端项目? 这里就是将前端源码编译后,直接放到springboot项目里,springboot内置了一个tomcat,这里整个 yudao-demo 项目就是几个tomca

zfj321的博客 1841

SpringBoot+SpringCloud微服务搭建全过程(一)

1. Spring Cloud就是微服务系统架构的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶。2. 在平时我们构建微服务的过程中需要做如服务发现注册、配置中心、负载均衡、断路器、数据监控等操作,而Spring Cloud 为我们提供了一套简易的编程模型,使我们能在 Spring Boot 的基础上轻松地实现微服务项目的构建。1. 简单来说微服务就是很小的服务,小到一个服务只对应一个单一的功能,只做一件事。

m0_37951794的博客 5961

Spring Cloud的介绍及项目搭建

SpringBoot与SpringCloud的关系与区别 1,SpringBoot :是一个快速开发框架,通过用maven依赖的继承方式,帮我们快速整合第三方框架,完全采用注解化(使用注解方式启动SpringMVC),简化XML配置,内置HTTP服务器(Tomcat,Jetty),最终以Java应用程序进行执行。 简化了spring的程序的搭建和开发。 2,SpringCloud:是一套目前完整的微服务框架,它是是一系列框架的有序集合。通过SpringBoot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终

ywn0601的博客 3753

SpringCloud 和 Spring boot常用注解总结:

SpringCloud 常用注解: @Controller 控制层,里面有多个连接 @Service 业务层,一般对于接口和实现 @Qualifier 如果一个接口有多个实现,那么注入时候加上唯一标示 @Repository 一般的dao层 @Autowired 自动注入依赖 @Resource bean的注入,同Autowired 有相同的功能。 说明: 共同点:@Resource和@Auto...

weixin_43748615的博客 1091

浅谈Spring Cloud与Spring Boot概念与关系

Spring boot简化了基于Spring的应用开发,通过少量的代码就能创建一个独立的,产品级别的Spring应用。Spring Boot为Spring平台及第三方库提供开箱即用的设置,这样你就可以有条不紊的开始,多数Spring应用只需要很少的Spring配置。Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式进行配置,从而使开发人员不再需要定义样板化的配置。

weixin_2630663675的博客 214

从零开始搭建springboot+springcloud+mybatis本地项目全过程

记录一个从零开始搭建一个springboot+springcloud+mybatis本地项目的demo的过程 IDE:IntelliJ Idea 2019.3 数据库:mysql 8.0.2.2 SpringBoot版本:2.2.0.RELEASE SpringCloud版本:Hoxton.RELEASE 一、创建一个新的Idea项目 打开Idea,单击New->File->Project,选择Maven,直接下一步 输入我们的项目名,我这里起名为pam,单击Finish完成创建 二、右键单

laozhang42的博客 6459

小白新手SpringCloud开发简单总结(二)-SpringBoot概念

前言 在小白新手SpringCloud开发简单总结(一)-SpringCloud概念中提到了SpringCloud是一个微服务治理框架。而SpringCloud中的每个服务是基于SpringBoot框架创建的。那么先看下SpringBoot的一些概念。 一 SpringBoot概念 1.基本概念的引入 在前面的小白新手web开发简单总结(十八)-阶段总结中在创建一个web应用的项目的时候,从最基本的一个maven工程,逐渐在这个基础上累加下面的功能,才得到一个完整的web应用: 1.配置web应用

nihaomabmt的专栏 2140

基于Spring Boot 2.0.2.RELEASE 的 Spring Cloud 速成指南 | 一. 基于IDEA的 Spring Cloud 项目搭建

一.Spring Cloud简介        Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务...

fight_的专栏 1262

基于SpringBoot 2.1.1正式版的SpringCloud的微服务实战项目搭建

基于springBoot2.1.1的SpringCloud微服务注册和路由网关负载均衡及拦截过滤实现.

Springboot面试题

什么是springboot 用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件) 创建独立的spring引用程序 main方法运行 嵌入的Tomcat 无需部署war文件 简化maven配置 ...

1069

OneNet平台MQTT连接避坑指南:C语言Token计算实战(附完整代码)

本文详细解析了OneNet平台MQTT连接中的Token计算机制,提供了C语言实现的完整代码和实战指南。通过HMAC算法和Base64编码,开发者可以高效生成安全凭证,避免常见连接问题,适用于物联网设备开发。

weixin_29193359的博客 460

Spring Boot 2+gRPC 学习系列2:搭建Spring Cloud +gRPC集群项目

本项目基于Spring Boot 2.0.5+yidongnan/grpc-spring-boot-starter 2.0.1.RELEASE+SpringCloud Finchley.SR1,通过2个grpc-eureka-server模拟Eureka集群,多个可横向弹性扩容的grpc-spring-cloud-provider负责提供gRPC服务,再用grpc-spring-cloud-co...

且炼时光 8118

电路仿真软件PSIM简介

PSIM的基本使用操作...

qq_55203246的博客 7177

【军标】《军用软件计价规范(试行)》和GJB 10162-2021《军用软件计价功能项识别方法》-费用标准解读系列37

2021年2月1日实施的《军用软件计价规范(试行)》(替代了2019年版本)以及2021年3月1日实施的《军用软件计价功能项识别方法》(GJB 10162-2021),是我们平时在军用软件造价咨询中进行软件规模度量、计价和审价的主要依据。《军用软件计价规范(试行)》(4号文)的附件1为《军用软件功能规模度量方法》,即4号文本身包含对软件规模测试的方法(功能点方法主要参考NESMA等国际标准)、规模度量过程、功能点计数和计算规则等相关说明。(四)软件研发费用=软件研发工作量x软件研发人月综合费率。

xiaosenyouli的博客 6120

项目 idea_idea构建 spring cloud项目入门

spring cloud项目构建入门技术选型spring cloud Hoxton.SR3spring boot 2.2.6.RELEASEeurekaopen feginjdk 8maven版本根据 spring cloud官网确定1、构建maven父工程idea 新建maven projectproject 命名修改pom属性删除src文件夹2、构建eureka注册中心maven搭建eurek...

weixin_42390234的博客 132

国内优秀MES开源框架

一套springboot 开源框架 代码标准规范化。 界面展示 演示地址 http://wangziyangmes.pzzd.xyz 用户名admin 密码123 系统管理 工艺管理 计划管理 物料管理 *用户管理* *工艺路线管理* 工单下达...

q707231019的博客 2万+

Spring cloud系列教程第二篇:支付项目父工程图文搭建

Spring cloud系列教程第二篇:支付项目父工程图文搭建 在讲解spring cloud相关的技术的时候,咱们就模拟订单支付这个流程来讲讲 在这个支付模块微服务搭建过程中,上面的这些技术,都会融入进来。老的会讲解(因为老的技术还有很多公司会使用到,谁也不知道下一个公司会用新的还是旧的,所以咱们新旧都学习),新的也会讲解。 上面各种技术都融入的话,每个技术使用一个微服务项目的话,整个项目大约30+个子工程。所以这里,我们就使用maven的父子管理。 本文是由凯哥(凯哥Java:kage.

凯哥Java的博客 483

【推荐100个unity插件之8】实现多人在线联机游戏——Mirror插件的使用介绍(附项目源码)

基于Mirror的Unity多人游戏开发指南 本文介绍了使用Mirror插件开发Unity多人游戏的基本流程。Mirror是Unity的高级网络API,替代了已废弃的UNet系统。文章详细讲解了如何导入Mirror插件,创建NetworkManager网络管理器,处理常见错误,以及创建玩家角色和出生点。 主要内容包括: 创建场景NetworkManager并配置必要组件 为玩家添加NetworkIdentity和NetworkTransform组件 设置玩家初始生成位置和生成方式 常见错误及解决方法 通过M

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1万+

A100 NVLink集群极致优化指南

《A100 NVLink集群通信优化指南》摘要:针对A100 80G SXM机型NVLink 3.0集群,提供硬件配置检查方法(nvidia-smi topo -m)和强制启用指令。重点介绍NCCL参数调优(算法选择、低延迟协议配置)、GPUDirect RDMA启用步骤,以及单机/多机场景下的通信模式选择。包含PyTorch all_reduce基准测试方法,并给出带宽异常排查方案(dmesg检查、NCCL缓存重置)。通过CUDA Graph通信重叠和混合精度优化,可实现90%+带宽利用率。附猿界算力监控

2401_89353317的博客 587

《SpringCloud超级入门》Spring Boot项目搭建步骤(超详细)《六》

目录 编写第一个 REST 接口 读取配置文件 profiles 多环境配置 热部署 actuator 监控 自定义 actuator 端点 统一异常处理 异步执行 随机端口 编译打包 在 Spring Tools 4 for Eclipse 中依次选择 File->New->MavenProject,然后在出现的界面中按图 1 所示增加相关信息。 图 1创建 maven 项目 完了上述操作之后,在 pom.xml 中添加 Spring Boot 的依赖...

java李阳勇的博客 2205

【Bug已解决】[Bug]: ValueError: No user query found in messages QWEN 3.5 27B VLLM 0.16.0 NIGHTLY 解决方案

用 vLLM 0.16.0 nightly 给发聊天请求时,服务端在处理消息时抛ValueError,请求失败。

博客 408

springcloud微服务一:spring boot基础项目搭建及问题处理

公司接下来某个项目打算使用微服务架构,使用springcloud以及它集成的一些相关项目,因此虽然在其他方面的很多技术上还感觉急需提高,却又不得不以工作为重,先放下其他来了解一下这方面的技术。一番了解后发现,spring cloud是建立在spring boot的基础上的,而之前虽然听说过,也随便看了一下spring boot,却没有真正使用,因此还必须先花时间学一下spring boot。spri...

程序员涂小哥的技术博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【spring colud】spring cloud微服务项目搭建【spring boot2.0】

转自:https://www.cnblogs.com/sxdcgaq8080/p/9035724.html 博主的相关文章都不错,准备继续拜读! spring cloud微服务项目搭建 =================================== 示例版本: 1.spring boot 2.0版本 2.开发工具 IntellJ IDEA ==============...

疯猫 9258

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: SpringCloud系列:1.认识SpringCloud
下一篇: SpringBoot系列:RabbitMq讲解与示例
杨小格
博客等级 码龄10年 19粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值