【SpringBoot】3 项目配置及部署

news2024/11/15 19:59:51

配置文件配置

将 application.properties 改为 application.yml ,写法不一样,本人比较习惯用 yaml 格式。
配置项目名称和项目端口号。

application.yml

server:
  port: 8888
spring:
  application:
    name: system

配置外置 Servlet 容器

如果要在 Tomcat 容器中显示页面,则需要在启动类配置外置的 Servlet 容器。

SystemApplication.java

package com.lm.system;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class SystemApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(SystemApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(SystemApplication.class);
    }

}

Tomcat 依赖配置

因为需要将项目打成 war 包,放置到外置 tomcat 中,所以在 pom.xml 文件中,将 spring-boot-starter 依赖内置的 tomcat 依赖单独写出来,spring-boot-tomcat 依赖的标签改为,改为打包时打包 tomcat 依赖,如下依赖加在标签中,修改完改文件需要重新加载该 Maven 项目。

pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

Web 依赖配置

如下依赖加在标签中,修改完改文件需要重新加载该 Maven 项目。

<!--   web起步依赖    -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

编写测试接口

1)在system目录下,新建 controller 目录,在 controller 目录下新建 HelloController 类。
在这里插入图片描述2)编写 Hello 接口,使用浏览器进行访问。

package com.lm.system.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author: DuHaoLin
 * @Date: 2024/7/26
 */
@RestController
public class HelloController {

    @GetMapping("hello")
    public String hello() {
        return "hello";
    }

}

3)访问效果图
在这里插入图片描述

项目打包

打 war 包,放到本地的 tomcat 上。
1)双击 Ctrl 按钮,显示 Run Anything 框,输入 Maven 命令:mvn clean package,先清除已经存在的 target,再打包。
在这里插入图片描述
2)如果报该【错误: 无效的目标发行版:17】,则需要看 Settings 中,Java Compiler 的下图标记出是否变回17,如果是则需要改为11,还有右边的 Maven 栏位的 Profiles 栏位的 jdk-17 是否被勾上,如果被勾上则需要取消掉,不能勾上,再重新打包。
在这里插入图片描述
在这里插入图片描述
3)默认打包后的名称为项目名加上版本号,可以在 pom.xml 的标签中加是 system 标签来指定打包后的包名,打包后控制台回返回包路径,可以按该路径找到打包后的 war 包。
在这里插入图片描述
4)将该 war 包放到本地的 tomcat 中,启动 tomcat 进行访问(tomcat中bin目录下,双击startup.bat)。
在这里插入图片描述
5)在 tomcat 中,只有启动时显示图中的 Spring 图标才算启动成功,不然就是启动失败,需要查看日志进行修复。如果启动 tomcat 时,直接闪退可能是安装时,系统环境参数配置错误,或者是端口号被占用。
在这里插入图片描述6)在 tomcat 中访问该接口,需要加是项目名称,项目名称不能为驼峰命名,否则可能访问不到,页面回404。
驼峰命名如 webSystem,此时 tomcat 就访问不到项目。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1950622.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构·AVL树

1. AVL树的概念 二叉搜索树虽可以缩短查找的效率&#xff0c;但如果存数据时接近有序&#xff0c;二叉搜索将退化为单支树&#xff0c;此时查找元素效率相当于在顺序表中查找&#xff0c;效率低下。因此两位俄罗斯数学家 G.M.Adelson-Velskii 和E.M.Landis 在1962年发明了一种解…

音视频入门基础:WAV专题(1)——使用FFmpeg命令生成WAV音频文件

在文章《音视频入门基础&#xff1a;PCM专题&#xff08;1&#xff09;——使用FFmpeg命令生成PCM音频文件并播放》中讲述了生成PCM文件的方法。通过FFmpeg命令可以把该PCM文件转为WAV格式的音频文件&#xff1a; ./ffmpeg -ar 44100 -ac 2 -f s16le -acodec pcm_s16le -i aud…

「Ant Design」Antd 中卡片如何完全不展示内容区域、按需展示内容区域、不展示标题

前言 下面是默认的 Antd 卡片&#xff0c;由以下区域组成 处理 Antd 的 Card 展示形式大致有下面三种 卡片完全不展示内容区域 const App () > (<Card title"Default size card" extra{<a href"#">More</a>} style{{ width: 300 }}b…

工厂数字化转型,该如何建设数字孪生车间?

在工业4.0的浪潮下&#xff0c;数字化转型已成为工厂升级的必然趋势&#xff0c;而数字孪生技术的引入则为这一转型注入了强大动力。智汇云舟作为数字孪生行业头部企业和视频孪生技术首倡者&#xff0c;以创新的视角和前沿的技术&#xff0c;为数字工业建设助力&#xff0c;给众…

《昇思25天学习打卡营第2天|张量》

张量其实就是矩阵&#xff0c;在python中主要是使用numpy这个库来操作&#xff0c;然后再mindspore中一般使用tensor对象作为张量的载体 张量如果维度只有二维的话可以简单理解为数据库中的表&#xff0c;但是如果是3维4维主要是在列表中增加列表项比如 【 【1&#xff0c;1】…

C++ //练习 15.28 定义一个存放Quote对象的vector,将Bulk_quote对象传入其中。计算vector中所有元素总的net_price。

C Primer&#xff08;第5版&#xff09; 练习 15.28 练习 15.28 定义一个存放Quote对象的vector&#xff0c;将Bulk_quote对象传入其中。计算vector中所有元素总的net_price。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块&am…

【C++笔试强训】day01

数字统计 思路 用%10取出个位的数字&#xff0c;用/10迭代。 代码 #include <iostream> using namespace std;int main() {int l, r, res 0;cin >> l >> r;for (int i l; i < r; i){int x i;while (x){if (x % 10 2) res;x / 10;}}cout << r…

AttributeError: ‘WandbLogger‘ object has no attribute ‘bbox_interval‘

一、问题描述 跑yolov5时&#xff0c;运行代码出现以下报错 AttributeError: WandbLogger object has no attribute bbox_interval 二、问题原因 可能是版本的问题&#xff0c;需要把wandb关闭 三、解决方法 在路径 \yolov5\utils\loggers 文件夹下的 _init__.py文件中19…

【MySQL】记录MySQL加载数据(LOAD DATA)

MySQL LOAD DATA 一、背景二、模拟生成用户信息三、加载到mysql表3.1、建表语句3.2 加载数据3.3、查看结果 一、背景 现在有个需求是将用户信息存入student.data文件中&#xff0c;在现在load到数据库中 二、模拟生成用户信息 假设用户信息&#xff0c;包含姓名&#xff0c;…

使用PyTorch导出JIT模型:C++ API与libtorch实战

PyTorch导出JIT模型并用C API libtorch调用 本文将介绍如何将一个 PyTorch 模型导出为 JIT 模型并用 PyTorch 的 CAPI libtorch运行这个模型。 Step1&#xff1a;导出模型 首先我们进行第一步&#xff0c;用 Python API 来导出模型&#xff0c;由于本文的重点是在后面的部署…

AR 眼镜之-蓝牙电话-实现方案

目录 &#x1f4c2; 前言 AR 眼镜系统版本 蓝牙电话 来电铃声 1. &#x1f531; 技术方案 1.1 结构框图 1.2 方案介绍 1.3 实现方案 步骤一&#xff1a;屏蔽原生蓝牙电话相关功能 步骤二&#xff1a;自定义蓝牙电话实现 2. &#x1f4a0; 屏蔽原生蓝牙电话相关功能 …

深入解读 Java 中的 `StringUtils.isNotBlank` 与 `StringUtils.isNotEmpty`

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119@qq.com] 📱个人微信:15279484656 🌐个人导航网站:www.forff.top 💡座右铭:总有人要赢。为什么不能是我呢? 专栏导…

【支持语言模型和视觉语言模型的推理引擎sglang】

介绍 sglang是一个AI推理引擎&#xff0c;是一个专门为大语言模型和视觉语言模型设计的高效服务框架。 就像F1赛车需要顶级发动机一样&#xff0c;大语言模型也需要高效的推理引擎来发挥潜力。 而sglang正是这样一个性能怪兽。 根据LMSys组织的官方公告&#xff0c;最新的s…

Docker(十)-Docker运行elasticsearch7.4.2容器实例以及分词器相关的配置

1.下载镜像 1.1存储和检索数据 docker pull elasticsearch:7.4.2 1.2可视化检索数据 docker pull kibana:7.4.22.创建elasticsearch实例 创建本地挂载数据卷配置目录 mkdir -p /software/elasticsearch/config 创建本地挂载数据卷数据目录 mkdir -p /software/elasticse…

【React】JSX:从基础语法到高级用法的深入解析

文章目录 一、什么是 JSX&#xff1f;1. 基础语法2. 嵌入表达式3. 使用属性4. JSX 是表达式 二、JSX 的注意事项1. 必须包含在单个父元素内2. JSX 中的注释3. 避免注入攻击 三、JSX 的高级用法1. 条件渲染2. 列表渲染3. 内联样式4. 函数作为子组件 四、最佳实践 在 React 开发中…

20240724----idea的Java环境卸载与安装

1.删除旧有的jdk https://blog.csdn.net/weixin_42168713/article/details/112162099 &#xff08;补充&#xff1a;我把用户变量和java有关的都删了&#xff09; 2.下载新的jdk百度网盘链接 链接&#xff1a;https://pan.baidu.com/s/1gkuLoxBuRAtIB1IzUTmfyQ 提取码&#xf…

第二代欧洲结构设计标准简介

文章目录 0、背景1、总览2、更新及变化2.1 抗震2.2 地基基础2.3 防火 0、背景 本篇文章来自微信公众号土木吧&#xff0c;原作者李立昌&#xff08;北京鑫美格工程设计有限公司&#xff09;。对原文感兴趣的可以点击这里。 新的欧标滚滚而来&#xff0c;提前做好准备很有必要…

人工智能视频大模型:重塑视频处理与理解的未来

目录 一、人工智能视频大模型概述 1.1 定义与特点 1.2 技术基础 二、关键技术解析 2.1 视频特征提取 2.2 时空建模 2.3 多任务学习 三、应用场景展望 3.1 视频内容分析 3.2 视频编辑与生成 3.3 交互式视频体验 四、未来发展趋势 4.1 模型轻量化与移动端部署 4.2 …

前端面试项目细节重难点分享(十三)

面试题提问&#xff1a;分享你最近做的这个项目&#xff0c;并讲讲该项目的重难点&#xff1f; 答&#xff1a;最近这个项目是一个二次迭代开发项目&#xff0c;迭代周期一年&#xff0c;在做这些任务需求时&#xff0c;确实有很多值得分享的印象深刻的点&#xff0c;我讲讲下面…

【C语言】队列的实现(数据结构)

前言&#xff1a; 相信大家在生活中经常排队买东西&#xff0c;今天学习的队列就跟排队买东西一样&#xff0c;先来买的人就买完先走&#xff0c;也就是先进先出。废话不多说&#xff0c;进入咱们今天的学习吧。 目录 前言&#xff1a; 队列的概念 队列的实现 队列的定义 …