SpringBoot快速上手

文章目录

  • [1 SpringBoot的介绍](#1 SpringBoot的介绍)
  • [2 SpringBoot的特点](#2 SpringBoot的特点)
  • [3 快速创建SpringBoot应用](#3 快速创建SpringBoot应用)
  • [4 第一个Controller程序](#4 第一个Controller程序)
  • [5 开发环境热部署](#5 开发环境热部署)
  • [6 系统配置](#6 系统配置)

1 SpringBoot的介绍

  • SpringBoot是基于Spring的全新框架,旨在简化Spring应用的初始搭建和开发过程。
  • SpringBoot就是尽可能地简化应用开发的门槛,让应用开发、测试、部署变得更加简单。

2 SpringBoot的特点

  • 遵循"约定优于配置"的原则,只需要很少的配置或使用默认的配置,从而代替了手动的配置过程。
  • 使用内嵌的Tomcat、Jetty服务器,不需要手动打包war文件让服务器使用。
  • 提供定制化的启动器Starters,简化Maven配置,无需写很多个依赖,开箱即用。
  • 纯Java配置,没有代码生成,也不需要XML配置。
  • 提供了生产级的服务监控方案,如安全监控、应用监控、健康检测等。

3 快速创建SpringBoot应用

  • 利用IDEA提供的Spring Initializr创建SpringBoot应用:New Project => Spring Initializr
  • 填写项目信息
    • Group:一般输入公司域名
    • Artifact:项目名称
    • SDK:1.8
    • Java version:8
    • 配置Maven:File => Settings => Build, Execution, Deployment => Build Tools => Maven,配置完成后右下角会显示下载依赖的进度条。

4 第一个Controller程序

  • 创建子目录controller
  • 在目录controller中,创建HelloController.java文件
  • 启动项目,在浏览器窗口中输入:http://localhost:8080/hello
  • 基本结构:
    • java:主要代码,java文件夹下的com.example.xxx是主包,放置后续写的代码,启动程序为主包下的xxxApplication类。

    • resources:系统自动放置一些文件夹和配置目录

    • static:网站的静态资源

    • templates:网站的模板

    • application.properties:配置文件

    • pom.xml:maven的配置文件

      • < parent >:父级项目
      • < dependencies >:依赖配置
      java 复制代码
      @RestController
      public class HelloController {
      	// 地址栏通过问号传参http://localhost:8080/hello?nickname=zhangsan
      	// 等价于@RequestMapping(value = "/hello", method= RequestMethod.GET)
          @GetMapping("/hello")
          public String hello(String nickname, String phone){
              System.out.println(phone);
              return "Helloworld" + nickname;
          }
      }

5 开发环境热部署

  • 在实际的项目开发调试过程中会频繁地修改后台类文件,导致需要重新编译、
    重新启动,整个过程非常麻烦,影响开发效率。

  • SpringBoot提供了spring-boot-devtools组件,使得无须手动重启SpringBoot应用即可重新编译、启动项目,大大缩短编译启动的时间。

  • devtools会监听classpath下的文件变动,触发Restart类加载器重新加载该类,
    从而实现类文件和属性文件的热部署。

  • 并不是所有的更改都需要重启应用(如静态资源、视图模板),可以通过设置。spring.devtools.restart.exclude属性来指定一些文件或目录的修改不用重启应用。

  • 代码实现:

    • 在pom.xml配置文件中添加dev-tools依赖。

    • 使用optional=true表示依赖不会传递,即该项目依赖devtools,其他项目如果引入此项目生成的JAR包,则不会包含devtools。

      xml 复制代码
      <dependency>
      	<groupId>org.springframework.boot</groupId>
      	<artifactId>spring-boot-starter-web</artifactId>
      </dependency>
    • 在application.properties中配置devtools。

      java 复制代码
      spring.devtools.restart.enabled=true
      spring.devtools.restart.additional-paths=src/main/java
  • 打开Settings页面,在左边的菜单栏依次找到Build,Execution,Deployment => Compile,勾选Build project automatically。

  • 按Ctrl+Shift+Alt+/快捷键调出Maintenance页面,单击Registry,勾选compiler.automake.allow.when.app.running复选框。
    做完这两步配置之后,若开发者再次在IntelliJ IDEA中修改代码,则项目会自动重启。

6 系统配置

  • 项目创建成功后会默认在resources目录下生成application.properties文件。该文件包含Spring Boot项目的全局配置。

  • 配置格式如下:

    java 复制代码
    server.port = 8081
相关推荐
涡能增压发动积2 天前
同样的代码循环 10次正常 循环 100次就抛异常?自定义 Comparator 的 bug 让我丢尽颜面
后端
云烟成雨TD2 天前
Spring AI Alibaba 1.x 系列【6】ReactAgent 同步执行 & 流式执行
java·人工智能·spring
Wenweno0o2 天前
0基础Go语言Eino框架智能体实战-chatModel
开发语言·后端·golang
于慨2 天前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
swg3213212 天前
Spring Boot 3.X Oauth2 认证服务与资源服务
java·spring boot·后端
tyung2 天前
一个 main.go 搞定协作白板:你画一笔,全世界都看见
后端·go
gelald2 天前
SpringBoot - 自动配置原理
java·spring boot·后端
@yanyu6662 天前
07-引入element布局及spring boot完善后端
javascript·vue.js·spring boot
殷紫川2 天前
深入理解 AQS:从架构到实现,解锁 Java 并发编程的核心密钥
java
一轮弯弯的明月2 天前
贝尔数求集合划分方案总数
java·笔记·蓝桥杯·学习心得