【Java】Vue-Element-Admin 嵌入Druid监控面板
我看到若依做了Druid面板的嵌入,我自己的项目干脆也做一个
一、后台服务SpringBoot:
Druid配置项:
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3308/tt?serverTimeZone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456 # 德鲁伊监控面板配置
druid:
stat-view-servlet:
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 访问druid监控界面的用户名密码
loginUsername: admin
loginPassword: 123456
enabled: true
max-pool-prepared-statement-per-connection-size: 20
filters: stat,wall
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
过滤器需要放行监控页面路径:
# xss 过滤配置
xss:
enabled: true
# 忽略不需要过滤的连接
excludes:
- /file/upload
- /chuck-file/chuck
- /druid
# 忽略不需要做html转义的json属性值,多个属性用半角逗号分隔
properties:
Security需要放行CSRF攻击和IFrame跨域配置:
package cn.cloud9.server.struct.cors; import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.CorsConfigurationSource;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource; /**
* Cors跨域访问配置
* @author OnCloud9
* @description
* @project tt-server
* @date 2022年11月06日 下午 05:55
*/
@Configuration
public class CorsConfig extends WebSecurityConfigurerAdapter { @Override
public void configure(HttpSecurity security) throws Exception {
security.authorizeRequests()
.antMatchers("/**").permitAll()
.anyRequest().authenticated()
.and().httpBasic()
.and().cors().configurationSource(corsFilter())
/* 允许iframe访问本服务资源 */
.and().headers().frameOptions().disable()
/* 关闭CSRF攻击阻挡 */
.and().csrf().disable();
} private CorsConfigurationSource corsFilter() {
CorsConfiguration config = new CorsConfiguration();
config.addAllowedOrigin("*");
config.addAllowedHeader(CorsConfiguration.ALL);
config.setAllowCredentials(true);
config.addAllowedMethod(CorsConfiguration.ALL); UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
configSource.registerCorsConfiguration("/**", config);
return configSource;
} }
二、后台服务SpringBoot:
LightFrame的封装面板:
<template>
<div v-loading="loading" style="height: calc(100vh - 110px)">
<iframe class="iframe-panel" :src="src" />
</div>
</template>
<script>
export default {
name: 'LightFrame',
props: {
src: {
type: String,
required: true
}
},
data() {
return {
height: document.documentElement.clientHeight - 94.5 + 'px',
loading: true,
url: this.src
}
},
mounted() {
setTimeout(() => { this.loading = false }, 300)
}
}
</script> <style scoped>
.iframe-panel {
width: 100%;
height: 100%;
border: none;
overflow-scrolling: auto;
}
</style>
Druid监控菜单页面:
<template>
<light-frame :src="druidMonitorUrl" />
</template> <script>
import LightFrame from '@/components/LightFrame'
export default {
name: 'Index',
components: { LightFrame },
data() {
return {
druidMonitorUrl: `${process.env.VUE_APP_BASE_DOMAIN}${process.env.VUE_APP_BASE_API}/druid/index.html`
}
}
}
</script>
地址环境配置:
# just a flag
ENV = 'development' # base api
VUE_APP_BASE_DOMAIN = 'http://127.0.0.1:8080'
VUE_APP_BASE_API = '/demo'
VUE_APP_PROXY_API = '/proxy-api'
三、注意事项:
1、只有以后台相同的主机访问项目查看Druid监控才会有效(例如 后台服务主机是127.0.0.1,Web访问的主机也必须以127.0.0.1才可以)
2、IFrame的Src地址,不要使用代理地址去连接请求 (Web配置地址的时候就使用直接地址访问)
3、后台一定要配置iframe跨域放行,因为静态资源不在Web项目里面,是在后台里
四、实现效果:

【Java】Vue-Element-Admin 嵌入Druid监控面板的更多相关文章
- vue element Admin - 修改浏览器标签名 + 添加tagView标签 +固定导航头部 + 添加侧边栏Logo
1 .修改浏览器标签名称: 修改浏览器标签名称在文件:\src\settings.js image.png 2 .修改固定头部Header和侧边栏 Logo: image.png 1)侧边栏文 ...
- vue element admin 关闭eslint校验
vue.config.js里面进行设置 lintOnSave: false, // lintOnSave: process.env.NODE_ENV === 'development',
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(十一)数据层优化-druid监控及慢sql记录
本文提要 前文也提到过druid不仅仅是一个连接池技术,因此在将整合druid到项目中后,这一篇文章将去介绍druid的其他特性和功能,作为一个辅助工具帮助提升项目的性能,本文的重点就是两个字:监控. ...
- druid监控及慢sql记录
本文提要 前文也提到过druid不仅仅是一个连接池技术,因此在将整合druid到项目中后,这一篇文章将去介绍druid的其他特性和功能,作为一个辅助工具帮助提升项目的性能,本文的重点就是两个字:监控. ...
- SpringBoot+SpringCloud+vue+Element开发项目——集成Druid数据源
添加依赖 pom.xml <!--druid--> <dependency> <groupId>com.alibaba</groupId> <ar ...
- 新书上线:《Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统》,欢迎大家买回去垫椅子垫桌脚
新书上线 大家好,笔者的新书<Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统>已上线,此书内容充实.材质优良,乃家中必备垫桌脚 ...
- SpringBoot集成阿里巴巴Druid监控
druid是阿里巴巴开源的数据库连接池,提供了优秀的对数据库操作的监控功能,本文要讲解一下springboot项目怎么集成druid. 本文在基于jpa的项目下开发,首先在pom文件中额外加入drui ...
- springboot系列七:springboot 集成 MyBatis、事物配置及使用、druid 数据源、druid 监控使用
一.MyBatis和druid简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.M ...
- 【Spring Boot】利用 Spring Boot Admin 进行项目监控管理
利用 Spring Boot Admin 进行项目监控管理 一.Spring Boot Admin 是什么 Spring Boot Admin (SBA) 是一个社区开源项目,用于管理和监视 Spri ...
- Atitit.Gui控件and面板----web server区----- web服务器监控面板and控制台条目
Atitit.Gui控件and面板----web server区----- web服务器监控面板and控制台条目 1. Resin4.0.22 1 2. 查看http连接数::Summary>& ...
随机推荐
- 记第一次用python写界面
花了两三个小时学了Tkinter,做了一个将数据绘制成图的小工具. 1. 获取路径下的所有文件or获取路径下指定名称的文件 1.1 打开文件 //1. 用来放文本框中的文字filename = St ...
- 搭建单机版伪分布式Hadoop+Scala+spark
搭建单机版伪分布式Hadoop+Scala+spark 修改ip [root@master ~]# nmcli connection add ifname ens32 con-name ens32 a ...
- Java中File类和I/O
目录 File 类 File 构造方法 输入输出(I/O) 字节流与字符流 输入流与输出流 输入输出字节流 构造方法 方法 InputStream 基本方法 public int read() thr ...
- java中以字符分隔的字符串与字符串数组的相互转换
1.字符串数组拼接成一个以指定字符(包括空字符)分隔的字符串--String.join(),JDK8的新特性 String[] strArray = {"aaa","bb ...
- nodejs koa框架下载和导入excel
ac.js const service = require("../service/model.service"); const urlencode = require(" ...
- vue绑定下拉框 vue修饰符
<select v-model="selected"> <option>请选择</option> <option>HTML</ ...
- Vue学习:7.计算属性2
上一节了解的是计算属性的默认简写,只能读取,不能修改. 什么意思呢?很简单,我们知道计算属性是依赖数据动态计算一个值,那我可不可以直接this.计算属性 = xxx 来修改计算属性的结果呢?这其实是不 ...
- 计算机网络实验一:vlan的创建与划分
这个是 pkt文件 有两道题 所以我是两个文件 https://pan.quark.cn/s/d4170897cb59 https://pan.quark.cn/s/da48878c77f5 发现 复 ...
- Jmeter自动录制脚本
1.Jmeter配置 1.1新增一个线程组 1.2Jmeter中添加HTTP代理 1.3配置HTTP代理服务器 修改端口 修改Target Cintroller(目标控制器) 修改Grouping(分 ...
- Java的运行机制和JDK,JRE,JVM的区别
源文件(Java文件) > 编译器 > 字节码(class文件) > JVM(java虚拟机) > 操作系统 1.java首先利用文本编辑器写java源程序, ...