基于SpringBoot的单应用项目模板(考虑到后期做微服务,内部已经做了拆分)

创建父工程




创建系统工具模块[jar包]



创建公共工具模块[jar包]

创建用户模块[jar包]

创建企业模块[jar包]

创建工单模块[jar包]

创建日志模块[jar包]

创建BFF服务模块[jar服务]

在线创建项目




  • 依赖配置
<dependencies><!-- FIXME ====================================================================================== SpringBoot --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><!-- TODO ============================================================================================ MYSQL --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- TODO ============================================================================ Mybatis、Mybatis-Plus --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId></dependency><!-- TODO ============================================================================================ Redis --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- FIXME ======================================================================================== Redisson --><dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId></dependency><!-- TODO ========================================================================================= JetCache --><dependency><groupId>com.alicp.jetcache</groupId><artifactId>jetcache-starter-redis-lettuce</artifactId></dependency>
</dependencies>
  • maven编译配置
<build><finalName>${project.artifactId}-${project.parent.version}</finalName><resources><!-- FIXME 用于替换resources里的变量 --><resource><directory>src/main/resources</directory><filtering>true</filtering></resource><!-- FIXME 解决不编译java下的mybatis映射文件(.xml) --><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.6.7</version><!-- 必须与当前的SpringBoot主版本号保持一直 --><configuration><!-- 排除jar依赖 --><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes><!-- 开启热部署 --><fork>true</fork><addResources>true</addResources></configuration></plugin></plugins>
</build>
  • 多开发环境配置
<profiles><!-- 开发环境 --><profile><id>dev</id><properties><profiles.active>dev</profiles.active></properties><activation><activeByDefault>true</activeByDefault></activation></profile><!-- 测试环境 --><profile><id>test</id><properties><profiles.active>fat</profiles.active></properties></profile><!-- 预发环境 --><profile><id>fat</id><properties><profiles.active>fat</profiles.active></properties></profile><!-- 生产环境 --><profile><id>pro</id><properties><profiles.active>pro</profiles.active></properties></profile>
</profiles>
  • logback-spring.xml日志配置
<?xml version="1.0" encoding="UTF-8"?>
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为INFO,则低于INFO的信息都不会输出 -->
<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
<configuration scan="true"><!-- 从配置文件中获取日志等级 --><springProperty scope="context" name="logLevel" source="custom.log.level"/><!-- 从配置文件中获取日志输出目录 --><springProperty scope="context" name="logPath" source="custom.log.path"/><!-- TODO 本地环境日志配置 --><springProfile name="dev"><!-- 彩色日志 --><conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/><conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/><conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/><!-- 彩色日志格式 --><property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/><!-- 控制台日志输出 --><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>DEBUG</level></filter><encoder><pattern>${CONSOLE_LOG_PATTERN}</pattern><charset>UTF-8</charset></encoder></appender><!-- 日志输出级别 --><root level="${logLevel}"><appender-ref ref="CONSOLE"/></root></springProfile><!-- TODO 测试环境日志配置 --><springProfile name="fat"><!-- INFO级别日志输出 --><appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${logPath}/info.log</file><encoder><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern><charset>UTF-8</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 日志级别 --><level>INFO</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志备份格式 --><fileNamePattern>${logPath}/info-%d{yyyy-MM-dd}.%i.zip</fileNamePattern><!--日志文件保留天数--><maxHistory>7</maxHistory><!--日志文件最大的大小--><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>50MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy></appender><!-- WARN级别日志输出 --><appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${logPath}/warn.log</file><encoder><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--><pattern>%n %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} %msg %n</pattern><charset>UTF-8</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 日志级别 --><level>WARN</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志备份格式 --><fileNamePattern>${logPath}/warn-%d{yyyy-MM-dd}.%i.zip</fileNamePattern><!--日志文件最大的大小--><maxHistory>7</maxHistory><!--日志文件最大的大小--><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>50MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy></appender><!-- ERROR级别日志输出 --><appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${logPath}/error.log</file><encoder><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--><pattern>%n %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} %msg %n</pattern><charset>UTF-8</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 日志级别 --><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志备份格式 --><fileNamePattern>${logPath}/error-%d{yyyy-MM-dd}.%i.zip</fileNamePattern><!--日志文件最大的大小--><maxHistory>7</maxHistory><!--日志文件最大的大小--><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>50MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy></appender><!-- 日志输出级别 --><root level="${logLevel}"><appender-ref ref="INFO_FILE"/><appender-ref ref="WARN_FILE"/><appender-ref ref="ERROR_FILE"/></root></springProfile><!-- TODO 生产环境日志配置 --><springProfile name="pro"><!-- INFO级别日志输出 --><appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${logPath}/info.log</file><encoder><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern><charset>UTF-8</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 日志级别 --><level>INFO</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志备份格式 --><fileNamePattern>${logPath}/info-%d{yyyy-MM-dd}.%i.zip</fileNamePattern><!--日志文件保留天数--><maxHistory>7</maxHistory><!--日志文件最大的大小--><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>50MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy></appender><!-- WARN级别日志输出 --><appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${logPath}/warn.log</file><encoder><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--><pattern>%n %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} %msg %n</pattern><charset>UTF-8</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 日志级别 --><level>WARN</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志备份格式 --><fileNamePattern>${logPath}/warn-%d{yyyy-MM-dd}.%i.zip</fileNamePattern><!--日志文件最大的大小--><maxHistory>7</maxHistory><!--日志文件最大的大小--><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>50MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy></appender><!-- ERROR级别日志输出 --><appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${logPath}/error.log</file><encoder><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--><pattern>%n %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} %msg %n</pattern><charset>UTF-8</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 日志级别 --><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志备份格式 --><fileNamePattern>${logPath}/error-%d{yyyy-MM-dd}.%i.zip</fileNamePattern><!--日志文件最大的大小--><maxHistory>7</maxHistory><!--日志文件最大的大小--><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>50MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy></appender><!-- 开启异步输出日志功能 --><appender name ="ASYNC_INFO_FILE" class= "ch.qos.logback.classic.AsyncAppender"><!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --><discardingThreshold>0</discardingThreshold><!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --><queueSize>512</queueSize><!-- 添加附加的appender,最多只能添加一个 --><appender-ref ref ="INFO_FILE"/></appender><appender name ="ASYNC_WARN_FILE" class= "ch.qos.logback.classic.AsyncAppender"><discardingThreshold>0</discardingThreshold><queueSize>512</queueSize><appender-ref ref ="WARN_FILE"/></appender><appender name ="ASYNC_ERROR_FILE" class= "ch.qos.logback.classic.AsyncAppender"><discardingThreshold>0</discardingThreshold><queueSize>512</queueSize><appender-ref ref ="ERROR_FILE"/></appender><!-- 日志输出级别 --><root level="${logLevel}"><appender-ref ref="ASYNC_INFO_FILE"/><appender-ref ref="ASYNC_WARN_FILE"/><appender-ref ref="ASYNC_ERROR_FILE"/></root></springProfile>
</configuration>
  • mybatis-config.xml全局配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><settings><!--当select语句中返回ResultType时,对返回字段进行驼峰命名--><setting name="mapUnderscoreToCamelCase" value="true"/><!--全局性设置懒加载。如果设为'false',则所有相关联的都会被初始化加载--><setting name="lazyLoadingEnabled" value="true"/><!--当设置为'true'时候,懒加载的对象可能被任何懒属性全部加载。否则每个属性都按需加载--><setting name="aggressiveLazyLoading" value="false"/></settings><typeAliases><typeAlias alias="String" type="java.lang.String"/><typeAlias alias="Integer" type="java.lang.Integer"/><typeAlias alias="Map" type="java.util.Map"/><typeAlias alias="List" type="java.util.List"/></typeAliases><mappers><!-- <mapper resource="snoob/gdd/mapper/impl/WxUserMapper.xml"/>--></mappers>
</configuration>
  • 添加配置文件




  • 配置mybatis


  • 安装 mybatis-log-plugin 日志插件

  • 安装 mybatisx 快捷插件
  • 设置热部署(本地开发环境)


IDEA2022 创建基于Maven的SpringBoot聚合单应用项目相关推荐

  1. 基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建

    首页 Android Java 服务器 标签云 作品 关于 赞助列表  <a href="https://github.com/RayeWang" class="f ...

  2. linux maven 发布项目,Linux下基于Maven的自动化打包发布项目

    基于Maven的自动化打包发布项目 1.配置项目文件 prolist.config svn://10.1.23.215/Hive/HiveUDFIK hive-ik jar 10.130.2.245 ...

  3. Java springmvc web项目,基于maven的hello world入门级项目使用IntelliJ IDEA 2017版本

    IntelliJ IDEA使用教程 (总目录篇) 使用这个IntelliJ IDEA创建一个简单的Java web maven项目,我在前面的文章里面已经示范过了. 地址:IntelliJ IDEA ...

  4. idea 多模块build_[史上最详细]springboot创建基于maven的多模块项目

    点击蓝字 关注我们 背景 项目为什么需要用多模块?springmvc难道还不够我们平常使用吗? 设计模式真言:"高内聚.低耦合",springmvc项目,一般会把项目分成多个包:c ...

  5. eclipse创建springboot项目_idea创建基于gradle构建的spring boot项目

    本文使用idea演示如何创建一个spring boot项目并使用gradle构建.之后会演示如何使用gradle打war包.打war包失败的原因分析和解决方案. 创建项目 启动idea,点击Creat ...

  6. 在IDEA中手动创建基于Maven的Servlet项目

    近期在自学javaweb的内容,记录学习过程.欢迎大家讨论交流.批评指正. java版本:11:IDEA版本:2021.2:maven版本:3.8.3:Tomcat版本:10.0 创建新项目 打开ID ...

  7. 基于SSM或SpringBoot的JavaWeb项目——写作分析系统

    Tips: 技术栈已经升级为SpringBoot,代码链接为:Gitee或Github 一.系统简介: 围绕一英文写作分析API开发的一个web应用,基于SSM(Spring,SprintMVC,My ...

  8. java安卓开发 项目实例_Java系列--第七篇 基于Maven的Android开发实战项目

    本篇是基于<Android应用案例开发大全,吴亚峰等著>的项目开发实例源码,其中有些图片,我做了一些修改,用于个人学习,请勿用于商业. 1, 日程管理专家 mvn archetype:ge ...

  9. idea添加maven libraries_使用IntelliJ IDEA创建一个Maven的Spring Boot项目

    关于maven的安装和配置参考: Maven 3.6.1的配置及验证 关于IntelliJ IDEA安装配置参考: IntelliJ IDEA的安装和配置 1.打开IntelliJ IDEA,选择&q ...

最新文章

  1. 我感觉ae比较难用,就是做这种画中画的视频,final cut pro真香
  2. java akka_Akka系列(九):Akka分布式之Akka Remote
  3. hadoop2.2支持snappy压缩安装及配置
  4. Python基础案例(一)
  5. 巨潮网怎么下载年报_上市公司年报(或财务报表)在哪里下载?
  6. 修改mslsql服务器端口号,复制服务器安装步骤.doc
  7. TripMode 管理 App 网络数据使用情况
  8. cat3 utp是不是网线_CAT网线品种分类
  9. 宽度 深度学习 特点对比
  10. 新能源汽车前景广袤但痛点多多,大圆柱电池能否提供最优解?
  11. 教你查看网页的记住密码和免费下载付费音乐
  12. 江西省电子专题大赛考点讲解七:NE555定时器
  13. Tomcat官网下载对应版本
  14. [linux]linux mint zsh安装和配置
  15. 前端开发学习(七七)
  16. java 微信公众号发红包,Java微信支付-微信红包
  17. node.js笔记第一天
  18. 75%医用输液泵受漏洞威胁 360专家呼吁构建数字安全防御体系
  19. 简单的小故事解释网络常用术语
  20. 大数据平台后端一些开发规范

热门文章

  1. 通过Demo了解AlertDialog的构造原理
  2. 【图片新闻】法国计划加快天基激光武器的研发与部署
  3. 有了这个机器学习画图神器,论文、博客都可以事半功倍了!
  4. CTF比赛中常见的MISC解题方法(不涉及内存取证和流量分析)仅供菜鸟,大佬绕道
  5. 计算机网络基础知识总结及思维导图(四)网络层
  6. html ol中reverset,List T .Reverse()方法以及C#中的示例
  7. html图片文字环绕
  8. 2022年校招互联网大厂薪酬状况如何?“白菜”总包接近40W是真是假?
  9. Spark综合学习笔记(三)搜狗搜索日志分析
  10. 如何拥有好的精力去做事情?管理精力