1.什么是SpringBoot?
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的创建、运行、调试、部署等。使用Spring Boot可以做到专注于Spring应用的开发,而无需过多关注XML的配置。Spring Boot使用约定大于配置的理念,简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题。使用Spring Boot可以不用或者只需要很少的Spring配置就可以让企业项目快速运行起来。
2.SpringBoot的特性
(1).创建独立的Spring应用程序
(2).内部嵌入Tomcat,Jetty或Undertow(无需部署WAR文件)
(3).提供以starter依赖项,以简化构建配置
(4).尽可能自动配置Spring和3rd Party库
(5).提供可用于生产的功能,例如指标,运行状况检查和外部化配置
(6).完全没有代码生成,也不需要XML配置
3.springBoot和Spring和SpringCloud的区别?
Spring是一个开源的轻量级的Java开发框架,它的核心概念是简化应用程序的开发,而SpringBoot是基于Spring的扩展,通过SpringBoot能大大简化应用程序的开发(配置),SpringCloud是一套微服务框架的规范,它不是具体的框架,像SpringCloud的组件是基于SpringBoot构建
4.创建一个SpringBoot应用
(1).打开idea,点击左上方的File->Project,打开之后如下图,创建SpringBoot应用的方式有很多种,例如:创建Maven项目、创建Gradle项目、使用Spring initializr创建SpringBoot应用,以下的例子就通过Spring initializr的方法来创建SpringBoot项目,Spring initializr是spring官方推出的创建SpringBoot应用的工具
一直next就行了,创建好了之后maven就会下载项目的依赖,趁这个时候我们可以多人运动一下
(2).项目目录说明
(3).编写SpringBoot启动类
package com.fly.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);
//也可以下面这种方式
//SpringApplication.run(DemoApplication.class);
}
}
启动类很简单,就两步操作,第一步在启动类上加上@SpringBootApplication
注解标识这是一个SpringBoot应用,第二步是在main方法中调用SpringApplication.run指定启动类
(4).编写配置
SpringBoot支持2种文件格式配置,分别是properties和yaml,properties的优先级高于yml,SpringBoot在启动时会默认加载resources目录下的application.properties或application.yaml(只配置其中一种方式即可)
application.properties配置内容截图:
application.properties内容:
#指定项目启动端口
server.port=8080
#指定项目名称
spring.application.name=spring-demo01
application.yml配置截图:
application.yml配置内容:
server:
port: 8080
spring:
application:
name: spring-demo01
4.1 多环境配置:
在实际开发中项目可分为开发(dev)、测试(test)、性能(perform)、正式等阶段,我们可以在不同阶段使用不同配置,我又创建了application-dev.properties(开发配置文件)、application-test.properties(测试配置文件)、application-perform.properties(性能测试配置文件)3个配置文件,使用这3个配置也很简单,只需要在application.properties中使用spring.profiles.active
指定开发环境即可,例如下图:
(5).通过插件打包成jar或war文件
打包jar或war文件主要通过spring-boot-maven-plugin
,为了方便测试我又在项目在添加了web依赖
<?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.2.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.fly</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</artifactId>
</dependency>
<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>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
为了方便测试所以添加了一个Controller,其内容如下:
package com.fly.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@RequestMapping("/hello")
public String hello(){
return "hello";
}
}
(5-1).图形化打包(方式1,这种打包会包含测试用例,打包速度不快):
终端进入项目根目录的target目录,执行 java -jar jar文件名
测试,浏览器输入localhost:8080/hello即可测试,测试效果图如下:
(5-2).命令打包(方式2):
在终端进入在项目的根目录,执行mvn install -Dmaven.test.skip=true
命令,-Dmaven.test.skip=true表示会跳过单元测试,所以打包起来会快一点
(5-3).打包成war包。只需要在pom.xml文件中添加<packaging>war</packaging>
即可,打成jar包就填jar,war就填war,剩余的打包步骤还是一样的