微服务架构(二)-Spring Boot入门篇

一. Spring Boot简介
  • Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
  • SpringBoot所具备的特征有:
    (1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
    (2)内嵌Tomcat或Jetty等Servlet容器;
    (3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
    (4)尽可能自动配置Spring容器;
    (5)提供准备好的特性,如指标、健康检查和外部化配置;
    (6)绝对没有代码生成,不需要XML配置。
二. 环境准备

(1)JDK 环境必须是 1.8 及以上,下载地址
(2)后面要使用到 Maven 管理工具 3.2.5 及以上版本,所以会先介绍 Maven 的安装与配置
(3)开发工具建议使用 IDEA,也可以 MyEclipse

三. 环境安装 - JDK 安装

(1)下载JDK

  • JDK:Java SE Development Kit(Java SE开发工具包),我们以jdk1.8为例。
  • jdk1.8官网下载地址:jdk1.8下载
  • 打开jdk1.8下载链接后找到图中对应位置,勾选Accept License Agreement(接受许可协议),选择相应操作系统的 x64,笔者使用的是windows操作系统,因此勾选Windows x64。
image.png

(2)安装
下载JDK后,双击安装包进行安装,根据提示进行,还有安装JDK的时候也会安装JRE,一并安装就可以了。
安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为 C:\Program Files (x86)\Java\jdk1.8.0_91。

(3)环境配置
1).安装完成后,右击"我的电脑",点击"属性",选择"高级系统设置";

image

2).选择"高级"选项卡,点击"环境变量";

image

然后就会出现如下图所示的画面:

image
  • 在 "系统变量" 中设置 3 项属性,JAVA_HOME、PATH、CLASSPATH(大小写无所谓),若已存在则点击"编辑",不存在则点击"新建"。
    注意:如果使用 1.5 以上版本的 JDK,不用设置 CLASSPATH 环境变量,也可以正常编译和运行 Java 程序。
  • 变量设置参数如下:
  • 变量名:JAVA_HOME
  • 变量值:C:\Program Files (x86)\Java\jdk1.8.0_91 // 要根据自己的实际路径配置
  • 变量名:CLASSPATH
  • 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; //记得前面有个"."
  • 变量名:Path
  • 变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

JAVA_HOME 设置

image
image

PATH设置

image
image

注意:在 Windows10 中,Path 变量里是分条显示的,我们需要将 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 分开添加,否则无法识别:

%JAVA_HOME%\bin;  %JAVA_HOME%\jre\bin;
image

更多内容可参考:Windows 10 配置Java 环境变量

CLASSPATH 设置

image

这是 Java 的环境配置,配置完成后,你可以启动 IDEA来编写代码,它会自动完成java环境的配置。

测试JDK是否安装成功

1、"开始"->"运行",键入"cmd";
2、键入命令: java -versionjavajavac 几个命令,出现以下信息,说明环境变量配置成功;

image.png
四. 环境安装 - Maven 安装

(1)Maven 安装:

image.png

(2)Maven 配置环境变量:
解压到一个路径,然后配置环境变量:
新建变量名:MAVEN_HOME 变量值:D:\xxx\apache-maven-3.6.3(这是你的 MAVEN 路径)
编辑变量名:Path 在最前面加上:%MAVEN_HOME%\bin
(3)检查是否配置成功:
在命令行输入:

mvn -v

出现类似以下信息,说明环境变量配置成功;

Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: D:\apache-maven-3.6.3\bin\..
Java version: 1.8.0_221, vendor: Oracle Corporation, runtime: D:\Program Files\Java\jdk1.8.0_221\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

(4)配置 maven 仓库:

  1. 打开 maven 文件夹下的 config 文件夹下的 settings.xml;
  2. 找到 localRepository 标签,此时是被注释掉的,我们解除注释,然后配置一个路径,例如:D:/apache-maven-3.6.3/maven-repository/repository,这样以后 MAVEN 管理下载的jar 包都会在这个路径下。
    【注意】:注意结点的位置,先找到注释掉的部分,贴在下面
<localRepository>D:\apache-maven-3.6.3\maven-repository\repository</localRepository>
<!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
  <localRepository>D:\apache-maven-3.6.3\maven-repository\repository</localRepository>
  1. 配置远程仓库,找到 mirrors 标签
<!--远程仓库-->
<mirror>
  <id>aliyun</id>
  <name>aliyun Maven</name>
  <mirrorOf>*</mirrorOf>
   <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
  1. 当然我们需要先建这样一个目录结构,然后还要把settings.xml 复制一份到 D:/apache-maven-3.6.3/maven-repository/ 下

(5)在 idea 配置 maven
点击【File】>【Settings】>搜索【Maven】,按截图配置安装目录和选择刚刚 settings 配置文件;

image.png

选择完settings之后,本地仓库自动改成settings文件中配置的;点击apply,再点击ok即配置完成。

五. 使用 idea 快速搭建 Spring Boot

第一步:新建 Spring Initializr 项目:
(1)选择 Spring Initializr
(2)选择 SDK,点击【new】这里就是使用 JAVA SDK 要求版本 1.8+,选择你默认安装在系统的 目录:

image.png

(3)选择下一步继续,填写一下项目的信息

image.png

(4)先勾选上 Web 依赖

image.png

(5)勾选 SQl 下的 MySQL,MyBatis 依赖:
(根据自己的项目选择,后面可加)

image.png

(6)选择好项目的位置,点击【Finish】:

image.png
六. Spring Boot工程简介

(1)工程目录介绍:

image.png

项目结构还是看上去挺清爽的,少了很多配置文件,我们来了解一下默认生成的有什么:

  • SpringbootApplication: 一个带有 main() 方法的类,用于启动应用程序
  • SpringbootApplicationTests:一个空的 Junit 测试了,它加载了一个使用 Spring Boot 字典配置功能的 Spring 应用程序上下文
  • application.properties:一个空的 properties 文件,可以根据需要添加配置属性
  • pom.xml: Maven 构建说明文件

第二步:HelloController

在 【main/java/com.zhixuan.mydemo】包下新建一个【helloController】:

package com.zhixuan.mydemo;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author lous.lu
 * @version V1.0
 * @Package com.zhixuan.mydemo
 * @date 2020/6/24 14:39
 */
@RestController
public class helloController {

    @RequestMapping("/hello")
    public String hello() {
        return "Hello Spring Boot!";
    }
}

第三步:利用 IDEA 启动 Spring Boot
(1)我们回到 SpringbootApplication 这个类中,然后右键点击运行:

image.png

(2)注意:我们之所以在上面的项目中没有手动的去配置 Tomcat 服务器,是因为 Spring Boot 内置了 Tomcat
等待一会儿就会看到下方的成功运行的提示信息:

image.png

(3)此时,可以看到我们的 Tomcat 运行在 8080 端口,我们来访问下面地址试一下:

image.png
七. Spring Boot工程之应用入口类 SpringbootApplication.java

Spring Boot 项目通常有一个名为 *Application 的入口类,入口类里有一个 main 方法, 这个 main 方法其实就是一个标准的 Javay 应用的入口方法。

  • @SpringBootApplication 是 Spring Boot 的核心注解,它是一个组合注解,该注解组合了:@Configuration、@EnableAutoConfiguration、@ComponentScan; 若不是用 @SpringBootApplication 注解也可以使用这三个注解代替。
  • 其中,@EnableAutoConfiguration 让 Spring Boot 根据类路径中的 jar 包依赖为当前项目进行自动配置,例如,添加了 spring-boot-starter-web 依赖,会自动添加 Tomcat 和 Spring MVC 的依赖,那么 Spring Boot 会对 Tomcat 和 Spring MVC 进行自动配置。
  • Spring Boot 还会自动扫描 @SpringBootApplication 所在类的同级包以及下级包里的 Bean ,所以入口类建议就配置在 grounpID + arctifactID 组合的包名下(这里为 com.zhixuan.mydemo包)
八. Spring Boot 的配置文件:
  • Spring Boot 使用一个全局的配置文件 application.properties 或 application.yml,放置在【src/main/resources】目录或者类路径的 /config 下。
  • Spring Boot 不仅支持常规的 properties 配置文件,还支持 yaml 语言的配置文件。yaml 是以数据为中心的语言,在配置数据的时候具有面向对象的特征。
  • Spring Boot 的全局配置文件的作用是对一些默认配置的配置值进行修改。
#全局配置

#应用名
spring.application.name=mydemo

#端口号
server.port=8080
server.servlet.context-path=/cn

#编码格式
server.tomcat.uri-encoding=utf-8

#数据库配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3308/douban
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5

#session过期时间
server.servlet.session.timeout=30m

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,230评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,261评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,089评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,542评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,542评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,544评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,922评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,578评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,816评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,576评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,658评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,359评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,920评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,859评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,381评论 2 342