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 ...
随机推荐
- etcd部署简单说明
etcd是一个K/V分布式存储,每个节点都保存完成的一份数据.有点类似redis.但是etcd不是数据库. 1.先说废话.之所以会用etcd,并不是实际项目需要,而是前面自己写的上传的DBCacheS ...
- zepto 基础知识(2)
20.append append(content) 类型:self 在每个匹配的元素末尾插入内容(内部插入).内容可以为html 字符串.dom节点,或者节点组成的数组. $('ul').append ...
- 剑指offer js算法练习(1-10)
1.二维数组中的查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数, ...
- flex 遇到white-space:nowrap
背景,做一个前面图片宽度固定,后面宽度自适应,使用到了flex布局,但是想让后面div里文字不换行,超出以点点表示时,这时布局就乱了,查了下,原来flex布局与white-space:nowrap有影 ...
- ci框架 用框架自带db 添加括号,比如 like 等等左右添加括号 解决办法
$this->load->model('station/Station_model','Station'); // East // North $this->Station-> ...
- JSP/Servlet开发——第六章 JSP开发业务应用
1. 大容量的数据显示的缺点: ●当数据量较多时,用户需要拖动页面才能浏览更多信息: ●数据定位不便: 2.分页显示: ●既能显示多条数据,又不需要拖动页面,是数据更加清晰直观,页面不再冗长,也不受数 ...
- vuex组件 vuex-persistedstate
vuex用于管理项目中的全局状态,但是我们一刷新vuex中保存的全局状态就会被全部初始化,虽然我们也可以同事缓存到storage中做两步操作,但是vuex-persistedstate组件已经帮我们完 ...
- PHP 面向对象编程笔记 (麦子 php 第二阶段)
类是把具有相似特性的对象归纳到一个类中,类就是一组相同属性和行为的对象的集合.类和对象的关系:类是相似对象的描述,先有类,再有对象.类是对象的抽象,对象是类的实例.通过class关键字创建类,成员属性 ...
- Source Insight的使用
1. source insight查看函数的上一级调用的位置(函数) --> 鼠标放在函数上,右键 选择 Jump To caller,就可以看到有哪些函数调用它了:
- 5.Python的语言特点
前言 Python有哪些语言特点?可以列出的特点很多,例如,<Python核心编程>第二版列出了十多条特点.本文的三个特点是笔者学习Python的体会,其他特点有体会之后再写,笔者是这 ...