springboot学习二:springboot 初创建 web 项目、修改banner、热部署插件、切换运行环境、springboot参数配置,打包项目并测试成功

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 这篇文章介绍了如何快速创建Spring Boot项目,包括项目的初始化、结构、打包部署、修改启动Banner、热部署、环境切换和参数配置等基础操作。

一、快速创建 SpringBoot 项目

通过 springboot学习二 的学习,知道了创建springboot项目的几种方式,以后都会采用idea社区版本Spring插件的方式来创建springboot项目。

1、新建项目

  1. spring Initializr:就是idea 提供的Spring 插件
  2. Project SDK:Java 的jdk

在这里插入图片描述

2、填写项目信息

根据自己需求填写

  1. Group Id:项目分组
  2. Artifact Id:分组的项目名,与下面的项目名相同即可
  3. Version:项目版本号
  4. Project Type:项目类型,默认maven
  5. Langage:语言,默认java
  6. Java version:Java版本号
  7. Project name:项目名
  8. Project description:项目描述
  9. Package name:项目包结构

在这里插入图片描述

3、勾选springboot整合依赖包

我这里只选择了一个web包
在这里插入图片描述

4、构建完成

在这里插入图片描述

5、maven 环境配置

settings->Preferences。 配置页面如下

  1. Maven home path:maven 解压路径
  2. User setting file:maven 中 setting的路径
  3. Local repository:maven 仓库地址
    在这里插入图片描述

二、springBoot标准项目结构

1. 标准项目结构

  1. resources:资源文件,存放静态文件,模板文件,配置文件
  2. static:存放静态文件
  3. templates:存放模板文件
  4. application.properties:springboot配置文件
    在这里插入图片描述

2. 编写一个测试类

在这里插入图片描述

三、springboot项目打包部署

springboot默认将项目打包成jar,然后独立运行

1. pom.xml 文件中的maven 插件

<!-- pom.xml中添加插件 -->
<build>
    <plugins>
        <!-- SpringBoot打包插件 -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
AI 代码解读

2、maven命令打包

  1. 通过 maven 运行打包工具
    在这里插入图片描述
    在这里插入图片描述
  2. 打包成功之后,在项目的target包可以找到 jar 包
    在这里插入图片描述
  3. 进入target源目录,通过命令行的方式运行 jar(开发过程中我们直接运行启动类就可以了)
    在这里插入图片描述
  4. 我这里时Mac电脑,所以可以直接打开jar包所在终端。运行: java -jar xxx.jar
    在这里插入图片描述
  5. 测试一下接口,完美打开hello world。
    在这里插入图片描述
  6. 注意:如果想修改项目端口, 可以: java -jar xxx.jar --server.port=8888这里的优先级比在配置文件中的配置的端口号要高

四、修改banner(了解)

1. 修改 banner

SpringBoot提供了一些扩展点,比如修改banner,
例如:在resources根目录中新建一个 banner.txt 文件,替换默认的banner,txt 内容如下:

                   _ooOoo_
                  o8888888o
                  88" . "88
                  (| -_- |)
                  O\  =  /O
               ____/`---'\____
             .'  \\|     |//  `.
            /  \\|||  :  |||//  \
           /  _||||| -:- |||||_  \
           |   | \\\  -  /// |   |
           | \_|  ''\---/''  |   |
           \  .-\__  `-`  ___/-. /
         ___`. .'  /--.--\  `. . __
      ."" '<  `.___\_<|>_/___.'  >'"".
     | | :  `- \`.;`\ _ /`;.`/ - ` : | |
     \  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-'======
                   `=---='
           佛祖保佑        永无BUG
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AI 代码解读

2. 关闭 banner

#application.properties
#关闭banner
spring.main.banner-mode=off
AI 代码解读

3. 运行成功

在这里插入图片描述

五、热部署插件(了解)

除了使用JRebel来实现热部署,还可以使用Springboot提供的spring-boot-devtools包来完成Springboot应用热部署

<!-- SpringBoot热部署插件 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
</dependency>
AI 代码解读

也可以在创建项目时,勾选住热部署的依赖。
SpringBoot重启是reload重启,通过监控classpath的变化,如果classpath中的文件发生变化,即触发重启.springboot通过两个classpath来完成reload,一个basic classloader中加载不变的类(jar包中的类),一个restart classloader中加载classpath中的类(自己写的类),重启的时候,restart classloader中的类丢弃并重新加载

#默认排除的资源
spring.devtools.restart.exclude=static/**,templates/**,public/**       
#增加额外的排除资源
spring.devtools.restart.additional-exclude=public/** #处理默认配置排除之外的
spring.devtools.restart.enabled=false #禁用自动重启
AI 代码解读

六、切换运行环境(了解)

在实际开发中,一个系统是有多套运行环境的,如开发时有开发的环境,测试时有测试的环境,不同的环境中,系统的参数设置是不同的,如:连接开发数据和测试数据库的URL绝对是不同的,那么怎么快速的切换系统运行的环境,我们需要为不同的环境创建不同的配置文件。

  • application-dev.properties

    server.port=8081
    
    AI 代码解读
  • application-test.properties

    server.port=8082
    
    AI 代码解读
  • 在application.properties中指定需要使用的环境即可

    #指定使用的环境是dev
    spring.profiles.active=dev
    
    AI 代码解读

七、SpringBoot参数配置

1. 参数来源

主要流程摘要:

  1. 命令行参数; 如: java -jar xxx.jar --server.port=80
  2. ServletConfig和ServletContext;
  3. 操作系统环境变量;
  4. application-{profile}.properties或者YAML文件;
  5. application.properties或者YAML文件;

一般用的比较多的就是直接在application.properties或者YAML配置 , 其次是命令行启动方式

application.properties语法

server.port=80  
server.session-timeout=30  
server.tomcat.uri-encoding=UTF-8  

spring.datasource.url = jdbc:mysql://localhost:3306/crm
spring.datasource.username = root  
spring.datasource.password = mymysql  
spring.datasource.driverClassName = com.mysql.jdbc.Driver
AI 代码解读

vs

application.yml语法

server:  
  port: 80
  session-timeout: 30  
  tomcat.uri-encoding: UTF-8  

spring:  
  datasource:  
    url : jdbc:mysql://localhost:3306/crm  
    username : root  
    password : mymysql  
    driverClassName : com.mysql.jdbc.Driver
AI 代码解读

2、application.properties优先级

一个项目中可以有多个application.properties文件存放在不同目录中,此时他们会遵循固定的优先级来处理有冲突的属性配置, 优先级由高到底,高优先级的配置会覆盖低优先级的配置

  1. 项目/config/application.properties
  2. 项目/application.properties
  3. classpath:config/application.properties
  4. classpath:application.properties
    注意:一般都在classpath:application.properties做配置,其他方式不使用
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
49
分享
相关文章
os-copilot安装_配置_功能测试全集
我是一位中级运维工程师,我平时工作会涉及到 各类服务器的 数据库 与 java环境配置 操作。 我顺利使用了OS Copilot的 -t -f | 功能,我的疑惑是不能在自动操作过程中直接给与脚本运行权限,必须需要自己运行一下 chmod 这个既然有了最高的权限,为什么就不能直接给与运行权限呢。 我认为 -t 功能有用,能解决后台运行基础命令操作。 我认为 -f 功能有用,可以通过task文件中撰写连续任务操作。 我认为 | 对文件理解上有很直接的解读,可以在理解新程序上有很大帮助。
168 86
os-copilot使用之全面配置与使用测试
作为一名个人开发者,我主要从事云服务器架设工作。近期,我成功使用了OS Copilot的 `-t -f |` 功能,解决了执行语句、连续提问及快速理解文件的问题。我发现这些功能非常实用,特别是在使用Workbench时能快速调用AI助手。此外,建议将AI功能与xShell工具联动,进一步提升效率。文中详细记录了购买服务器、远程连接、安装配置OS Copilot以及具体命令测试的过程,展示了如何通过快捷键和命令行操作实现高效开发。
135 67
springSecurity学习之springSecurity过滤web请求
通过配置 Spring Security 的过滤器链,开发者可以灵活地管理 Web 请求的安全性。理解核心过滤器的作用以及如何配置和组合这些过滤器,可以帮助开发者实现复杂的安全需求。通过具体的示例代码,可以清晰地了解 Spring Security 的配置方法和实践。
59 23
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
36 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
SpringBoot自动配置及自定义Starter
Java程序员依赖Spring框架简化开发,但复杂的配置文件增加了负担。SpringBoot以“约定大于配置”理念简化了这一过程,通过引入各种Starter并加载默认配置,几乎做到开箱即用。
117 10
SpringBoot自动配置及自定义Starter
SpringBoot配置跨模块扫描问题解决方案
在分布式项目中,使用Maven进行多模块开发时,某些模块(如xxx-common)没有启动类。如何将这些模块中的类注册为Spring管理的Bean对象?本文通过案例分析,介绍了两种解决方案:常规方案是通过`@SpringBootApplication(scanBasePackages)`指定扫描路径;推荐方案是保持各模块包结构一致(如com.xxx),利用SpringBoot默认扫描规则自动识别其他模块中的组件,简化配置。
SpringBoot配置跨模块扫描问题解决方案
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
47 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
27 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
接口测试工具攻略:轻松掌握测试技巧
在互联网快速发展的今天,软件系统的复杂性不断增加,接口测试工具成为确保系统稳定性的关键。它如同“翻译官”,模拟请求、解析响应、验证结果、测试性能并支持自动化测试,确保不同系统间信息传递的准确性和完整性。通过Apifox等工具,设计和执行测试用例更加便捷高效。接口测试是保障系统稳定运行的第一道防线。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等