后端开发3——.yml常用配置
1 基本配置示例
点击展开 yml基本配置
# 配置Web服务器
# Tomcat
server:
#配置端口
port: 8090
#设置客户端的Session超时时间(min)
session-timeout: 30
#设置处理Web请求的最大线程数
tomcat.max-threads: 200
#设置请求的最大等待数,为请求等待队列的长度
tomcat.accept-count: 100
#设置最大连接数,即同时处理的请求数
tomcat.max-connections: 10000
tomcat.uri-encoding: UTF-8
spring:
#配置高速缓存数据库
redis:
host: localhost
port: 6379
password: 123456
#配置缓存数据库
datasource: //数据库配置
url : jdbc:mysql://localhost:3306/newbirds
username : root
password : mymysql
driverClassName : com.mysql.jdbc.Driver
# mybatis配置
mybatis:
# 搜索指定包别名
typeAliasesPackage: com.ruoyi.trustedData
# 配置mapper的扫描,找到所有的mapper.xml映射文件
mapperLocations: classpath:mapper/**/*.xml
说明:(1)IDEA集成了Tomcat,Tomcat是一个开源、免费、轻量级的Web服务器。通过Tomcat可以使用HTTP请求访问本地的Web项目。
(2)除Tomcat,该配置文件还配置了Redis(高性能键值数据缓存区)、数据库和mybatis(数据库访问工具)。
2 配置数据库连接池
2.1 pom.xml添加依赖
点击展开 pom.xml添加依赖
<!-- druid数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.20</version>
</dependency>
<!-- SpringBoot程序监控系统 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- SpringBoot快速集成多数据源的启动器 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.1.0</version>
</dependency>
2.2 为spring添加数据库配置
参考:Druid的监控统计和多数据源配置
https://zhuanlan.zhihu.com/p/126696687
点击展开 yml数据库配置
datasource:
druid:
#添加监控配置
stat-view-servlet:
enabled: true
#设置访问地址规则
url-pattern: /druid/*
#设置是否允许清空统计数据
reset-enable: true
#登录监控页面的用户名
login-username: admin
#登录监控页面的密码
login-password: 123456
# 配置动态加载多数据源
dynamic:
#设置默认的数据源, 默认即为master
primary: master
#设置严格模式,默认false不启动.
#true启动后在未匹配到指定数据源时候会抛出异常, false不启动会使用默认数据源
strict: false
druid:
#设置初始化时建立连接个数/连接池最小连接个数/最大连接个数
initial-size: 5
min-idle: 5
maxActive: 20
#配置最大等待时间/连接超时时间/socket超时时间(ms)
maxWait: 60000
connectTimeout: 30000
socketTimeout: 60000
#检测关闭空闲连接的时间间隔/空闲连接最小生存时间(ms)
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
#用来检测连接是否有效的sql
validationQuery: SELECT 1 FROM DUAL
#设置空闲时检测连接是否有效,申请连接和归还连接时不检测
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
#是否缓存preparedStatement(PSCache), 在mysql下建议关闭
poolPreparedStatements: false
#大于0时自动设置poolPreparedStatements为true
maxPoolPreparedStatementPerConnectionSize: -1
#stat开启SQL监控,开启SQL防火墙
filters: stat,wall,slf4j
# 配置扩展属性,用于监控统计分析SQL性能
#将相同sql语句统计合并,设置将SQL记录到慢SQL列表的执行超时阈值
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
datasource:
# 主库数据源
master:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ry-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 123
# 从库数据源
slave:
username: root
password: 123
url: jdbc:mysql://localhost:3306/ry-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
driver-class-name: com.mysql.cj.jdbc.Driver
说明:(1)开启SQL监控需要完成监控配置,并配置druid的filters属性;
(2)上述服务端口为8090,则运行服务后通过http://localhost:8090/druid/可以进入监控登录页面;
(3)多主多从数据源配置
spring:
datasource:
dynamic:
datasource:
master_1:
master_2:
slave_1:
slave_2:
多主多从命名格式为数据组名称_xxx,下划线前面的就是数据组名称,相同组名称的数据源会放在一个组下。切换数据源时,可以指定具体数据源名称,也可以指定组名然后会自动采用负载均衡算法切换。
2.3 切换数据源——使用注解@DS
参考:添加多数据源
点击展开 java类多数据源切换
@Service
@DS("master")
public class UserServiceImpl implements UserService {
@Autowired
private JdbcTemplate jdbcTemplate;
public List
| 没有@DS | 默认数据源 |
| @DS(“dsName”) | dsName可以为组名也可以为具体某个库的名称 |
3 使用Nacos实现配置和服务管理
3.1 本地yml配置nacos
点击展开 yml配置nacos
# Spring
spring:
application:
# 应用名称
name: trustedData
profiles:
# 环境配置
active: dev
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
# 配置文件格式
file-extension: yml
# 共享配置
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
3.2 nacos添加配置
-----可以克隆已有配置,也可以新建配置。
(1)nacos中创建相应的配置,配置的Data ID为应用名称-环境配置.yml,示例的Data ID为trustedData-dev.yml;
(2)配置nacos后Redis、数据库等配置都可以在nacos的配置文件中完成,然后运行服务时从nacos加载配置;
4 配置mybatis
mybatis能够对.xml文件进行解析生成访问数据库的sql语句完成数据库访问,同时能够根据xml文件配置将结果映射为java类返回。
4.1 yml配置
# mybatis配置
mybatis:
# 搜索指定包别名
typeAliasesPackage: com.ruoyi.trustedAsset
# 配置mapper的扫描,找到所有的mapper.xml映射文件
mapperLocations: classpath:mapper/**/*.xml
4.2 xml配置
resources——mapper.projectName——xxxMapper.xml
点击展开 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.ruoyi.trustedAsset.mapper.AssetOwnerMapper">
<resultMap type="AssetOwner" id="AssetOwnerResult">
<result property="id" column="id" />
<result property="tokenId" column="token_id" />
<result property="owner" column="owner" />
<result property="transactionId" column="transaction_id" />
</resultMap>
<sql id="selectAssetOwnerVo">
select id, token_id, owner, transaction_id from asset_owner
</sql>
<select id="selectAssetOwnerById" parameterType="Long" resultMap="AssetOwnerResult">
<include refid="selectAssetOwnerVo"/>
where id = #{id}
</select>
</mapper>
说明:配置中指定了结果映射的类型为AssetOwner,在命名空间com.ruoyi.trustedAsset.mapper.AssetOwnerMapper下。
5 yml添加自定义配置
5.1 yml添加配置
# 微信验证接口
wechatVerify:
appId: wx412642ddea1c8a0d
requestUrl: https://open.weixin.qq.com/connect/qrconnect
5.2 类中获取参数
@RestController
@RequestMapping("/personUser")
public class PersonUserController extends BaseController {
@Value("${wechatVerify.appId}")
private String wechatVerAppId; //微信识别appid
@Value("${wechatVerify.requestUrl}")
private String wechatVerRequestUrl; //微信验证请求接口
}

浙公网安备 33010602011771号