Spring-Boot-2X一入门篇

38次阅读

共计 4038 个字符,预计需要花费 11 分钟才能阅读完成。

什么是 Spring Boot


Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架遵循”约定优于配置“的思想,清除了原先使用 Spring 框架的那些样板化的配置,继承了原有 Spring 框架的优秀基因,从而帮助开发者快速开发应用。

SpringBoot 的特性



总的来说就是简单、快速、方便。

SpringBoot 的核心模块


创建 SpringBoot 项目


本文使用开发工具为 eclipse

官网 Maven 构建项目

  • 1、访问 https://start.spring.io/
  • 2、选择构建工具中 Maven Project、Java、Spring Boot 版本 2.1.8 以及一些项目的基本信息,可参考下图所示:

  • 3、点击 Generate Project 下载项目压缩包
  • 4、Import —> Existing Maven Projects —> Next —> 选择解压后的文件夹 —> Finsh

Eclipse 构建项目

  • 1、首先安装 SpringBoot 插件,Help —> Eclipse Marketplace —> 搜索 ’Spring’ —> 安装 Spring Tools 4 – for Spring Boot··· —> Install,直至完成 restart
  • 2、File —> New —> Project,弹出新建项目的框
  • 3、搜索‘Spring’,找到选择 Spring Boot 子目录下的 Spring Starter Project,点击 Next
  • 4、填写相关项目信息后,点击 Next,选择需要的依赖包,再点击 Next,确认无误后 Finish,完成创建。

HelloWorld

我们根据上面构建了一个 helloworld 项目,基于它我们来实现简单的 web 示例以及测试示例

1. 项目目录结构介绍


如上图所示,Spring Boot 的基础结构共三个大块:

  • src/main/java Java 源代码目录,主程序入口 HelloworldApplication,可以通过直接运行该类来启动 Spring Boot 应用
  • src/main/resources 资源文件目录,该目录用来存放应用的一些配置以及静态资源。application.properties 为配置文件,可以配置应用名、服务器端口、数据库链接等等。由于引入了 Web 模块,因此产生了 static 目录与 templates 目录,static 用于存放静态资源,如图片、CSS、JavaScript 等,templates 用于存放 Web 页面的模板文件。
  • src/test/java 单元测试目录,生成的 HelloworldApplicationTests 通过 JUint 4 实现,可以直接用运行 Spring Boot 应用的测试。
2.Maven 配置分析
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>helloworld</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>helloworld</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
  • Spring Boot 版本:2.1.8.RELEASE
  • 打包形式: jar (Spring Boot 默认的打包形式)
  • pom.xml 文件中项目依赖 dependencies 默认有两个模块:
  • spring-boot-starter-web 全栈 Web 开发模块,包含嵌入式 Tomcat、Spring MVC。
  • spring-boot-starter-test 通用测试模块,包含 JUnit、Hamcrest、Mockito。

项目构建的 build 部分:引入了 Spring Boot 的 Maven 插件。

3. 实现一个简单的应用
  • • 新建 package,命名为 com.example.demo.controller , 可以根据实际的构建情况修改自己的路径。
  • • 新建 HelloController 类,代码如下:
@RestController
public class HelloController {@RequestMapping("/hello")
    public String hello() {return "Hello World";}
}
  • • 启动应用,通过浏览器访问 http://localhost:8080/hello,我们可以看到返回了预期的结果:Hello World。
4. 单元测试
  • • 打开 src/test/java 下的测试入口 HelloApplicationTests,编写一个简单的单元测试来模拟 HTTP 请求。代码如下:
@RunWith(SpringJUnit4ClassRunner.class)// 引入 Spring 对 JUnit4 的支持
@SpringBootTest
public class HelloApplicationTests {
    
    private MockMvc mvc;// 用于模拟调用 Controller 的接口发起请求,@Before // 预加载内容,用来初始化对 HelloController 的模拟
    public void setUp() throws Exception{mvc=MockMvcBuilders.standaloneSetup(new HelloController()).build();}

    @Test
    public void hello() throws Exception{mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
                    .andExpect(status().isOk())
                    .andExpect(content().string(equalTo("Hello World")));
    }
    
}
  • • 注意需要引入下面的静态引用,让 status、content、equalTo 函数可用:
import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
  • • 开发环境中调试

引入热部署依赖,修改代码后就无须手动重启了。

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

总结


使用 Spring Boot 可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用 Spring Boot 非常适合构建微服务。

示例代码

码云

github

非特殊说明,本文版权归 朝雾轻寒 所有,转载请注明出处.

原文标题:Spring Boot 2.X(一):入门篇

原文地址:https://www.zwqh.top/article/info/1

如果文章对您有帮助,请扫码关注下我的公众号,文章持续更新中 …

正文完
 0