SpringBoot微服务构建(一)
在学习SpringBoot之前呢也查阅过一个博客和书籍,对于使用Spring框架学者来说,在开发新构建项目会配置很多配置文件,后来通过Maven等构建工具来创建针对不同场景的脚手架工程,需要新建项目时通过这些脚手架来初始化我们定义的标准工程,虽然这样减少了不少的工作量,但是这些配置依然散布在我们工程中。Spring Boot的出现可以有效改善这类问题,Spring Boot的宗旨并非要重写Sp..
在学习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
更多推荐
所有评论(0)