后端开发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> selectAll() {
    return jdbcTemplate.queryForList("select * from user");
  }
@Override @DS("db1") public List> selectByCondition() { return jdbcTemplate.queryForList("select * from user where age >10"); } }
没有@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; //微信验证请求接口
}
posted @ 2024-06-14 00:32  wrj的博客  阅读(5)  评论(0)    收藏  举报