spring boot搭建及常用配置
在idea中搭建spring boot及相关小知识 https://blog.csdn.net/vigoss77/article/details/81590671
===============================
spring boot 需要引用的依赖项:
spring-boot-starter-parent // 所有Spring Boot组件的基础引用 spring-boot-starter-web // 对SB应用提供Web的支持 spring-boot-starter-thymeleaf(可选) // 提供thymeleaf模板引擎的支持 spring-boot-maven-plugin // 提供SB应用打包的功能
pom.xml文件示例:
<?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> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>demo</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <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-thymeleaf</artifactId> <version>2.1.1.RELEASE</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
启动入口:
package com.example.demo;
// DemoApplication:告诉spring boot 我是一个入口类,运行我就能启动SB // @SpringBootApplication:自动扫描当前com.example.demo包路径下可以被注入的类,开始初始化 // 可以扫描:@Repository @Service @Controller @Component @Entity @SpringBootApplication(scanBasePackages = "com.example") public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
Spring中常用的配置项:
# 更改端口 server.port=80 # 是否打开调试模式 debug=true # 类似pythn的url管理,就是一个tomcat下如果有三个webapp项目(app1,app2,app3),加上此配置后,访问app1的路径,都需要加上/app1前缀 # 一般情况下,小项目通常都是在Tomcat下部署多个webapp,通过上下文来区分 # 在集群或者大型项目中,通常我们一个Tomcat对应一个webapp,然后通过不同的端口来进行区分,比如(8080,8081,8082) server.servlet.context-path=/app1 # 注意:UTF-8只包含了20000+个中文字符,对于生僻字显示不了 spring.http.encoding.charset=utf-8 # 开启thymeleaf缓存(默认是开启缓存的) # 当你更改html文件内容的时候,刷新页面,是不会更新内容的 # 如果关闭页面缓存,这里有个大坑,是因为少了一个设置 # 设置(IntelliJ IDEA):file->settings->Build,Execution,Deployment->Compiler,勾选Build project automatically spring.thymeleaf.cache=false spring.mvc.date-format=yyyy-MM-dd # 设置JSON 日期序列化格式,北京时间相对伦敦有8个小时时差,所以使用GTM+8 spring.jackson.time-zone=GMT+8 spring.jackson.date-format=yyy-MM-dd HH:mm:ss SSS
日期示例:
@RequestMapping("/date") @ResponseBody // 返回json数据 public Date out(Date sdate){ return sdate; }
http://localhost:8080/app1/date?sdate=2009-11-22
返回:"2009-11-21T16:00:00.000+0000"
可以发现,返回的时间是少8个小时,并且,T是什么鬼?
设置:
spring.jackson.time-zone=GMT+8
spring.jackson.date-format=yyy-MM-dd HH:mm:ss SSS
现在返回:"2009-11-22 00:00:00 000"