• springboot学习二:springboot 初创建 web 项目,打包项目并测试成功


    一、快速创建 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 插件

    
    <build>
        <plugins>
            
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>
        plugins>
    build>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    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
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    2. 关闭 banner

    #application.properties
    #关闭banner
    spring.main.banner-mode=off
    
    • 1
    • 2
    • 3

    3. 运行成功

    在这里插入图片描述

    五、热部署插件(了解)

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

    
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-devtoolsartifactId>
    dependency>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    也可以在创建项目时,勾选住热部署的依赖。
    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 #禁用自动重启
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

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

    • application-dev.properties
      server.port=8081
      
      • 1
    • application-test.properties
      server.port=8082
      
      • 1
    • 在application.properties中指定需要使用的环境即可
      #指定使用的环境是dev
      spring.profiles.active=dev 
      
      • 1
      • 2

    七、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  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    2、application.properties优先级

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

    1. 项目/config/application.properties
    2. 项目/application.properties
    3. classpath:config/application.properties
    4. classpath:application.properties
      注意:一般都在classpath:application.properties做配置,其他方式不使用
  • 相关阅读:
    ChatGPT训练三阶段与RLHF的威力
    websocket多实例推送解决方案-数据实时展示
    JavaScript基础知识document对象
    Monaco Editor教程(十三):在指定位置插入或替换文本
    在ASP.NET Core微服务架构下使用RabbitMQ如何实现CQRS模式
    【Python3】列表字典集合元组
    《视觉 SLAM 十四讲》V2 第 4 讲 李群与李代数 【什么样的相机位姿 最符合 当前观测数据】
    3.21 小红书薯条改版了,都改了些什么呢?【玩赚小红书】
    【C++11重点语法上】lambda表达式,初始化列表
    Linux学习笔记-Ubuntu系统下配置用户ssh只能访问git仓库
  • 原文地址:https://blog.csdn.net/qq_40036754/article/details/126002341