SpringBoot主要解决的是在无服务的架构下简化配置(快速配置)、前后端分离、快速开发
提供了快速启动入门
开箱即用、提供默认配置
内嵌容强化web项目
没有冗余代码生成和xml配置要求
像之前搭建一个spring的项目,需要将各种jar包导入。
有了maven之后
maven解决的是依赖的问题
解决依赖冲突的问题:
start.spring.io构建项目的脚手架(空项目)生成工具。开箱即用
使用start构建项目脚手架导入springweb,会在项目中内置tomcat、spring、springMVC等和对应的默认配置文件
SpringBoot实现了框架之间的整合,提供框架的默认配置,提供了它们的启动器,以及相关依赖的引入,等等等等一切工作一个springboot搞定
如果想要修改其中一个框架的配置,提供了一个统一的配置文件application.properties,来配置个性化内容、覆盖默认配置。
在pom配置文件中:spring-boot-starter-web
在传统的spring 项目需要手动导入springMVC的包手动下载tomcat,还需要spring核心的一些包
java:主文件业务逻辑
resources:资源文件
web项目比传统项目多了static、templates文件夹和application.properties配置文件
static:存放静态文件、templates:存放静态模板,模板引擎
启动过程的升级
简化配置方便运维,由于项目只依赖JDK,项目的启动就很随意了。
批量开关服务
适合做微服务
运行jar包:命令行窗口cd到项目文件夹 java -jar jar包名称
jar包和war包区别
tomcat是javaee的一个应用程序
jdk是向下兼容的
从start.spring.io构建项目的脚手架(空项目)生成工具。
STS可以创建带有启动器的spring项目
File-New-SpringStarterProject
service URL:https://start.spring.io
国内镜像:https://start.aliyun.com
创建一个简单的maven项目可以通过在配置文件中右键点击spring-EditStarters引入依赖
--------------------------------------------------------------------------------
这种启动方式springboot会帮我们自动定位程序的程序的主入口
配置文件
修改端口号
server.port=8080
修改项目根路径
server.servlet.context-path=/boot
构建web应用
三层结构
controller、service、entity(domain、pojo)、dao(repostory)
程序的主入口
在controller里new一个class需要加上注解
@Component表示这里是一个组件纳入spring的管理
@Controller就是@Component
需要spring来管理controller
还有一个@RestController,是@controller和@ResponseBody
@ResponseBody注解不会被渲染 只把数据通过普通文本的格式输出到最前端不经过前端模板等等的渲染
除了@Controller还要给controller一个访问路径@RequestMapping("/user")()
添加@Controller注解只是说这个类是一个controller(加入到spring容器的管理,单例的)
想要访问这个controller还需要为其提供一个uri
然后通过这个uri来访问controller 中的某一个方法
所以方法上也要添加说明uri的注解,做资源定位
Controller中写一个普通的方法,方法的返回值是一个String类型的返回值,
spring会拦截这个返回值到resources下的templates中找到具体的“list”文件默认后缀是.html
方法上添加@RequestMapping("/list")注解作为访问该方法的具体的资源路径
(方法中的@ReqeustMapping会继承Controller上的@RequestMapping
如果Controller不加@RequestMapping路径会是
http://主机名:端口号/context/方法的uri)
这样访问http://主机名:端口号/context-path/controller的URI/方法的URI
两种常见的热部署
Spring自带的Add DevTools(重启项目实现热部署)
jrebel(热部署需要破解)
从后台动态的数据放在html页面中做动态的渲染
在Controller中由ModelMap 负责后端向前端以map形式传值
由模板引擎thymeleaf负责前后端关联.ModelMap与Model类似,比Model多了一些对Map处理的方法