- Spring Boot
- 作用(使用 Spring Boot 的目的)
- 开发步骤
- 关于 application.properties 配置文件常用配置
基于 约定优于配置 的思想,省略了大量的配置(Spring framework 会使用大量 xml 配置,且很多重复的)
开发步骤- 创建普通 maven 项目
写入 pom.xml
4.0.0 org.springframework.boot spring-boot-starter-parent 2.3.5.RELEASE org.example springboot-study 1.0-SNAPSHOT 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.springframework.boot spring-boot-starter-undertow org.springframework.boot spring-boot-starter-aop org.springframework.boot spring-boot-devtools runtime true org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine org.springframework.boot spring-boot-maven-plugin maven-clean-plugin 3.1.0 maven-compiler-plugin 3.8.1 maven-deploy-plugin 2.8.2 maven-install-plugin 2.5.2 maven-jar-plugin 3.2.0 maven-resources-plugin 3.1.0 maven-site-plugin 3.3 maven-surefire-plugin 2.22.2
- 创建启动类
启动类一定要在 src / main / java / 某一个包 下,并非直接在 src 目录下
package org.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringStudy {
public static void main(String[] args) {
SpringApplication.run(SpringStudy.class,args);
}
}
- 创建 web 资源文件夹
在 resource 目录下创建 public 、static 两个包,这两个包下放入的是静态资源
后续在访问时 url 不需要加 public 或者 static
5. resource 目录下创建 Spring Boot 启动配置文件 application.properties
点击运行 启动类,正常情况下,控制台出现如下字符
"C:Program FilesJavajdk1.8.0_192binjava.exe" -Dspring.output.ansi.enabled=always "-javaagent:D:Program FilesJetBrainsIntelliJ IDEA 2020.1.3libidea_rt.jar=28748:D:Program FilesJetBrainsIntelliJ IDEA 2020.1.3bin" -Dfile.encoding=UTF-8 -classpath "C:Program FilesJavajdk1.8.0_192jrelibcharsets.jar;C:Program FilesJavajdk1.8.0_192jrelibdeploy.jar;C:Program FilesJavajdk1.8.0_192jrelibextaccess-bridge-64.jar;C:Program FilesJavajdk1.8.0_192jrelibextcldrdata.jar;C:Program FilesJavajdk1.8.0_192jrelibextdnsns.jar;C:Program FilesJavajdk1.8.0_192jrelibextjaccess.jar;C:Program FilesJavajdk1.8.0_192jrelibextjfxrt.jar;C:Program FilesJavajdk1.8.0_192jrelibextlocaledata.jar;C:Program FilesJavajdk1.8.0_192jrelibextnashorn.jar;C:Program FilesJavajdk1.8.0_192jrelibextsunec.jar;C:Program FilesJavajdk1.8.0_192jrelibextsunjce_provider.jar;C:Program FilesJavajdk1.8.0_192jrelibextsunmscapi.jar;C:Program FilesJavajdk1.8.0_192jrelibextsunpkcs11.jar;C:Program FilesJavajdk1.8.0_192jrelibextzipfs.jar;C:Program FilesJavajdk1.8.0_192jrelibjavaws.jar;C:Program FilesJavajdk1.8.0_192jrelibjce.jar;C:Program FilesJavajdk1.8.0_192jrelibjfr.jar;C:Program FilesJavajdk1.8.0_192jrelibjfxswt.jar;C:Program FilesJavajdk1.8.0_192jrelibjsse.jar;C:Program FilesJavajdk1.8.0_192jrelibmanagement-agent.jar;C:Program FilesJavajdk1.8.0_192jrelibplugin.jar;C:Program FilesJavajdk1.8.0_192jrelibresources.jar;C:Program FilesJavajdk1.8.0_192jrelibrt.jar;D:Users李逍遥IdeaProjectsspring02targetclasses;C:Users李逍遥.m2repositoryorgspringframeworkbootspring-boot-starter-web2.3.5.RELEASEspring-boot-starter-web-2.3.5.RELEASE.jar;C:Users李逍遥.m2repositoryorgspringframeworkbootspring-boot-starter2.3.5.RELEASEspring-boot-starter-2.3.5.RELEASE.jar;C:Users李逍遥.m2repositoryorgspringframeworkbootspring-boot-starter-logging2.3.5.RELEASEspring-boot-starter-logging-2.3.5.RELEASE.jar;C:Users李逍遥.m2repositorychqoslogbacklogback-classic1.2.3logback-classic-1.2.3.jar;C:Users李逍遥.m2repositorychqoslogbacklogback-core1.2.3logback-core-1.2.3.jar;C:Users李逍遥.m2repositoryorgapachelogginglog4jlog4j-to-slf4j2.13.3log4j-to-slf4j-2.13.3.jar;C:Users李逍遥.m2repositoryorgapachelogginglog4jlog4j-api2.13.3log4j-api-2.13.3.jar;C:Users李逍遥.m2repositoryorgslf4jjul-to-slf4j1.7.30jul-to-slf4j-1.7.30.jar;C:Users李逍遥.m2repositoryjakartaannotationjakarta.annotation-api1.3.5jakarta.annotation-api-1.3.5.jar;C:Users李逍遥.m2repositoryorgyamlsnakeyaml1.26snakeyaml-1.26.jar;C:Users李逍遥.m2repositoryorgspringframeworkbootspring-boot-starter-json2.3.5.RELEASEspring-boot-starter-json-2.3.5.RELEASE.jar;C:Users李逍遥.m2repositorycomfasterxmljacksoncorejackson-databind2.11.3jackson-databind-2.11.3.jar;C:Users李逍遥.m2repositorycomfasterxmljacksoncorejackson-annotations2.11.3jackson-annotations-2.11.3.jar;C:Users李逍遥.m2repositorycomfasterxmljacksoncorejackson-core2.11.3jackson-core-2.11.3.jar;C:Users李逍遥.m2repositorycomfasterxmljacksondatatypejackson-datatype-jdk82.11.3jackson-datatype-jdk8-2.11.3.jar;C:Users李逍遥.m2repositorycomfasterxmljacksondatatypejackson-datatype-jsr3102.11.3jackson-datatype-jsr310-2.11.3.jar;C:Users李逍遥.m2repositorycomfasterxmljacksonmodulejackson-module-parameter-names2.11.3jackson-module-parameter-names-2.11.3.jar;C:Users李逍遥.m2repositoryorgspringframeworkspring-web5.2.10.RELEASEspring-web-5.2.10.RELEASE.jar;C:Users李逍遥.m2repositoryorgspringframeworkspring-beans5.2.10.RELEASEspring-beans-5.2.10.RELEASE.jar;C:Users李逍遥.m2repositoryorgspringframeworkspring-webmvc5.2.10.RELEASEspring-webmvc-5.2.10.RELEASE.jar;C:Users李逍遥.m2repositoryorgspringframeworkspring-context5.2.10.RELEASEspring-context-5.2.10.RELEASE.jar;C:Users李逍遥.m2repositoryorgspringframeworkspring-expression5.2.10.RELEASEspring-expression-5.2.10.RELEASE.jar;C:Users李逍遥.m2repositoryorgspringframeworkbootspring-boot-starter-undertow2.3.5.RELEASEspring-boot-starter-undertow-2.3.5.RELEASE.jar;C:Users李逍遥.m2repositoryioundertowundertow-core2.1.4.Finalundertow-core-2.1.4.Final.jar;C:Users李逍遥.m2repositoryorgjbossloggingjboss-logging3.4.1.Finaljboss-logging-3.4.1.Final.jar;C:Users李逍遥.m2repositoryorgjbossxnioxnio-api3.8.0.Finalxnio-api-3.8.0.Final.jar;C:Users李逍遥.m2repositoryorgwildflycommonwildfly-common1.5.2.Finalwildfly-common-1.5.2.Final.jar;C:Users李逍遥.m2repositoryorgwildflyclientwildfly-client-config1.0.1.Finalwildfly-client-config-1.0.1.Final.jar;C:Users李逍遥.m2repositoryorgjbossxnioxnio-nio3.8.0.Finalxnio-nio-3.8.0.Final.jar;C:Users李逍遥.m2repositoryorgjbossthreadsjboss-threads3.1.0.Finaljboss-threads-3.1.0.Final.jar;C:Users李逍遥.m2repositoryioundertowundertow-servlet2.1.4.Finalundertow-servlet-2.1.4.Final.jar;C:Users李逍遥.m2repositoryorgjbossspecjavaxannotationjboss-annotations-api_1.3_spec2.0.1.Finaljboss-annotations-api_1.3_spec-2.0.1.Final.jar;C:Users李逍遥.m2repositoryioundertowundertow-websockets-jsr2.1.4.Finalundertow-websockets-jsr-2.1.4.Final.jar;C:Users李逍遥.m2repositoryorgjbossspecjavaxwebsocketjboss-websocket-api_1.1_spec2.0.0.Finaljboss-websocket-api_1.1_spec-2.0.0.Final.jar;C:Users李逍遥.m2repositoryjakartaservletjakarta.servlet-api4.0.4jakarta.servlet-api-4.0.4.jar;C:Users李逍遥.m2repositoryorgglassfishjakarta.el3.0.3jakarta.el-3.0.3.jar;C:Users李逍遥.m2repositoryorgspringframeworkbootspring-boot-starter-aop2.3.5.RELEASEspring-boot-starter-aop-2.3.5.RELEASE.jar;C:Users李逍遥.m2repositoryorgspringframeworkspring-aop5.2.10.RELEASEspring-aop-5.2.10.RELEASE.jar;C:Users李逍遥.m2repositoryorgaspectjaspectjweaver1.9.6aspectjweaver-1.9.6.jar;C:Users李逍遥.m2repositoryorgspringframeworkbootspring-boot-devtools2.3.5.RELEASEspring-boot-devtools-2.3.5.RELEASE.jar;C:Users李逍遥.m2repositoryorgspringframeworkbootspring-boot2.3.5.RELEASEspring-boot-2.3.5.RELEASE.jar;C:Users李逍遥.m2repositoryorgspringframeworkbootspring-boot-autoconfigure2.3.5.RELEASEspring-boot-autoconfigure-2.3.5.RELEASE.jar;C:Users李逍遥.m2repositoryorgprojectlomboklombok1.18.16lombok-1.18.16.jar;C:Users李逍遥.m2repositoryorgslf4jslf4j-api1.7.30slf4j-api-1.7.30.jar;C:Users李逍遥.m2repositoryorgspringframeworkspring-core5.2.10.RELEASEspring-core-5.2.10.RELEASE.jar;C:Users李逍遥.m2repositoryorgspringframeworkspring-jcl5.2.10.RELEASEspring-jcl-5.2.10.RELEASE.jar" org.example.SpringStudy . ____ _ __ _ _ /\ / ___'_ __ _ _(_)_ __ __ _ ( ( )___ | '_ | '_| | '_ / _` | \/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |___, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.3.5.RELEASE) 2021-10-22 20:02:54.134 INFO 13528 --- [ restartedMain] org.example.SpringStudy : Starting SpringStudy on DESKTOP-AKHVU3E with PID 13528 (D:Users李逍遥IdeaProjectsspring02targetclasses started by 李逍遥 in D:Users李逍遥IdeaProjectsspring02) 2021-10-22 20:02:54.137 INFO 13528 --- [ restartedMain] org.example.SpringStudy : No active profile set, falling back to default profiles: default 2021-10-22 20:02:54.232 INFO 13528 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable 2021-10-22 20:02:54.232 INFO 13528 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' 2021-10-22 20:02:56.646 WARN 13528 --- [ restartedMain] io.undertow.websockets.jsr : UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used 2021-10-22 20:02:56.676 INFO 13528 --- [ restartedMain] io.undertow.servlet : Initializing Spring embedded WebApplicationContext 2021-10-22 20:02:56.676 INFO 13528 --- [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2443 ms
如果出现错误,可能是 tomcat 端口(8080)被占用,此时可以在 resource 目录下的启动配置文件 application.properties 中添加如下字符(修改端口)
关于 application.properties 配置文件常用配置#server.port=8888 端口被占用 修改端口 # 调试模式启动, 开发环境中, 可以看到更多的日志便于排查问题 debug=true # 基础日志打印级别 ( 从低到高 ): # 1. debug # 2. info # 3. warn # 4. error # 代码中, 使用 logger.debug / logger.info 打印日志, 日志级别以下的不会打印 logging.level.root=debug # json 日期格式 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss # json 日期地区 spring.jackson.time-zone=GMT+8 # json 格式美化 spring.jackson.serialization.indent-output=true



