Spring Boot

SpringBoot,目前主流的开发框架,对于繁琐的 SSM 开发,做了极大的简化

基本操作

新建 Springboot

对于 SpringBoot 工程的新建,强烈推荐 IDEA,其中的 Spring Initializr 选项,一键新建

在选取服务器 URL 时,不建议更换为阿里的镜像地址,而是采用原生的 start.spring.io,这是为了 SpringBoot 工程的结构规范考虑

其它的诸如类型、语言、打包等,自行选择,并在之后的菜单栏中选择需要添加的依赖

接收参数

参数的接收,简单而又重要的一部分,这里一一介绍

  1. @PathVariable:动态的接收参数,{} 中的参数与形式参数保持一致

    • http://localhost:8080/index/122
    @RequestMapping("/index/{id}")
    @ResponseBody
    public String index(@PathVariable(value = "id") String id) {
        return "id:" + id;
    }
    复制代码
  2. @RequestParam:动态的接收参数,由注解参数与传入参数绑定,不必形参

    • http://localhost:8080/index?id=122
    @RequestMapping("/index")
    @ResponseBody
    public String index(@RequestParam("id") String name) {
        return "id:" + name;
    }
    复制代码
  3. 无注解传参:直接将形参与传入的参数进行映射

    • http://localhost:8080/index?id=122&name=周默
    @RequestMapping("/index")
    @ResponseBody
    public String index(String id, String name) {
        return id + ":" + name;
    }
    复制代码
  4. HttpServletRequest 传参:参数通过 HttpServletRequest 作用域传递

    • http://localhost:8080/index?id=122
    @RequestMapping("/index")
    @ResponseBody
    public String index(HttpServletRequest request) {
        String id = request.getParameter("id");
        return "id:" + id;
    }
    复制代码

上述的两个注解,都可以接收动态的参数,不同的是。@PathVariable 使用 / 分隔参数,而 @RequestParam 使用 ?;另外,这两个注解,都可以使用注解的内置参数与请求参数绑定,形参可以任意

配置文件

SpringBoot 提供了两种配置文件,分别为 properties、yml 格式。默认是采用 properties,这里采用 yml 格式叙述

另外,对于这两种格式的配置文件,yml 文件的优先级大于 properties 文件。下述,具体介绍的是,如何读取 SpringBoot 的配置文件

Person:
  name: 周默
复制代码
@Controller
@PropertySource(value = {"classpath:application.yml"}, encoding = "UTF-8")
public class indexController {

    @Value("${Person.name}")
    private String name;

}
复制代码

对于配置文件,在读取中文时,可能会存在乱码的问题。对此,我的解决方案如下(各不相同,仅供参考)

  • 文件 -> 设置 -> 编辑器 -> 文件编码,更改属性文件的默认编码为 UTF-8,并且勾选 自动转换成 Ascii 但显示原生的内容
  • 删除原有的配置文件,重新拷贝一份。也可以选择删除配置项,再粘贴回去,核心是重新书写中文相关的配置项

目前,我的问题由上述的两个步骤,成功的得到了解决

多坏境配置

Profile,环境!

对于SpringBoot构建的项目,可以根据环境的不同,切换各自的配置文件

applcation.properties
application-dev.properties
application-test.properties
application-prod.properties
复制代码

在 Maven 的资源目录中,新建上述的四个配置文件,分别代表着主配置文件、开发环境、测试环境、生产环境。对于 properties、yml,根据个人的喜好与使用场景吧,下面还是使用 yml 介绍多环境的配置

applcation.yml 优先读取,也是在其中指定实际应用的配置文件,如下所示

# 主配置

spring:
  profiles:
    active: dev

server:
  port: 10100

---

# 开发环境

server:
  port: 9090
spring:
  config:
    activate:
      on-profile: dev
---

# 测试环境

server:
  port: 7070
spring:
  config:
    activate:
      on-profile: test
复制代码

多个场景的配置文件写在了一起,以 --- 做分割。当然,若是配置项极多,可以拆分文件。在上述的配置文件中,主配置文件,指定 dev 为当前使用的配置文件,所以服务端口为 9090

热部署

对于热部署,想必不会陌生,这里介绍热部署在 SpringBoot 中的实现

在 pom.xml 文件中,引入依赖,也可以在新建 SpringBoot 项目时,勾选添加

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime</scope>
    <optional>true</optional>
</dependency>
复制代码

另外,别忘了 pom.xml 中插件的配置。默认的 Maven 工程中,不会做这方面的设置

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
            </configuration>
        </plugin>
    </plugins>
</build>
复制代码

若是使用 IDEA 工具,还需做如下的设置

  • 文件 -> 设置 -> 构建、执行、部署 -> 编译器,勾选 自动构建项目

对于 SpringBoot 热部署的实现,存在着多种方式,甚至可以通过第三方的 IDEA 插件进行

最后

一些 SpringBoot 的常用操作,下次一定


作者:哈麻昂天
链接:https://juejin.cn/post/6993299144622211086