什么是spring boot

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适)。

快速入门

说了那么多,手痒痒的很,马上来一发试试!

环境准备:

IDEA  2017.3.5  Ultimate Edition 或者 IDEA  Community Edition +spring Assistant

Maven 3.5.2

新建项目:

IDEA 下File =>New => Project

一直下一步直到项目创建完成,项目结构如下:

关键代码:

DemoApplication 应用程序启动
/*
* @SpringBootApplication 标注一个主程序类,声明应用为spring boot 应用
* */
@SpringBootApplication
public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args);
}
}

新建一个控制器:

/*
* @RestController 表示一个RestController的注解
* */
@RestController
public class HelloController {
/*
* @RequestMapping 路由映射的注解
* */
@RequestMapping("/hello")
public String Hello(){
return "Hello World";
}
}

解析来运行 DemoApplication

在浏览器中访问 http://localhost:8080/hello

至此,一个简单的HelloWorld的spring boot项目构建完成;

测试

增加一个测试类

package com.example.demo;
import static org.hamcrest.CoreMatchers.equalTo;
import com.example.demo.controller.HelloController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.mock.web.MockServletContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = MockServletContext.class)
@WebAppConfiguration
public class SampleControllerTest {
private MockMvc mock; @Before
public void setUp() throws Exception {
mock = MockMvcBuilders.standaloneSetup(new HelloController()).build();
} @Test
public void testHome() throws Exception {
mock.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("Hello World!")));
}
}

 运行测试

项目打包:

Spring Boot的Maven插件(Spring Boot Maven plugin)能够以Maven的方式为应用提供Spring Boot的支持,即为Spring Boot应用提供了执行Maven操作的可能。
Spring Boot Maven plugin能够将Spring Boot应用打包为可执行的jar或war文件,然后以通常的方式运行Spring Boot应用。
Spring Boot Maven plugin的最新版本为2017.6.8发布的1.5.4.RELEASE,要求Java 8, Maven 3.2及以后。

2. 配置pom.xml文件

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.5.4.RELEASE</version>
</plugin>
</plugins>
</build>

  

3.mvn package spring-boot:repackage说明

Spring Boot Maven plugin的最主要goal就是repackage,其在Maven的package生命周期阶段,能够将mvn package生成的软件包,再次打包为可执行的软件包,并将mvn package生成的软件包重命名为*.original。

基于上述配置,对一个生成Jar软件包的项目执行如下命令:

mvn package spring-boot:repackage

也可以执行ide maven下的package打包

在控制台中运行 java -jar C:\project\demo\target\demo-0.0.1-SNAPSHOT.jar 即可运行生成的jar包;

项目解析:

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>
<!--父项目,spring项目的基石,基于spring-boot-dependencies<定义了activity-mqd等所有项目依赖,spring-boot的版本的仲裁 中心,-->
<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>
<!--导入的依赖-->
<!--spring-boot-starter场景启动器,导入了web模块的正常运行所依赖的组件-->
<!--场景启动器:spring boot将所有的功能场景都提取出来,做成一个个的Starters做成-->
<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>
</dependencies> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>

  

参看自:

InteliJ IDEA创建spring boot项目的(社区版安装插件)

项目源码:

https://github.com/491134648/spring-boot-first-demo

最新文章

  1. JQuery使用deferreds串行多个ajax请求
  2. IOS NSDate NSDateFormatter 导致相差8小时
  3. ODBC错误处理
  4. webservice 的权限验证
  5. codeforces D. Long Path
  6. 文档onload处理程序
  7. SQL Server中TempDB管理(版本存储区的一个example)
  8. 《JavaScript面向对象编程指南(第2版)》读书笔记(二)
  9. Ubuntu14.04 设置wifi热点
  10. eclipse maven 打war包的几种方式
  11. JavaScript基础笔记(十)表单脚本
  12. resharper license server
  13. PHP7 学习笔记(十)会话控制
  14. Linux基础命令---arping
  15. python pandas 豆瓣电影 top250 数据分析
  16. &lt;bean&gt; 中配置详解 &lt;/bean&gt;
  17. PHP调用Linux的命令行执行文件压缩命令&amp;&amp;创建文件夹修改权限
  18. virtualbox+vagrant学习-5-Boxes-2-Box Versioning
  19. css 尾巴
  20. 云栖神侠传—阿里云数据库专家德歌告诉你PostgreSQL的那些事

热门文章

  1. mysql innodb插入意向锁
  2. Android TextView设置个别字体样式
  3. webservice0基础
  4. Malformed or corrupted AST file: &amp;#39;Unable to load module &amp;quot;...
  5. python的序列化和反序列化以及json
  6. 三. 200多万元得到的创业教训--创业并不须要app
  7. Android开发之自己定义Spinner样式的效果实现(源码实现)
  8. 常用的Sublime Text插件及安装方法
  9. jetty与tomcat
  10. 连接mysql时报:message from server: &quot;Host &#39;192.168.76.89&#39; is not allowed to connect to this MySQL server