SpringBoot 2.x 实战仿B站高性能后端项目

SpringBoot 2.x 实战仿B站高性能后端项目

下栽の地止:请看文章末尾


在这里插入图片描述

通常SpringBoot新建项目,默认是集成了Maven,然后所有内容都在一个主模块中。
如果项目架构稍微复杂一点,就需要用到Maven多模块。
本文简单概述一下,新建一个SpringBoot Maven 多模块项目的流程。
具体内容还需要参考你具体的项目中的实际需求,
我这里只按照大多数通常的情况为准创建一个基础款demo。
另外模块都只基于Maven的默认模板进行创建,
需要SpringBoot是用手动新建文件的方式来实现。

环境:

  • Java 1.8
  • IntelliJ IDEA 2020.01
  • Maven 3.3.9
  • SpringBoot 2.2.6.RELEASE
  • Mybatis Plus 3.3.1

折腾

第一步 新建一个maven项目
1 新建项目 Create New Project

2 选择Maven 然后直接下一步

3 根据需要修改配置,然后Finish即可

4 直接删除不需要的文件夹和文件,如 src文件夹

第二步 新建子模块
右击项目 -> New -> Module

同样选择Maven 直接下一步 完成

重复以上步骤,建立所有需要的子模块
并删除不需要的文件或文件夹
例如test文件夹

第三步 配置Maven
主项目 pom.xml

打包时,工具类的会先生成jar包,并引入到接口类中,接口类再生成war包,可以放Tomcat下运行

第四步 配置SrpingBoot
接口类加入启动类和配置文件

手动创建启动类
ModuleAdminApplication.java

生产环境

server:

port: 10000

servlet:

context-path: /modules/admin/prod

spring:

jmx:

enabled: false

servlet:

multipart:max-file-size: 20MBmax-request-size: 20MB

datasource:

driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://mysql:3306/modules?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghaiusername: rootpassword: root

redis:

database: 10host: redisport: 6379timeout: 15sjedis:pool:max-active: 1000max-wait: -1msmin-idle: 4max-idle: 20

mybatis-plus:

mapper-locations: classpath*:/mapper/*.xml

type-aliases-package: com.demo.modules.admin.serivce

global-config:

db-config:id-type: autologic-delete-value: 1logic-not-delete-value: 0insert-strategy: not_nullupdate-strategy: not_null

select-strategy: not_null

banner: false

configuration:

map-underscore-to-camel-case: truecache-enabled: truecall-setters-on-nulls: true

logging:

file: logs/modules.admin.prod.log

level.com: warn

第五步 Maven 打包生成war

直接用Idea自带的可视化即可。
先去settings中配置好maven目录

在Maven面板中找到根项目,
选择clean
再选择install
大功告成

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

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

相关文章

通过maven命令手动上传jar私服Nexus

Nexus3在界面上传组件时报: Ext.JSON.decode(): Youre trying to decode an invalid JSON String: 查找了很多资料,都没有解决。有哪位大佬知道的评论告诉一下,万分感谢。 于是换成maven命令上传: mvn deploy:deploy-file -Dgr…

【C++】类和对象(5)--运算符重载

目录 一 概念 二 运算符重载的实现 三 关于时间的所有运算符重载 四 默认赋值运算符 五 const取地址操作符重载 一 概念 C为了增强代码的可读性引入了运算符重载,运算符重载是具有特殊函数名的函数,也具有其返回值类型,函数名字以及参数…

UE5 C++报错:is not currently enabled for Live Coding

解决办法: 再次打开项目,以此法打开:

ToolJet:开源低代码框架,轻松构建复杂可响应界面 | 开源日报 No.78

ToolJet/ToolJet Stars: 25.0k License: AGPL-3.0 ToolJet 是一个开源的低代码框架,可以通过最小化工程投入来构建和部署内部工具。ToolJet 的拖放式前端构建器允许您在几分钟内创建复杂、响应式的前端界面。此外,您还可以集成各种数据源,包…

【Linux网络编程】高级I/O

目录 五种I/O模型 阻塞和非阻塞 非阻塞I/O I/O多路复用之Select、Poll、与Epoll 本文目的是深入浅出理解高级I/O相关的知识,结尾附上代码加深理解相关知识。 五种I/O模型 1.阻塞I/O:在内核将数据准备好之前,系统调用会一直等待。所有的套…

设计模式(5)-使用设计模式实现简易版springIoc

自定义简易版springIoc 1 spring使用回顾 自定义spring框架前,先回顾一下spring框架的使用,从而分析spring的核心,并对核心功能进行模拟。 数据访问层。定义UserDao接口及其子实现类 public interface UserDao {public void add(); }public…

基于静电放电算法优化概率神经网络PNN的分类预测 - 附代码

基于静电放电算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于静电放电算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于静电放电优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

微信个人号api

简要描述: 登录E云平台 请求URL: http://域名地址/member/login域名地址开发者账号密码:后台系统自助开通 请求方式: POST 请求头Headers: Content-Type:application/json 参数: 参数名必选类型说…

​如何使用ArcGIS Pro制作渐变河流效果

对于面要素的河流水系,制作渐变效果方法比较简单,如果是线要素的河流有办法制作渐变效果吗,答案是肯定的,这里为大家介绍一下制作方法,希望能对你有所帮助。 数据来源 本教程所使用的数据是从水经微图中下载的水系数…

《网络协议》07. 其他协议

title: 《网络协议》07. 其他协议 date: 2022-10-07 18:24:02 updated: 2023-11-15 08:00:52 categories: 学习记录:网络协议 excerpt: IPv6、WebSocket、WebService(SOAP,WSDL)、HTTPDNS、FTP、邮件(SMTP,…

基于单片机的温度控制器系统设计

**单片机设计介绍, 基于单片机的温度控制器系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的温度控制器系统是一种利用单片机来检测环境温度并控制温度的系统。它通常由以下几个部分组成&#xff…

Spring 设计模式-简洁版

Java 中包括以下设计模式: 其中Spring 用到的设计模式 1.简单工厂-BeanFactory 2.工厂方法FactoryBean 3.单例模式Bean实例 4.适配器模式SpringMVC中的HandlerAdatper 5.装饰器模式BeanWrapper 6.代理模式_AOP底层 7.观察者模式-spring的事件监听 8.策略横式exclud…

基于人工电场算法优化概率神经网络PNN的分类预测 - 附代码

基于人工电场算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于人工电场算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于人工电场优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

jedis连接redis

package com.wsd;import redis.clients.jedis.Jedis;import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.Map; import java.util.Properties;public class Redis {public static void main(String[] args) {//读取properti…

Windows11 python3.12 安装pyqt6 pyqt6-tools

Windows11 python3.12 安装pyqt6比较容易,但pyqt6-tools一直安装不上去。出错信息如下: (venv) PS D:\python_project\pyqt6> pip install pyqt6-tools Collecting pyqt6-toolsUsing cached pyqt6_tools-6.4.2.3.3-py3-none-any.whl (29 kB) Collec…

思源笔记的优缺点 vs Obsidian vs Logseq vs Trilium

新用户对思源笔记的印象。(PS:两年前我试用过思源笔记,被卡顿劝退了) 优点 相比obsidian, 可在文档树拖拽 拖拽调整笔记顺序 拖拽使一个笔记成为另一个笔记的子笔记,树状结构 设置-文档树,默认…

homeassiant主题

下载主题 https://github.com/maartenpaauw/home-assistant-community-themes.git 使用file editor到homeassiant路径下,新建文件夹themes文件夹,用terminal新建也可以。 使用file editor上传文件 使用Terminal解压 mkdir themes unzip home-assistan…

Redis(消息队列Stream)

Stream是一个轻量级的消息队列。 Redis中Stream的作用是提供一种高效的消息传递机制,允许多个消费者并行地消费消息,并且不会重复消费已经处理过的消息。它可以用于实现分布式任务队列、日志收集、实时数据处理等场景。Redis中的Stream支持多个消费者组…

RabbitMQ 消息丢失解决 (高级发布确认、消息回退与重发、备份交换机)

目录 一、发布确认SpringBoot版本 确认机制图例: 代码实战: 代码架构图: 1.1交换机的发布确认 添加配置类 消息消费者 消息生产者发布消息后的回调接口 测试: 1.2回退消息并重发(队列的发布确认) …

完整版解答!2023年数维杯国际大学生数学建模挑战赛B题

B题完整版全部5问,问题解答、代码,完整论文、模型的建立和求解、各种图表代码已更新! 大家好,目前已完成2023数维杯国际赛B题全部5问的代码和完整论文已更新,部分展示如下: 部分解答图表 问题分析 B题前三…