返回介绍

4.4 Web 应用模块

发布于 2025-04-26 13:26:33 字数 2945 浏览 0 评论 0 收藏

对于上面一些功能的实现,最后使用一个 Web 应用来调用,以验证使用 Druid 连接池和使用 Redis 缓存的效果,同时可以体验使用 JPA 扩展接口更为丰富的功能。

4.4.1 引用数据管理模块

实例工程中的 Web 应用模块将引用数据管理模块,而数据管理模块使用了第 2 章实例工程中 MySQL 模块的实体-关系模型设计,即使用部门、用户和角色三个实体,如图 4-4 所示。实体的建模还与第 2 章中使用的方法一样,没有做任何修改。至于实体的持久化,如前所述,只要在原来的持久化中改变资源库接口定义中继承于自定义的扩展接口即可。

图 4-4 实体-关系模型设计

4.4.2 Web 应用配置

Web 应用的界面设计使用第 3 章的设计来实现。这里,主要实现对部门、用户和角色三个实体的数据进行增删查改的管理。

在 Web 应用模块的配置文件 application.yml 中,配置连接 MySQL 和 Redis 服务器的一些参数,如代码清单 4-17 所示。

代码清单 4-17 Web 应用配置

server:
    port: 80
    tomcat:
        uri-encoding: UTF-8
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql:// localhost:3306/test?characterEncoding=utf8
        username: root
        password: 12345678
        # 初始化大小,最小,最大





        initialSize: 5
        minIdle: 5
        maxActive: 20
        # 配置获取连接等待超时的时间





        maxWait: 60000
        # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒





        timeBetweenEvictionRunsMillis: 60000
        # 配置一个连接在池中的最小生存时间,单位是毫秒





        minEvictableIdleTimeMillis: 300000
        validationQuery: SELECT 1 FROM DUAL
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        # 打开




PSCache,并且指定每个连接上




PSCache 的大小





        poolPreparedStatements: true
        maxPoolPreparedStatementPerConnectionSize: 20
        # 配置监控统计拦截的




filters,去掉后监控界面




SQl 将无法统计,




'wall'用于防火墙





        filters: stat,wall,log4j
        # 通过




connectProperties 属性来打开




mergeSql 功能;慢




SQL 记录





        connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
        # 合并多个




DruidDataSource 的监控数据





        #useGlobalDataSourceStat=true
    jpa:
        database: MYSQL
        show-sql: true
    ## Hibernate ddl auto (validate|create|create-drop|update)
        hibernate:
            ddl-auto: update
            naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
        properties:
            hibernate:
            dialect: org.hibernate.dialect.MySQL5Dialect
    ## redis
    redis:
        host: 192.168.1.214
        port: 6379
        pool:
            max-idle: 8
            min-idle: 0
            max-active: 8
            max-wait: -1

启动应用后,运行效果如图 4-5 所示。除了分页数据没有做缓存之外,其他查询都做了缓存处理。在控制台上可以看到执行的 SQL 查询语句,一个查询,比如查看用户,如果在控制台上没有看到输出查询语句,就可以说明是调用了 Redis 缓存。

关于使用缓存的情况,也可以登录安装 Redis 的服务器,使用下列指令,查看当前所有的 key。

#redis-cli
>keys *

下载一个 Redis 客户端,可以更加直观地查看 Redis 服务器的情况,如图 4-6 所示。

图 4-5 Web 应用运行效果

图 4-6 Redis 客户端

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。