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
相关推荐
cg331 小时前
cc-connect,十分钟帮你把 claude code 连接到微信,飞书,钉钉等等平台
后端·openai
用户1427868669321 小时前
Java多态的底层真相:JVM到底怎么知道该调哪个方法?(面试高频)
后端
dkbnull1 小时前
深入理解Spring两大特性:IoC和AOP
spring boot
初次攀爬者1 小时前
RabbitMQ的消息模式和高级特性
后端·消息队列·rabbitmq
摸鱼的春哥1 小时前
惊!黑客靠AI把墨西哥政府打穿了,海量数据被黑
前端·javascript·后端
考虑考虑2 小时前
JDK25模块导入声明
java·后端·java ee
_小马快跑_3 小时前
Java 的 8 大基本数据类型:为何是不可或缺的设计?
java
想用offer打牌3 小时前
高并发下如何保证接口的幂等性
后端·面试·状态机
爱勇宝4 小时前
2026一人公司生存指南:用AI大模型,90天跑出你的第一条现金流
前端·后端·架构
golang学习记4 小时前
Go 并发编程:原子操作(Atomics)完全指南
后端