SpringBoot01_快速开发

一、SpringBoot 简介

(一)什么是 SpringBoot

​ Spring Boot 是一个基于 Spring 框架的快速开发应用程序的工具。它提供了一种简单的方式来配置和构建 Spring 应用程序,并集成了大量常用的第三方库,使得开发者可以更容易地搭建、测试和部署应用程序。Spring Boot 还提供了许多便捷的特性,如自动配置、热部署等,大大提高了开发效率和开发体验。

​ Spring Boot的目标不在于为已解决的问题域提供新的解决方案,而是 为平台带来另一种开发体验,从而简化对这些已有技术的使用。

(二)为什么使用 SpringBoot

​ 1.Spring Boot是为简化Spring项目配置而生,使用它使得jar依赖管理 以及应用编译和部署更为简单。Spring Boot提供自动化配置,使用 Spring Boot,你只需编写必要的代码和配置必须的属性。

​ 2.使用Spring Boot,只需20行左右的代码即可生成一个基本的Spring Web应用,并且内置了tomcat,构建的fat Jar包通过java -jar就可以 直接运行。

​ 3.Spring Boot非常契合微服务的概念,可以结合Spring Boot与Spring Cloud和Docker技术来构建微服务并部署到云端:一个可执行jar即为一个独立服务、容易加载到容器,每个服务可以在自己的容器(例如docker)中运行、通过一个脚本就可以实现配置与部署,很适合云端部署,并且自动扩展也更容易。

(三)SpringBoot 的特性

​ 1.无需手动管理依赖jar包的版本

​ Spring-boot-*的jar包已对一些功能性jar包进行了集成。当这些技术的 starter pom 被选中后,与这项技术相关的 Spring 的 Bean 将会被自动配置。

starter 集成功能
spring-boot-starter 核心Spring Boot starter,包括自动配置支持,日志和YAML
spring-boot-starter-actuator 生产准备的特性,用于帮你监控和管理应用
·spring-boot-starter-web 对全栈web开发的支持,包括Tomcat和 spring-webmvc
spring-boot-starter-aop 对面向切面编程的支持,包括 spring-aop和AspectJ
spring-boot-starter-jdbc 对JDBC数据库的支持
·spring-boot-starter-security 对 spring-security 的支持

​ 2.独立运行的Spring项目

​ Spring Boot默认将应用打包成一个可执行的jar包文件,构建成功后使用 java -jar命令即可运行应用,不需要依赖tomcat、jetty等外部的应用服务器。

​ 3.自动配置,无需xml

​ Spring Boot尝试根据你添加的jar依赖自动配置你的应用。

​ 4.外部化配置

​ Spring Boot可以使用properties文件,YAML文件,环境变量,命令行 参数等来外部化配置。属性值可以使用@Value注解直接注入到bean中, 并通过Spring的Environment抽象或经过@ConfigurationProperties注 解绑定到结构化对象来访问。

​ 5.嵌入式servlet容器

​ Spring Boot的web模块内置嵌入的Tomcat, Jetty, Undertow来构建自 包含的Servlet容器。web应用打包成可执行jar包时,相应的servlet 容 器也会被嵌入到应用jar中。并且servlets, filters和listeners都可以通过 声明为bean来被容器注册。

​ 6.开启devtools特性

​ 热部署。

二、搭建一个 SpringBoot 入门程序

(一)快速上手

​ 可以在 Spring 官网上快速新建一个 SpringBoot 项目并下载到本地,同时 InteljiIDEA 同样继承了此功能。

​ 在下面的服务器 URL 中可以自己更换,这里使用的是 Spring 官网上的,如果无法加载,可以自行换为阿里云。

image-20230504114527582

​ 在下方黄色框中区域可选择 SpringBoot 版本,推荐使用2.7,需要注意不同的 JDK 版本对于 SpringBoot 的支持是不同的。

image-20230504114845478

​ 新建好的 SpringBoot 项目结构如下:

image-20230504162210001

(二)项目入口和自定义 Controller

​ 默认生成的带有注解 @SpringBootApplication 的类就是 SpringBoot 工程的引导类。

package com.qlu.springboot01;
@SpringBootApplication
public class Springboot01Application {

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

}

​ 如果有需要也可以自己编写引导类

package com.qlu.springboot01;
@SpringBootApplication
public class Application {
    public static void runServer(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}
//——————————————————————————————————————————————————————————————————————————————————————————
package com.qlu.springboot01;
public class Springboot01Application {

    public static void main(String[] args) {
        Application.runServer(args);
    }

}

​ 带有 @SpringBootApplication 注解的就是 SpringBoot 的启动入口,编写 Controller 层进行测试,对于 SpringBoot 工程的约定,必须将各层的类编写在引导类所在的包以及子包下才会自动加载。

​ 该使用 @RequestMapping 注解还是和以前一样,使用 @RestController 就相当于 @ResponseBody 和 @Controller 两个注解。

package com.qlu.springboot01.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/book")
public class BookController {
    @RequestMapping("/t1")
    public String t1 (String message){
        System.out.println(message);
        return message;
    }
}

​ 在以往的springMvc项目里,都是把打的war放在tomcat中运行,下意识的访问 ip:port/projectName/url,进行请求;而springboot不止提供了打成war放在容器里部署,一般是直接执行main函数来启动一个内置的服务器来处理请求,这时候访问默认是不需要添加项目名的,默认的context-path 是"/",加上项目名后会报404。

image-20230506100944304

image-20230506091334944

image-20230506092630491

三、SpringBoot 热部署和配置文件

​ 我们在开发中反复修改类、页面等资源,每次修改后都是需要重新启动才生效,这样每次启动都很麻烦,浪费时间,我们可以在修改代码后不重启就能生效,在 pom.xml 中添加如下配置就可以实现这样的功能,我们称之为热部署,不过这玩意经常不好用

<!--热部署配置 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

​ 修改启动图标

​ 只需要在 resource 中新建一个 banner.txt 就可以替换掉原来的 Spring 图标。image-20230506093134731

四、properties配置文件

(一)配置文件

​ SpringBoot 的配置文件名称都是以 application 开头的,即 application.properties / application.yml 。

​ 在新建 SpringBoot 项目时,会自动给生成一个 application.properties 文件,但是平常使用的最多的是 yml / yaml 文件。

​ 理论上一个 SpringBoot 项目是可以同时出现 properties 文件和 yml 文件的,但是如果一个 Spring Boot 项目中真的同时使用了上述的两种配置文件,那么最终配置项就会以 " properies " 为主,从而忽略了 " yml "。

​ application.yml

server:
  port: 8081

​ application.properties

server.port=8080

(二)配置多环境

​ 可以使用单个 yml 配置多个环境,选择性激活某个,原理就和 mybatis 中的 environments

#application.yml 激活某个环境
spring:
  profiles:
    active: dev
#开发环境 dev application-dev.yml
server:
  port: 8080
#测试环境 test application-test.yml
server:
  port: 8081
#生产环境 pro application-pro.yml
server:
  port: 8082

​ 当然你也可以像在 mybatis 中一样把所有的 environment 写到一个配置文件中选择激活哪一个,不过实际可能环境没有那么简单,所以还是分开更清晰。

image-20230506100805355

(三)修改 context-path

​ SpringBoot默认是 “/” ,这样直接通过http://ip:port/就可以访问到index页面,如果要修改为http://ip:port/path/访问的话,那么需要在 application 文件中加入server.context-path= /你的path。

#application-dev.yml
server:
  port: 8080
  servlet:
    context-path: /springboot01

image-20230506101427365

image-20230506101449606

posted @ 2023-05-06 10:21  Purearc  阅读(42)  评论(0编辑  收藏  举报