开发框架之Spring Boot

第一章 Spring Boot 介绍

1.1概述

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。Spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式。

我仅仅只需要非常少的几个配置就可以迅速方便的搭建起来一套Web项目或者是构建一个微服务!

== 不会Spring可以直接学Spring Boot吗?==

如果把“直接学”理解成从Spring Boot学起,然后再学“spring其他”,这样肯定没问题。
如果把“直接学”理解成只学Spring Boot,“spring其他”都不学,这样肯定不行

1.2为什么使用Spring Boot

J2EE笨重的开发、繁多的配置、低下的开发效率、复杂的部署流程、第三方技术集成难度大。

1.3Spring Boot是什么

一站式整合所有应用框架的框架;并且完美整合Spring技术栈;
链接: https://spring.io/projects.

Spring Boot来简化Spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用

1.4Spring boot 优点

  • 快速创建独立运行的Spring项目以及与主流框架集成
  • 使用嵌入式的Servlet容器,应用无需打成WAR包
  • starters自动依赖与版本控制
  • 大量的自动配置,简化开发,也可修改默认值
  • 无需配置XML,无代码生成,开箱即用
  • 准生产环境的运行时应用监控
  • 与云计算的天然集成

1.5 环境要求

链接: link.
在这里插入图片描述

第二章 快速创建SpringBoot应用

2.1 创建Spring Boot应用

第一步、依次展开File->New→Project,创建一个Spring Boot项目。
在这里插入图片描述
第二步、选择“Spring Initializr”,点击“Next”,下一步。
在这里插入图片描述

第三步、输入Maven坐标,点击下一步。
在这里插入图片描述
第四步、点击“Next”下一步。
在这里插入图片描述

第五步、这里是定义工程名字和工程存放路径。一般默认即可,点击“下一步”。
在这里插入图片描述

第六步、这里是提示工程是否在当前窗口打开还是另外打开一个窗口。选择在当前窗口打开,这里不影响步骤的执行。
在这里插入图片描述

第七步、这里的进度条表示正在下载Spring Boot包相关的依赖。下载完后工程既可以运行了。
在这里插入图片描述
第八步、打开src\main\java\net.suncaper.bootexample\BootExampleApplication。右键点击编辑器区域,选择运行。
在这里插入图片描述

第九步、当出现下面的提示信息时,代表Spring Boot已可用了。
在这里插入图片描述

Spring Boot 目录结构
  • |.idea: idea项目目录,这里主要存放Intellij Idea的项目配置文件,不能删除。
  • |~~ .mvn: 可以删除 ~~
  • |src/main/java: 程序开发以及主程序入口
  • |src/main/resources: 配置文件
  • |src/test/java 测试程序
  • |.gitignore git的ignore文件
  • |boot-example.iml Intellij Idea项目配置文件
  • |~~ HELP.md 帮助文档,可以删除 ~~
  • |mvnw 可以删除
  • |mvnw.cmd 可以删除
  • |pom.xml Maven的pom文件

删除掉上面的文件,目录结构如下:
在这里插入图片描述

2.2创建Web程序

pom.xml 如下


<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>net.suncaper</groupId>
    <artifactId>boot-example</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>boot-example</name>
    <description>Demo project for Spring Boot</description>
  
    <properties>
        <java.version>1.8</java.version>
    </properties>
  
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
  
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
  
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
  
</project>

在开始之前,我们先来看看上一步创建的pom.xml如上所示,主要有四个部分:

  • 项目元数据:创建时候输入的Project Metadata部分,也就是Maven项目的基本元素,包括:groupId、artifactId、version、name、description等
  • parent:继承spring-boot-starter-parent的依赖管理,控制版本与打包等内容
  • dependencies:项目具体依赖,这里包含了spring-boot-starter,spring的基本模块;spring-boot-starter-test用于编写单元测试的依赖包。更多功能模块的使用我们将在后面的教程中逐步展开。
  • build:构建配置部分。默认使用了spring-boot-maven-plugin,配合spring-boot-starter-parent就可以把Spring Boot应用打包成JAR来直接运行。

如果要进行Web的开发,需要在dependencies中引入Web开发的模块spring-boot-starter-web:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>

spring-boot-starter-web模块包含spring-boot-starter,因此我们在dependencies移除它,最终的依赖如下:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
 
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

2.3 第一个HTTP接口

第一步、展开src\main\java\net.suncaper.bootexample包,右键点击包名,依次选择 New→Java Class,新建一个类。
在这里插入图片描述
第二步、输入类的名字“HelloController”,点击“Ok”
在这里插入图片描述
第三步、更改类的内容如下(之后会详细解释):

package net.suncaper.bootexample;
 
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
/**
 * @author nedli
 */
@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String index() {
        return "Hello World";
    }
}

第四步、启动主程序,点击右上角的绿色按钮:
在这里插入图片描述
或者打开BootExampleApplication,右键点击编辑器
在这里插入图片描述
第五步、启动程序,如果有以下日志,启动成功。
在这里插入图片描述
第六步、打开浏览器,访问“http://localhost:8080/hello”, 出现"hello world"字样。
在这里插入图片描述

第三章 观察Application

新建Spring Boot项目后,项目会默认生成一个XXXXApplication.java文件:

打开Application.java文件,我们首先看到的是**@SpringBootApplication注解。这个注解其实包含了@Configuration、@EnableAutoConfiguration@ComponentScan**等注解,提供了java配置、自动配置、组件扫描等功能。
在这里插入图片描述

main方法

该main方法,这是一个标准的方法,它遵循Java对于一个应用程序入口点的约定。main方法通过调用run,将业务委托给了Spring Boot的SpringApplication类。SpringApplication将引导我们的应用。


public static void main(String[] args) {
    SpringApplication.run(BootExampleApplication.class, args);
}

第四章 SpringBoot - yml配置文件

SpringBoot使用一个全局的配置文件,配置文件名是固定的(application.yml):

YAML是JSON的一个超集,是一种方便的定义层次配置数据的格式,结构层次上清晰明了,配置简单易读、易用。以下是YAML的一个例子,在目录src/main/java/resources中新建一个文件application.yml,然后删除掉application.properties
目录结构为
在这里插入图片描述
然后在application.yml中添加如下内容(使用Idea自动缩进,多一个少一个空格都不行):

server:
  display:
    name: app
  address: localhost

在这里插入图片描述
里面有两条属性。

  • server.display.name的值是app
  • server.address的值是localhost
    然后我们在项目里面使用这两个值。
@RestController
public class HelloController {
    @Value("${server.display.name}")
    private String serverName;
    @Value("${server.address}")
    private String serverIp;
     
    @RequestMapping("/hello")
    public String index() {
        return "Server Name is:" + serverName + ", server ip is:" + serverIp;
    }
}

在HelloController里面定义了两个变量serverName和serverIp。然后通过**@Value("${YAML属性}")**读取YAML中配置的属性。

启动服务,然后打开网址 http://localhost:8080/hello
在这里插入图片描述

YAML(/ˈjæməl/)是一个可读性高,用来表达数据序列化的格式。
YAML是"YAML Ain’t a Markup Language"(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名。

server:
    port: 8081

4.1 YAML语法

4.1.1 YAML基本语法

  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格。
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  • 大小写敏感

4.1.2 YAML 支持的三种数据结构

  • 对象:键值对的集合
  • 数组:一组按次序排列的值
  • 字面量:单个的、不可再分的值

4.2 值的写法

4.2.1 字面量:普通的值(数字,字符串,布尔)

  • k: v:字面直接来写;
  • 字符串默认不用加上单引号或者双引号;
  • “”:双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思
  • name: “zhangsan \n lisi”:输出;zhangsan 换行 lisi
  • ‘’:单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据
  • name: ‘zhangsan \n lisi’:输出;zhangsan \n lisi

对象、Map(属性和值)(键值对):

  • k: v:在下一行来写对象的属性和值的关系;注意缩进
  • 对象还是k: v的方式
friends:
    lastName: zhangsan
    age: 20

4.2.3 数组(List、Set)

用- 值表示数组中的一个元素

pets:
‐ cat
‐ dog
‐ pig

行内写法:

pets: [cat,dog,pig]

第五章 更改监听端口

默认Spring Boot启动是监听在8080上的。
在这里插入图片描述
如果8080被使用,就会报以下错误。
在这里插入图片描述
这个时候可以更换一个新的端口。

server:
  port: 8180

在这里插入图片描述
然后再启动,启动成功并且绑定到端口8180。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值