一文弄懂springBoot简介以及快速搭建项目

Posted Java小海.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一文弄懂springBoot简介以及快速搭建项目相关的知识,希望对你有一定的参考价值。

Spring Boot是什么?

  1. SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,所谓简化是指简化了Spring众多框架中所需的大量且繁琐的配置文件,所以 SpringBoot是一个服务于框架的框架,服务范围是简化配置文件。

  2. 它使用“习惯优于配置”(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速运行起来。使用Spring Boot很容易创建一个独立运行(运行jar,内嵌Servlet容器)、准生产级别的基于Spring框架的项目,使用Spring Boot你可以不用或者只需要很少的Spring配置。

  3. 因为我之前是做前端的,我习惯和前端的基础栈去比较,我感觉springBoot更像是前端的脚手架vue-cli, springBoot有一个配置文件 application.yaml ,可以对项目全局配置,比如端口号,基础请求路径,运行环境,其他扩展等进行配置,vue-cli也有一个 vue.config.js,可以对项目进行配置,springBoot有一个文件 pom.xml可以对依赖以及依赖的版本号进行控制,vue-cli也有一个文件 package.json可以对项目的依赖进行控制,所以对于前端和后端的项目来说,二者有着类似的作用。

Spring Boot的核心功能

  1. 独立运行的spring项目:可以以jar包的形式独立运行,通过Java -jar xx.jar来运行。
  2. 内嵌的servlet容器:可以选择内嵌的Tomcat、Jetty或者Undertow。
  3. 提供starter简化,maven配置:通过一系列的starter pom 来简化maven的依赖加载。
  4. 自动配置spring:spring boot 会根据在类路径中的jar包、类,为jar包里的类自动配置bean,这样会极大的减少我们要使用的配置。
  5. 准生产的应用监控:提供了基于http、ssh、telnet对运行的项目进行监控。
  6. 无代码生成的xml配置:通过条件注解来实现。

Spring Boot的优点

  1. 快速构建项目
  2. 对主流的开发框架的无配置集成
  3. 项目可独立运行,无须外部用来servlet容器
  4. 提供运行时的应用监控
  5. 极大的提高了开发部署效率
  6. 与云计算天然集成

Spring Boot快速搭建

直接使用idea,点击右上角【file】-->【new】-->【project】, 选择左边【Spring Initializr】,填上关键信息后即可创建springBoot项目

第一步:

第二步:选择【spring initialzr】, 填写项目基础信息,例如名称,地址,库,java版本等等

第三步:选择初始化需要下载的依赖

第四步: 选择【Finish】,就ok了

基础项目结构

创建好项目后,可以看到有如下文件:

  1. src/main/java 程序开发以及主程序入口
  2. src/main/resources 配置文件
  3. src/test/java 测试程序
  4. pom.xml springBoot配置文件

启动项目

  1. 由于我选择的Maven,所以要从Maven仓库中现在一下依赖,点击idea编辑器右侧的【Maven】,选择刷新按钮,等待完成就行了

  1. 然后我们选择入口函数,代码左边有个小三角,项目就启动了


链接: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” 区别

一文教你快速部署OneBlog开源项目

一文弄懂pytorch搭建网络流程+多分类评价指标

RabbitMq一文彻底弄懂RabbitMq的四种交换机原理及springboot实战应用

Spring Boot基础:Spring Boot简介与快速搭建