Spring Boot
Spring Boot主要目的是简化了Spring的引用开发,遵循约定大于配置的思想,不需要我们再去配置就能运行Spring应用,Spring Boot管理Spring容器,第三方插件,并且提供了很多默认系统级的服务。大部分Spring应用,无论是简单的WEB系统还是构建复杂的系统,都自需要少量配置和代码就能完成,去繁从简,这样的结果就能让我们很快的创建一个独立的,产品级别的应用。
背景:J2EE笨重的开发、繁多的配置、低下的开发效率、复杂的部署流程、第三方技术集成难度大。
解决:
- “Spring全家桶”时代
- Spring Boot -> J2EE一站式解决方案
- Spring Cloud -> 分布式整体解决方案
Spring Boot 通过 Starter 来提供微服务,Spring Boot 已经提供了一系列 Starter,你也可以开发自己的starter,比如需要开发一个Web应用,只需要在pom.xml中进行一下声明即可。
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
<!-- 这是引用一个WEB应用,很简单吧 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.0.3.RELEASE</version>
</dependency>
Spring Boot 相对与Spring框架的优点有哪些?
- 实现约定大于配置,是一个低配置的应用系统框架。不像Spring那样“地狱般的配置体验”,想一下你们配置SSM整合的过程(难受啊!),Spring Boot 不需要配置或者极少配置,就能使用Spring大量的功能。
- 大量的自动配置,简化开发,也可修改默认值
- 无需配置XML,无代码生成,开箱即用
- 提供了内置的Tomcat或者Jetty容器,应用无需打成WAR包。
- starters 自动依赖与版本控制,通过依赖的jar包管理,自动装配技术,容易支持与其他技术体系,工具集成。
- 支持热加载(无需重新服务器),开发体验好。
- 支持Spring Boot 系统监控,方便了解系统运行状况。
- 与云计算的天然集成
Hello,Spring Boot
体验完成一个简单的WEB应用"Hello,Spring Boot!!",示例中使用的环境为
- JDK1.8
- Maven 3.X
- Intellij IDE 2018
- Spring Boot 2.0.3.RELEASE
Maven的设置
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
一个功能:浏览器发送hello请求,服务器接受请求并处理,响应Hello World字符串;
(1) 创建项目,选择Spring starter Project
(2)点击Next,填写跟项目相关的各种信息(我们要做WEB项目)
(3) 选择需要的Dependency,然后Next
在这里的版本,我没有使用最新版,因为在使用的阿里云中心中无法下载,所以我使用的2.0.4的版本
(4) 最后"Finish",就开始下载jar包了,这个过程需要的时间比较长
(5) 等待完毕之后的效果图如下,我调整了一下核心Application启动的位置
要将Application类放在最外侧,即包含所有子包
原因:spring-boot会自动加载启动类所在包下及其子包下的所有组件.
(6) 新建controller包,完成相关的测试
package com.hanpang.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class Demo01Controller {
@GetMapping("/test01")
public ModelAndView test01() {
System.out.println("Hello World");
return null;
}
}
(7) 右键运行Demo01Application启动类
(8) 在地址栏中访问,没有发布路径
其实整个过程你感觉很简单,中间过程也是遇到了各种错误,希望大家增加动手能力和解决问题的能力
备注:Spring Boot默认启动的是8080端口,WEB上下文是“/”,可以通过application.properties来进行重新配置