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多数据源
一、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