欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring Boot 基础功能

程序员文章站 2022-05-07 18:37:27
...

2.1 基础功能

2.1.1 相关说明

功能 说明
Maven 3.3+
JDK 1.8+
Spring Boot 2.1.14.RELEASE
Spring Framework 5.1.15.RELEASE

2.1.2 构建 Spring Boot 项目

2.1.2.1 pom文件说明

添加 web 环境依赖

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.example</groupId>
    <artifactId>springboot-learn</artifactId>
    <version>1.0-SNAPSHOT</version>
    <description>基于Spring Boot的案例</description>
    <packaging>jar</packaging>

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

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.14.RELEASE</version>
    </parent>

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

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

</project>

2.1.2.2 项目结构说明

Spring Boot 基础功能

2.1.2.3 创建Controller

// @RestController 为组合注解,等同于 Spring中的:@Controller + @ResponseBody
@RestController
public class LearnController {

    @RequestMapping("/hello")
    public String hello() {
        return "你好 Spring Boot";
    }

}

2.1.2.4 编写启动主程序类

@SpringBootApplication
public class LearnApplication {
    public static void main(String[] args) {
        SpringApplication.run(LearnApplication.class, args);
    }
}

问题:启动主程序类的位置是否可以随便放?

2.1.2.5 运行项目

运行项目主程序启动类LearnApplication类,启动成功后,可以看见默认端口为8080

Spring Boot 基础功能
页面输出为 “你好 Spring Boot”。

至此,构建Spring Boot项目就完成了。

2.1.3 单元测试

​ 开发中,每当完成一个功能接口或业务方法编写后,通常需要借助单元测试验证功能是否正确。

Spring Boot对单元测试提供了很好的支持,在使用是,直接在pom.xml文件中添加

spring-boot-starter-test测试依赖启动器,可以通过相关注解实现单元测试。

2.1.3.1 添加依赖

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

2.1.3.2 编写测试代码

// 测试启动类,并加载Spring Boot测试注解
@RunWith(SpringRunner.class)
// 标记为Spring Boot单元测试类,并加载项目的ApplicationContext上下文环境
// classes 知道项目主程序启动类
@SpringBootTest(classes = LearnApplication.class)
public class LearnApplicationTest {

    @Autowired
    private LearnController learnController;

    @Test
    public void test() {
        String hello = learnController.hello();
        System.out.println(hello);
    }

}

2.1.4 热部署

​ 在开发过程中,通常会对一段业务代码不断的操作修改,在修改之后往往要重启服务,有些服务需要加载很久才能启动成功,这种不必要的重复操作极大的降低了程序开发效率。为此,Spring Boot框架专门提供了进行热部署的依赖启动器,用于进行项目热部署,无需手动重启项目。

2.1.4.1 添加依赖

<!-- 热部署依赖启动器 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
</dependency>

2.1.4.2 IDEA工具设置

选择IDEA工具界面【File】-【Settings】,打卡Compiler界面,勾选【Build project automatically】

Spring Boot 基础功能
点击 Apply 应用,以及OK保存。

在项目任意界面使用组合快捷键【Ctrl+Alt+Shift+/】打开Maintenance选项框,选中并打开Registry页面

Spring Boot 基础功能

Spring Boot 基础功能

列表中找到【compiler.automake.allow.when.app.running】,将该值Value进行勾选。用于指定IDEA工具在程序运行过程中自动编译,最后单击【Close】按钮完成设置

2.1.4.3 效果测试

启动项目,访问 http://localhost:8080/hello

Spring Boot 基础功能
修改 “你好” 为 “hello”

为了测试热部署的是否有效,接下来,在不关闭项目的情况下,将LearnController类中数据修改,并保存,查看控制台会发现项目能够自动构建和编译,说明热部署生效

Spring Boot 基础功能

相关标签: 单元测试 java