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 分钟前
Java基础面试题——【Java语言特性】
java·开发语言
choke2336 分钟前
[特殊字符] Python 文件与路径操作
java·前端·javascript
choke23311 分钟前
Python 基础语法精讲:数据类型、运算符与输入输出
java·linux·服务器
码农阿豪15 分钟前
Flask应用上下文问题解析与解决方案:从错误日志到完美修复
后端·python·flask
岁岁种桃花儿22 分钟前
CentOS7 彻底卸载所有JDK/JRE + 重新安装JDK8(实操完整版,解决kafka/jps报错)
java·开发语言·kafka
威迪斯特23 分钟前
Flask:轻量级Web框架的技术本质与工程实践
前端·数据库·后端·python·flask·开发框架·核心架构
roman_日积跬步-终至千里1 小时前
【Java并发】Java 线程池实战:警惕使用CompletableFuture.supplyAsync
java·开发语言·网络
毕设源码-钟学长1 小时前
【开题答辩全过程】以 基于Springboot的扶贫众筹平台为例,包含答辩的问题和答案
java·spring boot·后端
CodeSheep程序羊1 小时前
拼多多春节加班工资曝光,没几个敢给这个数的。
java·c语言·开发语言·c++·python·程序人生·职场和发展
程序员良许1 小时前
三极管推挽输出电路分析
后端·嵌入式