Spring Boot(一)入门篇
SpringBoot概述
Spring Boot的诞生简化了Spring应用开发,SpringBoot提供对Spring容器、第三方插件等很多服务的管理。对于大部分Spring应用,无论是简单的web系统还是构建复杂的系统,使用SpringBoot只需要少量的配置就可以完成。
与SSM、SSH等相比,SpringBoot具有以下优点:
- 实现约定大于配置,是一个低配置的应用系统,只需要极少甚至不需要配置,就能使用Spring的大量功能。
- 提供内置的Tomcat或者Jetty容器
- 通过依赖的jar包管理,自动装配技术,容易支持与其他技术体系、工具的集成。
- 支持热加载等。
Springboot工程搭建
Spring boot工程可以通过Intellij IDEA手动创建,也可以直接在spring官网(http://start.spring.io/)下载,以下为直接在spring官网生成工程并导入

将下载后的SpringBoot工程解压导入到Intellij,项目结构如下:

一个最简单的SpringBoot Web工程结构相比于SpringMvc工程不管是目录结构还是配置文件确实少了很多,我们看一下包含的几个文件分别有什么作用
- SpringbootdemoApplication: 一个带有 main() 方法的普通Java类,带有@ SpringBootApplication注解,标识这是SpringBoot应用启动入口。
- application.properties:一个空的 properties 文件,可以根据需要添加配置属性
- SpringbootdemoApplicationTests:一个默认的Junit 测试脚手架,它加载了一个使用 Spring Boot 字典配置功能的 Spring 应用程序上下文属性
- pom.xml: maven依赖
Pom文件解析,完整的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.sl</groupId>
<artifactId>springbootdemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <name>springbootdemo</name>
<description>Demo project for Spring Boot</description> <!--父级依赖:添加了这个配置,标识该工程是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来提供服务,默认已提供一系列的Starter,都是以spring-boot-starter-xx命名的-->
<!--起步依赖,此处创建的是Web工程,必须添加spring-boot-starter-web依赖-->
<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>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build> </project>
添加示例:
在com.sl.springbootdemo下创建类,并添加示例代码,具体如下:
package com.sl.springbootdemo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
public class HomeController { @RequestMapping("/hello")
public String hello() {
return "Spring Boot Demo";
} }
启动项目:
对于新手而言,启动方式有三种,参考:http://tengj.top/2017/02/26/springboot1/

如上即成功运行,在浏览器输入:http://localhost:8080/demo, 即可正常访问,以上即一个简单的web项目搭建。
热部署
上面的示例,如果修改类则必须再次重新运行应用,对于开发者来说非常不方便,Spring Boot提供了Spring-boot-devtools,它能在修改类或者配置文件的时候自动重新加载Spring Boot应用,只需要在pom.xml文件中添加如下依赖即可:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
重新启用SpringBoot,修改其他代码就可以发现控制台自动输log,说明工程自动重启了,以下为控制台输出log:

可以发现一个小细节,这次重启时间之后0.314s(之前手动启动时间约在1.7s),这是因为Spring Boot再次重启,避免了Tomcat重启,也避免重启已经加载的Spring相关类,只是重新加载变化的类,所以相对速度快一点。
如果添加了上面配置还是不行,则需要检查一下IntelliJ配置:
1. file -> setting –> compiler 将 Build project automatically 勾选上
2. ctrl + alt + shift + / 快捷键,弹框中 选第一个registry,弹出框后下拉找到 compiler.automake.allow.when.app.running 勾选上
以上内容来源于学习内容:
书本: 《Spring Boot2精髓》
博客: http://tengj.top/2017/02/26/springboot1/
Spring Boot(一)入门篇的更多相关文章
- Spring Boot -01- 快速入门篇(图文教程)
Spring Boot -01- 快速入门篇(图文教程) 今天开始不断整理 Spring Boot 2.0 版本学习笔记,大家可以在博客看到我的笔记,然后大家想看视频课程也可以到[慕课网]手机 app ...
- spring boot 学习入门篇【spring boot项目的搭建以及如何加载jsp界面】
[ 前言] Spring Boot 简介:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置, ...
- spring boot入门教程——Spring Boot快速入门指南
Spring Boot已成为当今最流行的微服务开发框架,本文是如何使用Spring Boot快速开始Web微服务开发的指南,我们将使创建一个可运行的包含内嵌Web容器(默认使用的是Tomcat)的可运 ...
- Spring Boot 从入门到实战汇总
之前写过几篇spring boot入门到实战的博文,因为某些原因没能继续. 框架更新迭代很快,之前还是基于1.x,现在2.x都出来很久了.还是希望能从基于该框架项目开发的整体有一个比较系统的梳理,于是 ...
- Spring Boot从入门到精通(五)多数据源配置实现及源码分析
多数据源配置在项目软件中是比较常见的开发需求,Spring和Spring Boot中对此都有相应的解决方案可供大家参考.在Spring Boot中,如MyBatis.JdbcTemplate以及Jpa ...
- Spring Boot从入门到精通(六)集成Redis实现缓存机制
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言 ...
- Spring Boot从入门到精通(七)集成Redis实现Session共享
单点登录(SSO)是指在多个应用系统中,登录用户只需要登录验证一次就可以访问所有相互信任的应用系统,Redis Session共享是实现单点登录的一种方式.本文是通过Spring Boot框架集成Re ...
- Spring Boot从入门到精通(九)整合Spring Data JPA应用框架
JPA是什么? JPA全称Java Persistence API,是Sun官方提出的Java持久化规范.是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. ...
- Spring Boot 快速入门
Spring Boot 快速入门 http://blog.csdn.net/xiaoyu411502/article/details/47864969 今天给大家介绍一下Spring Boot MVC ...
- Spring Boot快速入门(二):http请求
原文地址:https://lierabbit.cn/articles/4 一.准备 postman:一个接口测试工具 创建一个新工程 选择web 不会的请看Spring Boot快速入门(一):Hel ...
随机推荐
- Delphi 版FindWindow 和 FindWindowEx 的语法和用法
FindWindow(lpClassName, {窗口的类名}lpWindowName: PChar {窗口的标题}): HWND; {返回窗口的句柄; 失败返 ...
- lvs初体验
一.简介 LVS是 Linux Virtual Server 的简称,也就是Linux虚拟服务器.这是一个由章文嵩博士发起的一个开源项目,它的官方网址是http://www.linuxvirtuals ...
- Linux环境下tomcat如何热部署
1.修改tomcat配置文件 1.1第一步修改tomcat-users.xml <role rolename="manager-gui" /> <role rol ...
- 使用hibernate框架连接oracle数据库进行简单的增删改
初始化配置和session 关于配置文件这里就不在赘述了,假设配置文件配好后我们需要加载配置和sessionFactory,并获取session,因为每次进行增删改查时都需要session,所以封装成 ...
- js根据年份获取某月份有几天
function getNum(year, month) { var temp; month = parseInt(month, 10); temp = new Date(year, month, 0 ...
- Java写Excel(不生成实体文件,写为流的形式)
java 写 Excel(不生成实体文件,写为流的形式) public String exportReportExcel(String mediaCode, List<SimpleMediaRe ...
- 9.1 IIC驱动源码分析
学习目标:分析linux内核源码下的i2c总线驱动 drivers/i2c/busses/i2c-s3c2410.c 和 driver/i2c/chips/eeprom.c 设备驱动: 一.i2c驱动 ...
- keil5 mdk使用ST-Link II下载出现cannot halt the core解决办法
在正常的程序里面,我添加了MB85RS16(spi flash)这个外设驱动代码后,使用ST-Link II下载就出现cannot halt the core. 这个现象之前出现过1次,但是解决办法忘 ...
- ruby 数据类型Number
Ruby支持的数据类型包括基本的Number.String.Ranges.Symbols,以及true.false和nil这几个特殊值,同时还有两种重要的数据结构——Array和Hash 数值类型(N ...
- python快速改造:基础知识
改造"Hacking"并不同于破坏"cracking" python快速改造:基础知识 一行就是一行,不管多少,不用加分号 交互式python解释器可以当作计算 ...