一文弄懂springBoot简介以及快速搭建项目
Posted Java小海.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一文弄懂springBoot简介以及快速搭建项目相关的知识,希望对你有一定的参考价值。
Spring Boot是什么?
-
SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,所谓简化是指简化了Spring众多框架中所需的大量且繁琐的配置文件,所以 SpringBoot是一个服务于框架的框架,服务范围是简化配置文件。
-
它使用“习惯优于配置”(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速运行起来。使用Spring Boot很容易创建一个独立运行(运行jar,内嵌Servlet容器)、准生产级别的基于Spring框架的项目,使用Spring Boot你可以不用或者只需要很少的Spring配置。
-
因为我之前是做前端的,我习惯和前端的基础栈去比较,我感觉springBoot更像是前端的脚手架vue-cli, springBoot有一个配置文件
application.yaml
,可以对项目全局配置,比如端口号,基础请求路径,运行环境,其他扩展等进行配置,vue-cli也有一个vue.config.js
,可以对项目进行配置,springBoot有一个文件pom.xml
可以对依赖以及依赖的版本号进行控制,vue-cli也有一个文件package.json
可以对项目的依赖进行控制,所以对于前端和后端的项目来说,二者有着类似的作用。
Spring Boot的核心功能
- 独立运行的spring项目:可以以jar包的形式独立运行,通过Java -jar xx.jar来运行。
- 内嵌的servlet容器:可以选择内嵌的Tomcat、Jetty或者Undertow。
- 提供starter简化,maven配置:通过一系列的starter pom 来简化maven的依赖加载。
- 自动配置spring:spring boot 会根据在类路径中的jar包、类,为jar包里的类自动配置bean,这样会极大的减少我们要使用的配置。
- 准生产的应用监控:提供了基于http、ssh、telnet对运行的项目进行监控。
- 无代码生成的xml配置:通过条件注解来实现。
Spring Boot的优点
- 快速构建项目
- 对主流的开发框架的无配置集成
- 项目可独立运行,无须外部用来servlet容器
- 提供运行时的应用监控
- 极大的提高了开发部署效率
- 与云计算天然集成
Spring Boot快速搭建
直接使用idea,点击右上角【file】-->【new】-->【project】, 选择左边【Spring Initializr】,填上关键信息后即可创建springBoot项目
第一步:
第二步:选择【spring initialzr】, 填写项目基础信息,例如名称,地址,库,java版本等等
第三步:选择初始化需要下载的依赖
第四步: 选择【Finish】,就ok了
基础项目结构
创建好项目后,可以看到有如下文件:
- src/main/java 程序开发以及主程序入口
- src/main/resources 配置文件
- src/test/java 测试程序
- pom.xml springBoot配置文件
启动项目
- 由于我选择的
Maven
,所以要从Maven
仓库中现在一下依赖,点击idea编辑器
右侧的【Maven】,选择刷新按钮,等待完成就行了
- 然后我们选择入口函数,代码左边有个小三角,项目就启动了
链接:https://juejin.cn/post/7039588778658250766
一文弄懂Springboot+Junit5微服务单元测试编写实践
Springboot+Junit5微服务单元测试编写实践
现在写单元测试的重要性不言而喻,下边说明一下Junit5测试的会用到的主要注解和方法。PS:常用开发工具都可以自动生成Junit测试类。
单元测试命名
可参考【翻译】7种流行的单元测试命名约定
在项目种我选择的是should...when的写法,但需注意方法命名时不要过长,过长反而导致难于阅读和理解
2. 常用注解
-
类注解
- @SpringbootTest 加在类上,会启动整个环境;做集成测试;由于controller层逻辑少,一般用在controller层;比较慢
- @ExtendWith(SpringExtension.class) Junit5中用来替代Junit4的@RunWith(SpringJUnit4ClassRunner.class),会启动Spring的上下文
- @ContextConfiguration 指定加载ApplicationContext的配置文件或配置类,一般和@ExtendWith(SpringExtension.class)结合使用
- @ExtendWith(MockitoExtension.class) Junit5中用来替代JUnit4 @RunWith(MockitoJUnitRunner.class)。不需要Spring上下文时用该注解
-
模拟类或接口的注解
- @Mock、@InjectMocks、@Spy
Mockito库提供的注解;@Mock创建一个Mock对象,@InjectMocks创建一个实例,尝试将其它有@Mock或@Spy的对象注入到该实例中;@Spy默认会调用真实的方法,@Mock默认不执行
- @MockBean、@SpyBean
Spring Boot包装Mockito库提供的注解;@MockBean创建的对象默认会加入Spring的上下文中,如果Spring的上下文存在则替换;@MockBean和@SpyBean区别同@Mock和@Spy的区别
-
方法注解
- Test 同Junit4
-
常用测试方法
- Mockito.when().thenReturn()
- Mockito.doNothing().when(类).方法
- Assertions.assertTrue
- Assertions.assertNotNull
- Mockito.verify(bean, times(次数)).方法
- Assertions.assertThrows(Class expectedType, () -> 类.方法)
3. 测试方法结构
单元测试采用Given...When...Then的结构,即 准备数据,用mock模拟方法返回值 执行,调用测试方法 验证,用assert等验证方法返回结果
数据库的单元测试
@MybatisPlusTest
只注入MybatisPlus相关Bean做单元测试,比较像@Mybatis注解,由mybatis-plus的3.4.0版本后的mybatis-plus-boot-starter-test模块提供。
可以在做数据库的单元测试时不使用@SpringBootTest注解启动整个工程
接入层的单元测试
@WebMvcTest
同样用来做MVC层的单元测试,只注入MVC层相关的Bean
以上是关于一文弄懂springBoot简介以及快速搭建项目的主要内容,如果未能解决你的问题,请参考以下文章
一文让你彻底弄懂 “vue-style-loader” 跟 “style-loader” 区别