一、初识SpringBoot

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_38323872/article/details/98031155

SpringBoot简介

SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。(—摘自百度词条)SpringBoot很大程度上降低了编码、配置、部署和监控的难度。从根本上来说,SpringBoot就是参加“变形计”之后的Spring,准确的说是基于Spring4.0的基础上演变而来的。


SpringBoot的核心功能

  1. 独立运行的Spring项目。
  2. 内嵌Servlet容器,可以选择Tomcat或者Jetty作为内嵌服务器,这样就无需将项目打包为war包运行。
  3. 提供Starter以简化Maven或者Gradle的配置,例如:spring-boot-starter-web、spring-boot-starter-tomcat、spring-boot-starter-aop等
  4. 自动化配置Spring环境,以Maven为例,SpringBoot能够根据我们在pom文件中引入的starter自动装配bean。
  5. 准生产的应用监控,在SpringBoot中提供了基于HTTP,SSH和telnet对项目进行监控。只需要引入spring-boot-starter-actuator这个依赖即可自定义监控。
  6. 无代码声称和xml配置,在SpringBoot中,默认约定"习惯优于配置"(项目中存在大量的配置,此外还内置一个习惯性配置,让你无需手动进行配置)的理念使项目快速运行起来。

SpringBoot的优缺点

一、优点

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

二、缺点

1. 高度集成,尽管简化了开发流程,但不利于使用时对底层的理解。
2. 由于高度集成形成了一个黑盒,不利于bug的解决。

SpringBoot的快速搭建

一、开发环境

工具 版本
IntelliJ IDEA V.2018.27(无特殊要求)
SpringBoot 2.1.6.RELEASE
Maven 3.3+
Gradle 4.4+
Tomcat 8.0
JDK 1.8

注:也可以部署SpringBoot项目在任何Servlet 3.1+ 的容器内。

二、第一个SpringBoot项目

1. 基于SpringBoot官网构建项目。

由于不常用到,这里就不具体介绍,具体可以自行花费三分钟到官网学习。

2. 使用开发工具构建项目

1. 创建项目
  • 打开idea开发工具,点击Create New Project
  • 选择Spring Initializr,点击Next进入到如下界面。
    初始化SpringBoot版本信息
    这里可以选择SpringBoot的版本以及自定义选择一些starter用来初始化环境,这里我只选了Spring Web Starter。
  • 继续点击Next,设置项目名称、包名以及项目内容描述,之后我们的项目便创建成功,如下图:
    在这里插入图片描述
    至此项目创建完成。
2. 目录介绍

在这里插入图片描述

1. .mvn、HELP.md、mvnw、mvnw.cmd均为初始化项目生成,可删除。
2. src/main/java 项目代码开发目录以及SpringBoot主程序入口。
3. src/main/resources 项目配置文件的存放路径。
4. src/main/resources/templates 项目模板存放路径,因此需要视图解析器来解析它。所以必须通过服务器内部进行访问,必须走控制器->服务->视图解析器这个流程,在后续整合Thymeleaf文章中会有介绍。
5. src/main/resources/static 只能服务器内部访问,故而多用来存放一些css、图片等静态资源文件。

3. POM文件

此时,pom文件当中的依赖分为两块,如下图所示:
在这里插入图片描述

  • spring-boot-starter-web:动态Web模块,该模块自动依赖spring-boot-starter核心模块。
  • spring-boot-starter-test:见名知意,测试模块,主要包括有JUnit、Hamcrest以及Mockito。
4. 编写RestFul接口
/**
 * FileName: HelloWorldController
 * Author:   RollerRunning
 */
@RestController//复合注解,相当于@ResponseBody + @Controller
public class HelloWorldController {
    @RequestMapping("hello")
    public String hello(){
        return "Hello World!";
    }
}
注:@RestController会将当前Controller中的所有方法返回的结果都转为json并返回,配置
的视图解析器 InternalResourceViewResolver不起作用,也就不会进行jsp或者html的跳转。
5. 启动项目

通过浏览器访问http://localhost:8080/hello,就能成功访问,并返回return中的值了,高效!
整个过程不需要我们做任何的web.xml配置,也不需要Spring、SpringMVC的xml配置,更没有配置Tomcat等一系列重复的操作,因为一切都是SpringBoot在替我们负重前行。感谢SpringBoot老铁送来的框架!

6. 单元测试

很简单,就两个注解:@RunWith(SpringRunner.class) + @SpringBootTest,进入src/test目录下即可编写测试代码,如下:

/**
 * FileName: HelloWorldController
 * Author:   RollerRunning
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class HelloworldApplicationTests {

    private MockMvc mvc;

    @Before
    public void setUp() throws Exception {
        mvc = MockMvcBuilders.standaloneSetup(new HelloWorldController()).build();
    }

    @Test
    public void getHello() throws Exception {
        mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk())
                .andExpect(content().string(equalTo("Hello World!")));
    }

}

代码完成后,点击运行即可!

总结

  • 参考文献:
    https://spring.io/guides/gs/spring-boot/
    https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/
  • 源码GitHub地址:https://github.com/zheng-weiwei/public.git

感谢,请多多指教!

猜你喜欢

转载自blog.csdn.net/weixin_38323872/article/details/98031155