SpringBoot初识与使用

it2022-05-05  158

##Spring特点简介

Spring Boot是由Pivotal团队提供的全新框架目的是用来简化Spring应用的初始搭建以及开发过程。SpringBoot提供了大量的启动器,帮助开发人员大大简化了配置。从最根本上来讲,Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用。

##SpringBoot主要特点

创建独立的Spring应用程序,是一个基于spring容器来启动的spring应用嵌入的Tomcat,无需部署WAR文件简化Maven配置自动配置Spring,autoConfiguration的功能。可以简化spring的配置信息。

##SpringBoot的使用

SpringBoot是一些库的集合,所以具有其独特的使用方式,即定义本地工程,并继承SpringBoot提供的父工程,实现资源的依赖。

SpringBoot的静态资源目录默认在src/main/resources/static下。SpringBoot的模板页面资源目录默认在src/main/resources/templates下

通过SpringBoot进行资源依赖的时候,都是依赖SpringBoot定义好的启动器,SpringBoot定义了44个启动器,诸如:spring-boot-starter-web、spring-boot-starter-jdbc、spring-boot-starter-test等。启动器中已经定义了完整的资源依赖信息,在工程中只要依赖少量的启动器,即可完成一个复杂工程的资源依赖。

spring-boot-starter-web启动器整合了Servlet技术。这个启动器包含一个Tomcat容器,可以通过SpringApplication来启动容器,提供WEB服务。这个容器的端口默认为8080,可以通过application.properties配置文件来修改端口。

<?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> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</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-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </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>

启动类代码

package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }

控制代码

package com.example.demo.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.Date; import java.util.HashMap; import java.util.Map; @Controller public class DemoController { @RequestMapping("test") @ResponseBody public Object test(){ Map<String,Object> results=new HashMap<>(); results.put("name", "张三"); results.put("age", 20); results.put("date", new Date()); return results; } }

##SpringBoot 在IDEA中实现热部署

在项目添加热部署插件

温馨提示:如果因为项目十分臃肿庞大,导致热重启很慢而影响开发效率,建议直接在在POM移除spring-boot-devtools依赖,然后使用Control+Shift+F9进行免启动快速更新

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency> 开启IDEA的自动编译(静态)

打开顶部工具栏 File -> Settings -> Build, Execution, Development -> Compiler 然后勾选 Build project automatically

开启IDEA的热部署策略

具体步骤:顶部菜单- >Edit Configurations->SpringBoot插件->目标项目->勾选热更新

##SpringBoot的配置文件

SpringBoot的配置文件默认放在src/resources/下 server.port=8080 SpringBoot的配置文件有两种格式 a. application.properties (默认) b. application.yml (更简洁) server: port: 8080

配置不同环境下的配置文件

#application.yml中配置 spring: profiles: active: dev //那么application-dev.yml将生效 spring: profiles: active: mo //那么application-mo.yml将生效 spring: profiles: active: prod //那么application-prod.yml将生效

##附一个完整的配置文件

server: port: 80 servlet: session: timeout: 600 max-http-header-size: 8192 tomcat: uriEncoding: UTF-8 compression: enabled: true mime-types: application/json,application/xml,text/html,text/xml,text/plain spring: application: name: xxx http: encoding: force: true enabled: true charset: UTF-8 servlet: multipart: max-file-size: 200MB max-request-size: 200MB aop: proxy-target-class: true jmx: default-domain: ${spring.application.name}

最新回复(0)