在学习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文件

<?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.code</groupId>
	<artifactId>SpringCloud_1.0</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>
	<name>SpringCloud_1.0</name>
	<description>Demo project for Spring Boot</description>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.3.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-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>

我们注意到:打包方式为 : jar  

<packaging>jar</packaging>

Spring Boot默认奖该Web应用打包为jar的形式,而非war的形式,因为默认的web模块依赖会包含嵌入式的Tomcat,这样使得我们的应用jar自身就具备了提供Web服务能力。

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.3.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
</parent>

说明: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
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐