一、概念和由来
1、什么是 Spring Boot
Spring Boot 的设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用特定方式来进行配置,从而使开发人员不再需要定义样板化的配置。
Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式。
- 内置Tomcat和Jetty容器
- Starter pom 简化项目配置
- 大型项目的非功能特性,如:安全、指标、健康监测、外部配置等
- 没有代码生成和xml配置文件
2、内置 Servlet Container
- tomcat8 + servelt规范3.1
- jetty9.3+ servelt规范3.1
- undertow1.3+ servelt规范3.1
3、开发调试工具
- SpringBoot DevTools
二、创建 gradle 工程
1、创建 gradle 工程:http://start.spring.io/
你可以通过 Spring Initializr 来创建一个空的项目,也可以手动创建。
2、构建工程
要采用科学上网,否则会慢的让你崩溃的!!
(1)修改gradle下载地址
(2)、使用阿里云的maven库
buildscript {
ext {
springBootVersion = '1.5.7.RELEASE'
}
repositories {
//mavenCentral()
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
//maven { url "https://repo.spring.io/snapshot" }
//maven { url "https://repo.spring.io/milestone" }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
group = 'com.tianhe.example.springboot'
version = '0.0.1-SNAPSHOT'
//生成的jar包包名和版本
jar {
baseName = 'HelloGradle'
version = '0.1.0'
}
//设置jdk的版本
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
//mavenCentral()
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
//maven { url "https://repo.spring.io/snapshot" }
//maven { url "https://repo.spring.io/milestone" }
}
[compileJava,compileTestJava,javadoc]*.options*.encoding = "utf-8"
configurations.all {
exclude module: 'slf4j-jcl'
exclude module: 'slf4j-jdk14'
exclude module: 'slf4j-nop'
exclude module: 'slf4j-simple'
exclude module: 'slf4j-log4j12'
exclude module: 'log4j'
exclude module: 'commons-logging'
exclude module: 'commons-logging-api'
}
dependencies {
compile('org.slf4j:slf4j-api:1.7.15') {
force = true
}
compile('org.slf4j:jcl-over-slf4j:1.7.15') {
force = true
}
compile('org.slf4j:log4j-over-slf4j:1.7.15') {
force = true
}
compile('org.slf4j:jul-to-slf4j:1.7.15') {
force = true
}
compile('ch.qos.logback:logback-core:1.1.7') {
force = true
}
compile('ch.qos.logback:logback-classic:1.1.7') {
force = true
}
compile("org.springframework.boot:spring-boot-starter-web")
compile("org.springframework.boot:spring-boot-starter-thymeleaf")
compile("org.springframework.boot:spring-boot-starter-data-jpa")
compile("org.springframework.boot:spring-boot-starter-actuator")
compile('com.fasterxml.jackson.core:jackson-databind:2.7.4')
compile('com.fasterxml.jackson.core:jackson-core:2.7.4')
compile('com.fasterxml.jackson.core:jackson-annotations:2.7.4')
compile('commons-httpclient:commons-httpclient:3.1')
compile('org.htmlparser:htmlparser:1.6')
compile "commons-lang:commons-lang:2.6"
compile "commons-io:commons-io:2.4"
compile "commons-codec:commons-codec:1.5"
runtime("mysql:mysql-connector-java")
testCompile('org.springframework.boot:spring-boot-starter-test')
}
3、前端代码
4、启动应用
在IDE中直接直接执行main方法,然后访问http://localhost:8080
即可。
三、附录
1、thymeleaf Exception parsing document: template="xxxx"错误
Thymeleaf模板引擎,遇到不闭合标签会报这个错误,很是蛋疼啊。最后发现是自动生成的meta标签没有关闭,太太坑了。
网上搜来的解决方案:
(1). 添加maven依赖
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.22</version>
</dependency>
(2). 更改application.properties属性
spring.thymeleaf.mode=LEGACYHTML5