Spring Boot2 学习笔记(二):Spring Boot2基础入门

一、Spring 能做什么

Spring的官网:https://spring.io/对此做出了解释。

image-20211022174947674

Spring 能够更快捷、简单、安全地编写Java应用,着眼于效率、简洁和生产,是最为流行的Java框架。它被广泛地应用于微服务,响应式开发,云端服务等各大场景。

Spring的生态圈十分广泛,覆盖了web开发、数据访问、安全控制、分布式、消息服务、移动开发、批处理等各大方面,而Spring Boot,就相当于是一个Spring各大组件的整合,仅需简单的配置就可以快速创建出生产级别的Spring应用。

二、Spring Boot的优缺点比较
优点 缺点
创建独立Spring应用 版本帝,迭代快,需要时刻关注变化
内嵌web服务器 封装太深,内部原理复杂,不容易精通
自动starter依赖,简化构建配置
自动配置Spring以及第三方功能
提供生产级别的监控、健康检查及外部化配置
无代码生成、无需编写XML
三、如何学习Spring Boot
  1. 点击想要阅读的版本的文档

image-20211022180628360

  1. 根据以下相关链接进行使用

image-20211022181115436

四、查看版本新特性

https://github.com/spring-projects/spring-boot/wiki#release-notes

image-20211022181259012

五、Spring Boot2 的"Hello World"
  1. 系统要求:(IDE本人使用的是Idea 2021.1.2)

    • Java 8+
    • Maven 3.3+
  2. Maven换阿里源(可选):

    在Maven主目录下的conf文件夹下的settings.xml,修改其中关于mirrors的配置。具体请自行百度

    1
    2
    3
    4
    5
    6
    7
    8
    <mirrors>
    <mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
    </mirrors>
  3. 需求:浏览器向后端Spring Boot应用发送/hello请求,Spring Boot应用响应"Hello World"

  4. 创建Maven工程,在pom.xml文件中引入依赖

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.4.RELEASE</version>
    </parent>


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

    </dependencies>
  5. 创建主程序

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /**
    * 主程序类
    * @SpringBootApplication:表明这是一个SpringBoot应用
    */
    @SpringBootApplication
    public class MainApplication {

    public static void main(String[] args) {
    SpringApplication.run(MainApplication.class,args);
    }
    }
  6. 编写业务

    @RequestMapping表示希望浏览器发送的请求url,使用该注解后,返回值一般解析为跳转路径。在方法上使用@ResponceBody之后,就不会解析为跳转路径,而是直接写进HTTP的responce body。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    @Controller
    public class HelloController {

    @RequestMapping("/hello")
    @ResponseBody
    public String handler01() {
    return "Hello, spring boot2你好";
    }
    }

    而@RestController则相当于@Controller和@ResponceBody的作用,因此可以用其代替。

    1
    2
    3
    4
    5
    6
    7
    8
    @RestController
    public class HelloController {

    @RequestMapping("/hello")
    public String handle01(){
    return "Hello, Spring Boot 2!";
    }
    }
  7. 在application.properties文件中创建想要配置的项

    如果没有这个文件,则在与java文件同级目录下创建resources,并在其下创建application.properties

image-20211022184150413

​ application.properties:

1
server.port=8888
  1. 测试

    运行main方法,在浏览器访问localhost:指定端口/hello

image-20211022184427905

  1. 简单部署

    在pom.xml文件中插入以下插件,打包时达成jar包,自带tomcat,可以直接在目标服务器中运行。

    1
    2
    3
    4
    5
    6
    7
    8
    <build>
    <plugins>
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    </plugins>
    </build>