学习目标:
对于掌握和熟悉的东西需要背下来
1.1 Spring Boot 概述
1.1.1 Spring Boot简介
springboot的历史(也可以另外看文字,了解历史有助于你提高对框架的学习和理解):spring框架虽然已经是轻量级的啦,但是配置文件是重量级的,随着生产中敏捷开发的需要,在spring中使用注解开发逐渐成为主流,这个时候有一个团队基于spring框架开发了全新的springboot框架,之后不断升级,出现啦springboot2.X,推荐使用优化过后的2.x版本。
springboot不是替代spring框架的解决方案,只是 和spring框架结合,提升spring框架开发者体验的工具,springboot集成啦很多第三方库配置。大部分springboot应用只需要一点配置就可以完成相应的功能,这样可以让开发者集中精力在业务逻辑实现上。
1.1.2 Spring Boot 的优点
1.springboot只需要配置相关的场景依赖,就可以快速构建出一个独立的spring应用。
2.springboot框架内嵌啦tomcat,jetty等服务器,可以自动将项目打包,项目运行的是时候部署到服务器上。
3.不需要引入相应的jar包,只需要根据开发场景需求选择对应的依赖启动器,在引入的依赖启动器内部已经有啦对应的依赖,它会自动下载拉取相关的jar包。
4.自动化配置spring和第三方库,他的内部有各种自动化配置类,引入某个场景的依赖启动器,springboot内部提供的默认启动类就会生效。
5.提供生成就绪功能
6。很少的代码生成和xml配置。
在学习springboot之前你要对spring框架有一定的理解。
1.2 Spring Boot 入门程序
1.2.1 环境准备
本书讲解的版本是:2.1.3版本的springboot,你可以观看自己的springboot版本,对应的jdk版本。
Spring Boot各版本与Java版本的对应兼容关系,与构建工具(Maven、Gradle)版本的对应兼容关系,对servlet 容器的支持_springboot java版本-CSDN博客
项目管理工具:maven 3.60,也可以用自己相关的版本的maven
开发工具:idea。
1.2.2 使用 Maven 方式构建 Spring Boot项目
在这之前需要idea配置maven和jdk:
IDEA配置Maven(详细版)_idea maven-CSDN博客
1.2.3使用 Spring Initializr 方式构建Spring Boot 项目
使用maven创建springboot项目的方法在网上自行查找,我比较喜欢使用idea直接创建springboot项目:Spring Initializr是一个web应用,能够帮我们快速构建springboot项目
1.
2.服务器url使用默认的地址:,使用这个方式创建springboot项目需要联网。
3.进入场景依赖选则页面:
这个用来选中springboot版本
这里是开发场景,每一个场景汇总啦多种技术实现方案,比如web场景下有springweb依赖技术实现方案。选中对应的依赖springboot项目创建之后会自动导入依赖,如图进行操作:
springboot项目结构如下:
使用这个方式创建springboot项目会自动生成:1.项目启动类,2.存放前端静态资源和页面的文件夹,3.项目配置的配置文件,4.单元测试的测试类。
创建一个用于web访问的请求处理控制器类Controller,编写一个处理方法:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
//这个注解的作用:把这个类作为控制器的组件,添加到spring容器中,该类方法无法返回jsp页面,会返回json页面
@RestController//这个等同于spring中的@Controller+@ResponseBody
public class HelloController {
//设置方法的请求访问路径,并设置访问方式为:get方式,
@GetMapping("/hello")//相当于spring中的@RequestMapping(RequestMethid,GET)
public String hello(){
return "fanronglou";
}
}
启动项目就可以啦。
1.3 单元测试与热部署.
1.3.1 单元测试
每次编写完一个接口或者业务方法之后都要用的单元测试进行验证是否正确。在pom文件需要添加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
构建项目的时候会自动添加对应依赖。
现在可以编写对应方法的测试类啦:
import com.waiguoyu.oneday.Controller.HelloController;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
//跟项目主程序启动类相连的单元测试类
@RunWith(SpringRunner.class)//测试运行器,加载springboot测试注解
@SpringBootTest//标记单元测试类,加载项目的上下文环境
class OnedayApplicationTests {
//新增单元测试方法:1.注入要测试的实例对象,2.在对应的单元测试类中调用想要测试的请求方法
@Autowired
private HelloController helloController;
@Test
public void hellocontrollertest(){
String hrll = helloController.hello();
System.out.println(hrll);
}
//单元测试示例
@Test
void contextLoads() {
}
}
出现这个代表成功
1.3.2 热部署
热部署的依赖启动器:有时候需要修改代码然后又启动项目,耗时间比较久,就需要使用这个,不用开发人员手动启动项目。
1.添加热部署依赖:
//热部署依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
2.idea工具热部署设置:勾选自动构建项目选项
3.
看热部署有没有完成就看,你运行项目后,修改方法返回值,刷新界面,看界面有没有返回修改后的值。
1.4 Spring Boot 原理分析
1.4.1 Spring Boot 依赖管理
1.4.2 Spring Boot自动配置
对项目入口进行解析:
1.@SpringBootApplication是一个集合注解,包含啦三个spring的注解,如下
第一个注解:用于标识被组件扫描器扫描的配置类。
第二个有点复杂没看懂,可以另外看文章,大概就是讲如何找到对应的组件,定位对应的组件,以及配置组件
第三个注解:将指定包中的注解类自动配置到bean容器中。
这里的目标需要理解这几个配置类
1.4.3 Spring Boot 执行流程
文字的太复杂啦,主要就是解析
SpringApplication.run(OnedayApplication.class, args);这个方法,大家可以看具体的源码进行理解
这个执行流程了解就可以啦
1.5 本章小结
本章学习我学会如何创建springboot项目,并且能看懂pom文件管理的方式,理解它每段代码的作用,知道如何书写springboot项目业务代码的单元测试方法,以及设置热部署(在启动项目的情况下更新代码,就不用一直启动啦),并且了解啦springboot的相关注解的作用,还有springboot的相关原理。
1.6 习题
我个人的答案:1.spring,2.约定优先配置,3.8,4.maven,gradle,5.@Controller+@ResponseBody。6.错,7.错 8.对 9.错,10.错
1.abcd,2.D,3.A,BC,4.B,5.A
课后训练:
需要记住:1.springboot的项目结构,2.@RestController, @GetMapping("/hello")注解的作用
这里需要记住:1.单元测试的流程,2.@RunWith(SpringRunner.class)//测试运行器,加载springboot测试注解
@SpringBootTest//标记单元测试类,加载项目的上下文环境
这里需要记住:1.单元测试的流程,2.@RunWith(SpringRunner.class)//测试运行器,加载springboot测试注解
@SpringBootTest//标记单元测试类,加载项目的上下文环境
需要课外单独去熟悉springboot原理分析,主要就是springboot启动类那边的注解以及对应的方法。
标签:springboot,项目,Spring,单元测试,第一章,Boot,spring,入门 From: https://blog.csdn.net/laiyoumi/article/details/143653262