在学习SpringBoot之前呢也查阅过一个博客和书籍,对于使用Spring框架学者来说,在开发新构建项目会配置很多配置文件,后来通过Maven等构建工具来创建针对不同场景的脚手架工程,需要新建项目时通过这些脚手架来初始化我们定义的标准工程,虽然这样减少了不少的工作量,但是这些配置依然散布在我们工程中。
Spring Boot的出现可以有效改善这类问题,Spring Boot的宗旨并非要重写Spring或代替它,而是希望通过设计大量的自动化配置等方式简化Spring原有的配置,这样使开发者可以快速构建应用。
项目构建
系统及工具版本
1.我是用的jdk1.8
2.Maven3.3.9
3.Spring Boot 2.0.3
构建Maven项目
这里配置maven和jdk环境就不介绍了
我是通过官网的Spring Initialiar工具来生产的基础项目,访问http://start.spring.io,构建完之后解压缩并用IDE以Maven项目导入。
工程结构解析
在完成上面的步骤后就创建了一个最基础的SpringBoot工程
Maven配置解析
打开当前工程下的pom.xml文件
4.0.0
com.code
SpringCloud_1.0
0.0.1-SNAPSHOT
jar
SpringCloud_1.0
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
2.0.3.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-starter-thymeleaf
org.springframework.boot
spring-boot-maven-plugin
我们注意到:打包方式为 : jar
jar
Spring Boot默认奖该Web应用打包为jar的形式,而非war的形式,因为默认的web模块依赖会包含嵌入式的Tomcat,这样使得我们的应用jar自身就具备了提供Web服务能力。
org.springframework.boot
spring-boot-starter-parent
2.0.3.RELEASE
说明:Spring Boot的项目必须要将parent设置为spring boot的parent,该parent包含了大量默认配置,大大简化了我们的开发。
在项目依赖dependencies配置中,包含了下面两项。
1.spring-boot-starter-web:web开发模块,包含嵌入式Tomcat、SpringMVC.
2.spring-boot-starter-test :通用测试模块
当然如果需要连接数据库可以引入:
spring-boot-starter-jdbc、spring-boot-starter-data-jpa等.不像传统Spring应用开发方式,需要在pom.xml文件里配置大量依赖,而是通过使用 Starter POMs定义依赖包
Spring Boot 的Starter POMs采用 spring-boot-starter-*命名方式,*代表一个应用功能模块依赖。
实现RESTful API
在spring Boot中使用RESTful跟在Spring中是一样的,只是不再像Spring那样先做配置。
package com.code.SpringCloud_10.web;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("/hello")
public String index(){
return "Hello Word";
}
}
启动应用,访问 http://localhost:8080/hello
这里有一个问题就是:
启动入口必须在controller之外,否则会报错的。
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Wed Jun 27 16:09:21 CST 2018
There was an unexpected error (type=Not Found, status=404).
No message available