1. springboot概念
- 什么是SpringBoot
- 为什么要学习SpringBoot
- SpringBoot的特点
什么是SpringBoot
springboot是spring快速开发脚手架,通过约定大于配置的方式,快速构建和启动spring项目
为什么要学习SpringBoot
- spring的缺点:
复杂的配置, 项目各种配置是开发时的损耗, 写配置挤占了写应用程序逻辑的时间。
- 混乱的依赖管理。
项目的依赖管理非常的繁琐。决定项目里要用哪些库就已经够让人头痛的了,你还要知道这些库的哪个版本
和其他库不会有冲突,这是一个棘手的问题。并且,一旦选错了依赖的版本,随之而来的就是各种的不兼容 的bug。
spring boot 可以解决上面2个问题
SpringBoot的特点
- 快速开发spring应用的框架
- 内嵌tomcat和jetty容器,不需要单独安装容器,jar包直接发布一个web应用
- 简化maven配置,parent这种方式,一站式引入需要的各种依赖
- 基于注解的零配置思想
- 和各种流行框架,spring web mvc,mybatis,spring cloud无缝整合
总结
spring boot 是spring快速开发脚手架,通过约定大于配置,优化了混乱的依赖管理,和复杂的配置,让我们用 java -jar方式,运行启动java web项目
2. 入门案例
需求:创建HelloController,在页面中打印hello spring boot...
创建工程
我们先新建一个空的工程:
工程名为project:
设置jdk版本为1.8:
新建一个module:
使用maven来构建:
然后填写项目坐标:
目录结构:
项目结构:
添加依赖
SpringBoot提供了一个名为spring-boot-starter-parent的构件,里面已经对各种常用依赖(并非全部)的版本进 行了管理,我们的项目需要以这个项目为父工程,这样我们就不用操心依赖的版本问题了,需要什么依赖,直接引 入坐标即可!
添加父工程坐标
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent>
添加web启动器
为了让SpringBoot帮我们完成各种自动配置,我们必须引入SpringBoot提供的自动配置依赖,我们称为 启动器 。 因为我们是web项目,这里我们引入web启动器:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
需要注意的是,我们并没有在这里指定版本信息。因为SpringBoot的父工程已经对版本进行了管理了。 这个时候,我们会发现项目中多出了大量的依赖:
这些都是SpringBoot根据spring-boot-starter-web这个依赖自动引入的,而且所有的版本都已经管理好,不会出 现冲突。
管理jdk版本
默认情况下,maven工程的jdk版本是1.5,而我们开发使用的是1.8,因此这里我们需要修改jdk版本,只需要简单 的添加以下属性即可:
<properties> <java.version>1.8</java.version> </properties>
<?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.lxs.demo</groupId> <artifactId>springboot-demo</artifactId> <version>1.0-SNAPSHOT</version>
<properties> <java.version>1.8</java.version> </properties>
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent>
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> </project>
启动类
Spring Boot项目通过main函数即可启动,我们需要创建一个启动类:
然后编写main函数:
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
编写controller
接下来,我们就可以像以前那样开发SpringMVC的项目了!
我们编写一个controller:
代码:
@RestController public class HelloController { @GetMapping("/hello") public String hello(){ return "hello, spring boot!"; } }
启动测试
接下来,我们运行main函数,查看控制台:
并且可以看到监听的端口信息:
1)监听的端口是8080
2)SpringMVC的映射路径是:/
3) /hello 路径已经映射到了 HelloController 中的 hello() 方法
打开页面访问:http://localhost:8080/hello
测试成功了!