当前位置: 首页 > news >正文

SpringBoot项目搭建指南

SpringBoot项目搭建指南

文章目录

  • SpringBoot项目搭建指南
    • 一、SpringBoot项目搭建
      • 1.1 SpringBoot 版本选择
      • 1.2 SpringBoot 框架引入方式
        • 1.2.1 继承 Starter Parent POM
        • 1.2.2 不使用 Parent POM 来使用 Spring Boot
      • 1.3 SpringBoot 打包插件
    • 二、日志框架引入
      • 2.1 引入SpringBoot管理的Slf4j+Log4j2
      • 2.2 log4j2.xml
      • 2.3 application.properties
    • 三、数据库相关框架引入
      • 3.1 数据库驱动
      • 3.2 数据源
      • 3.3 MyBatis
      • 3.4 数据库相关配置
    • 四、其他解决方案
      • 4.1 springboot多数据源

github: https://github.com/chen-jiacheng/data-access-samples

一、SpringBoot项目搭建

1.1 SpringBoot 版本选择

Spring Boot 2.7.18 需要Java 8,并且兼容 Java 21(包括 Java 21)。 还需要Spring Framework 5.3.31或更高版本。
Spring Boot 3.5.0 至少需要Java 17,并且兼容 Java 24 及以上版本。 还需要Spring Framework 6.2.7或更高版本。

https://docs.spring.io/spring-boot/docs/2.7.18/reference/htmlsingle/#getting-started

1.2 SpringBoot 框架引入方式

https://docs.spring.io/spring-boot/docs/2.7.18/maven-plugin/reference/htmlsingle/

1.2.1 继承 Starter Parent POM
<!-- Inherit defaults from Spring Boot -->
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</version>
</parent>
1.2.2 不使用 Parent POM 来使用 Spring Boot
<dependencyManagement><dependencies><dependency><!-- Import dependency management from Spring Boot --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.7.18</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement><build><pluginManagement><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.7.18</version></plugin></plugins></pluginManagement></build>

1.3 SpringBoot 打包插件

 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>

二、日志框架引入

https://docs.spring.io/spring-boot/docs/2.7.18/reference/htmlsingle/#spring-boot-starter-logging

2.1 引入SpringBoot管理的Slf4j+Log4j2

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

2.2 log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="TRACE" monitorInterval="30"><Properties><Property name="PROJECT_NAME">spring-boot-samples</Property><Property name="LOG_PATH">./data/logs</Property><Property name="pattern">[%d{yyyy-MM-dd HH:mm:ss,SSS}] [%c{1.}::%M] [%t] [%p]: %m%n</Property></Properties><Appenders><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="${pattern}"/></Console><RollingFile name="RollingFile" fileName="${LOG_PATH}/${PROJECT_NAME}.log"filePattern="${LOG_PATH}/${PROJECT_NAME}-%d{yyyy-MM-dd}-%i.log"><PatternLayout pattern="${pattern}"/><Policies><TimeBasedTriggeringPolicy interval="1" modulate="true"/><SizeBasedTriggeringPolicy size="100 MB"/></Policies><DefaultRolloverStrategy max="10"><Delete basePath="${LOG_PATH}" maxDepth="10"><IfLastModified age="30d"/></Delete></DefaultRolloverStrategy></RollingFile></Appenders><Loggers><Root level="info"><appender-ref ref="Console"/><appender-ref ref="RollingFile"/></Root></Loggers>
</Configuration>

2.3 application.properties

logging.config=classpath:log4j2.xml

三、数据库相关框架引入

3.1 数据库驱动

使用SpringBoot管理的就行

<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId>
</dependency>

3.2 数据源

前置条件: JDK8

Druid Spring Boot Starter 用于帮助你在Spring Boot项目中轻松集成Druid数据库连接池和监控。 druid-spring-boot-starter 适用于Spring boot 2。 如果Spring boot版本 >= 3.0.0请使用 druid-spring-boot-3-starter。

https://github.com/alibaba/druid
https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter

<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId>
</dependency>
<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId>
</dependency>

3.3 MyBatis

前置条件: JDK8

master : MyBatis 3.5, MyBatis-Spring 3.0, Java 17+ and Spring Boot 3.0-3.4
2.3.x : MyBatis 3.5, MyBatis-Spring 2.1, Java 8+ and Spring Boot 2.7

https://github.com/mybatis/spring-boot-starter

<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency>

mapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.chenjiacheng.data.access.samples.dao.mapper.SampleUserMapper"><select id="findAllUsers" resultMap="sampleUserResultMap"></select><insert id="insertUser" parameterType="com.chenjiacheng.data.access.samples.dao.model.SampleUser"></insert><delete id="deleteUser" parameterType="long"></delete><update id="updateUser" parameterType="com.chenjiacheng.data.access.samples.dao.model.SampleUser"></update>
</mapper>

3.4 数据库相关配置

## jdbc
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/data_access_samples_db
spring.datasource.username=root
spring.datasource.password=Yqywf,Rmhpy.1@
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource## driver
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver## druid
spring.datasource.druid.validationQuery="select 1 from dual"
spring.datasource.druid.initialSize=10
spring.datasource.druid.maxActive=10
spring.datasource.druid.minIdle=10
spring.datasource.druid.maxWait=500
spring.datasource.druid.testWhileIdle=true
spring.datasource.druid.timeBetweenEvictionRunsMillis=15000
spring.datasource.druid.minEvictableIdleTimeMillis=30000
spring.datasource.druid.keepAlive=true# mybatis
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.configuration.use-generated-keys=true
mybatis.mapper-locations=classpath*:mapper/*.xml
mybatis.type-aliases-package=com.chenjiacheng.webapp.plus.dao.model
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

四、其他解决方案

4.1 springboot多数据源

https://cloud.tencent.com.cn/developer/article/2416429?from=15425

http://www.lqws.cn/news/79975.html

相关文章:

  • 【dshow】VIDEOINFOHEADER2 头文件
  • 【沉浸式求职学习day52】【初识Mybaits】
  • 秋招Day12 - 计算机网络 - UDP
  • nssctf第二题[SWPUCTF 2021 新生赛]简简单单的逻辑
  • 基于ubuntu和树莓派环境对游戏进行移植
  • eBay关键词搜索API开发指南
  • Matlab绘图
  • Baklib云内容中台的核心是什么?
  • 100V离线语音通断器
  • 【Zephyr 系列 3】多线程与调度机制:让你的 MCU 同时干多件事
  • 【笔记】Windows 下载并安装 ChromeDriver
  • Unity 限制物体在Bounds 包围盒控制移动
  • 二、Kubernetes 环境搭建
  • java反序列化: Transformer链技术剖析
  • 《多状态DP:状态设计与状态转移方程速成指南》​
  • Google 发布的全新导航库:Jetpack Navigation 3
  • 【深度学习新浪潮】以Dify为例的大模型平台的对比分析
  • 【算法】分支限界
  • Python库CloudScraper详细使用(绕过 Cloudflare 的反机器人页面的 Python 模块)
  • 《Pytorch深度学习实践》ch3-反向传播
  • 数字化转型全场景安全解析:从产品到管理的防线构建与实施要点
  • 自适应流量调度用于遥操作:面向时间敏感网络的通信与控制协同优化框架
  • 用wireshark抓包分析学习USB协议
  • 04powerbi-度量值-筛选引擎CALCULATE()
  • 吴恩达MCP课程(5):research_server_prompt_resource.py
  • 光伏功率预测 | BiLSTM多变量单步光伏功率预测(Matlab完整源码和数据)
  • HTML 等价字符引用:系统化记忆指南
  • 网络攻防技术五:网络扫描技术
  • Linux中的mysql逻辑备份与恢复
  • 二叉树的层序遍历与完全二叉树判断