- BusinessException与GlobalExceptionHandler的使用
Coder LM Wang
Javajava前端服务器
BusinessException这是一个自定义异常类,用于表示业务逻辑相关的异常使用场景:在业务代码中抛出具体的业务异常使用方式://在业务代码中抛出异常if(userExists){thrownewBusinessException("4002","该邮箱已注册");}//或者只传消息thrownewBusinessException("参数错误");//或者带上原始异常try{//某些操作}
- docker快速启动一个mongodb
菜萝卜子
docker数据库dockermongodb容器
使用mongodb(bitnami)镜像docker-compose快速启动一个mongodb,用于调试学习还是不错的,还有一个mongo-express的web管理页面version:"3.9"services:mongodb:image:docker.io/bitnami/mongodb:7.0.14restart:alwayscontainer_name:mongodb7user:rootp
- 如何用useRef优化重复请求
如题:如何用useRef优化重复请求。写业务代码,时而会遇见这种情况,如下伪代码:useEffect(()=>{//api请求()},[a,b])参数a来源某接口请求、参数b来源另外一个接口请求毫无疑问,上面写法回调函数一定会进去两次,除了用参数校验比如满足条件再进入api调用,还可以用useRef来暂存参数,而又不会引起页面的re-render。比如api请求需要a参数,可以写成这样:testR
- uniapp-列表样式
耶啵奶膘
univueuni-appjavascript
{{index}}import{ref,reactive}from'vue'import{onLoad,onShow,onReachBottom}from'@dcloudio/uni-app'importifrom'@/libs/common/index.js'importapifrom'@/request/api.js'import{userStore}from'@/store/userStor
- 微服务(六)Feign远程调用
JMzz
【Java学习】javaeurekaspringcloud
先来看我们以前利用RestTemplate发起远程调用的代码:Stringurl="http://localhost:8081/user/"+order.getUserId();Stringurl="http://user-service/user/"+order.getUserId();Useruser=restTemplate.getForObject(url,User.class);存在下面
- Feign
Mr_蜗牛
SpringCloud
在上个例子中,我通过1、启动eureka2、注册服务3、调用服务做了一个简单的demo,但是在最后面,我是通过这样一段代码来调用服务的提供者的@GetMapping("/movie/{id}")publicUserfindById(@PathVariableLongid){//http://localhost:7900/simple///VIPvirtualIP//HAProxyHeartbeat
- 告别 996!用 Python+ChatGPT 自动生成测试用例,效率提升 90%
AI改变世界
功能测试pythonchatgpt人工智能
为什么我们需要自动化测试生成?行业现状:互联网企业平均每个功能点需要15-20个测试用例人工编写痛点:重复劳动、覆盖率不足、维护成本高行业趋势:Gartner预测2025年70%的企业将采用AI辅助测试传统测试用例编写之痛#传统测试代码示例classTestUserLogin(unittest.TestCase):deftest_login_success(self):#测试数据准备user=Us
- ThreadPool.QueueUserWorkItem方法 和WaitCallback委托
want fly
c#上位机学习c#开发语言
ThreadPool.QueueUserWorkItemThreadPool.QueueUserWorkItem方法是用于将工作项提交到线程池队列中的方法。当你需要执行一个方法但不想创建一个新的线程时,可以使用该方法。这个方法会将工作项放到一个线程池队列中,并由线程池中的一个线程来执行该工作项。方法的第一个参数是WaitCallback委托类型,它表示要在线程池上执行的方法。第二个参数是一个对象,
- Python Playwright 打包报错 Please run the following command to download new browsers
卡尔特斯
Pythonpython
想做一个浏览器自动化的小插件,本地安装了Playwright,测试可以正常打开浏览器自动化。但是在使用PyInstaller将Python代码打包成app/exe后,打开应用程序报错:playwright._impl._api_types.Error:Executabledoesn'texistat/Users/dengzemiao/Desktop/Project/python/dist/main
- 怎么查看自己浏览器的User-Agent
S1901
爬虫pythonchrome
怎么查看自己浏览器的User-Agent:F12打开开发者工具,在Network选项中选择JS选项,打开左边任意一个文件,拉到最下面,可以看到User-Agent。
- MySQL性能优化MySQL索引失效的13种隐蔽场景排查及解决方法
C_V_Better
mysqljava性能优化sql性能优化数据库mysql后端
在使用MySQL数据库时,索引是提高查询性能的重要手段。然而,如果索引使用不当,可能会导致索引失效,从而影响数据库的性能。本文将介绍MySQL索引失效场景,并通过实际案例进行详细分析,帮助你更好地理解和避免这些问题。一、索引失效的13种隐蔽场景1.使用OR条件查询当使用OR条件查询时,如果OR前后的条件列没有都建立索引,索引可能会失效。例如:SELECT*FROMusersWHEREname='T
- 安装MySQL在Linux环境下
苒苒鸭
mysqllinux
1,上传源码2,创建用户组[root@openEuler-1~]#groupaddmysql3,创建用户来运行数据库[root@openEuler-1~]#useradd-r-gmysql-s/bin/falsemysql4,将压缩文件解压到/usr/local/中[root@openEuler-1~]#tarxfmysql-8.0.36-linux-glibc2.12-x86_64.tar.xz
- 小皮面板SQL连接与管理
Coding Happily
数据库
1.小皮面板官网下载phpstudy8.1.1.3。双击运行exe,一路next。2.放在D:\phpstudy_pro路径中。3.双击桌面图标:phpstedy_pro,面板左方<数据库<创建数据库,填写database_name,user_name,passwd。(所以,小皮是可多用户创建不同的数据库)4.配置全局环境。5.面板左方<软件管理
- 查询Oracle数据库某一张表的现有索引
爱丽丝和她的巫师帽
数据库sqlmybatis
SELECTi.index_name,i.index_type,c.column_name,c.column_positionFROMuser_ind_columnscJOINuser_indexesiONc.index_name=i.index_nameWHEREc.table_name='table_name';替换table_name为自己表名四个字段分别对应索引名称、索引类型、索引列名称和
- Redis的一些内存优化方案
众乐乐_2008
面试redispython数据库
1.缩短键值的长度在Redis中,每个键(key)都占用一定的内存空间。键名的长度直接决定了内存消耗,因此,短键名能够有效减少内存占用。此外,值(value)的存储也会占用内存。如果存储的数据是一个复杂的对象,采用更高效的序列化方式(例如Protostuff或Kryo)也能帮助减少内存占用。优化方法:短键名:避免在键名中包含冗余信息。例如,可以将键名user:profile:12345改为u:12
- shell脚本安装Elasticsearch集群样例
哈皮麦兜儿
Shell
自定义参数CLUSTER_NAME=#集群名称ES_NAME=#ES服务名称ES_PATH=#ES安装路径ES_PORT=#设置ES端口MEM_SIZE=#设置内存大小PKG_NAME=#安装包名称TCP_PORT=#设置TCP连接端口TEMP_PATH=#临时目录USER_NAME=#启动账号部署参数检查#!/bin/bash#检查参数是否设置echo"=====检查参数是否设置====="if
- Oracle数据库如何查看表中索引
WziH_CSDN
oracle数据库sql索引
1、查看表中有哪些索引select*fromuser_indexeswheretable_name='表名'或者select*fromall_indexeswheretable_name='表名'2、查看表中索引对应哪些列select*fromuser_ind_columnswheretable_name='表名'
- web安全HTTP协议基础
飞飞鱼_
web安全web安全
1、HTTP方法请求方法描述GET请求获取URL资源POST执行操作,请求URL资源后附加新的数据HEAD只获取资源响应消息的报头PUT请求服务器存储一个资源DELETE请求服务器删除资源TRACE请求服务器回送到的信息OPTIONS查询服务器的支持选项2、URL常见URL格式:protocol://[user[:password]@]hostname[:post]/[path]/file[?pa
- python+pytest接口自动化之测试函数、测试类/测试方法的封装
美团程序员
自动化测试软件测试面试面试pythonpytest自动化
前言今天呢,笔者想和大家聊聊python+pytest接口自动化中将代码进行封装,只有将测试代码进行封装,才能被测试框架识别执行。例如单个接口的请求代码如下:importrequestsheaders={"user-agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/99.0.4
- BUUCTF——[极客大挑战 2019]PHP
south_1
webphpphp
打开题目,页面上显示说习惯备份,尝试下载备份www.zip,下载后打开查看flag文件里并不是flag,查看其他的在class文件中发现代码,应该是让我们反序列化,给出源代码username=$username;$this->password=$password;}function__wakeup(){$this->username='guest';}function__destruct(){if
- windows 钉钉缓存路径不能修改 默认C盘解决方案
麦香--老农
钉钉缓存
1.问题背景windows系统C盘被钉钉缓存占用大量空间,导致C盘存储严重不足;但钉钉不支持修改缓存路径2.解决方案为钉钉缓存路径创建软连接到其他目录3.解决步骤a.钉钉设置里找到,钉钉缓存路径C:\Users\admin\AppData\Roaming\DingTalkb.创建软件链接目标路径(缓存真实存储路径)c.MKLINK创建软件链接d.创建示例mklink/J钉钉缓存路径目标存储路径mk
- React(三)
一路向前的月光
javascript开发语言ecmascript
动态控制显示和cssimport{useState}from"react";import"./index.css";constlist=[{id:1,username:"aaName",content:"一条评论",ctime:"10-1808:15"},{id:2,username:"bbName",content:"2条评论",ctime:"10-1808:15"},{id:3,usernam
- 在nodejs中使用RabbitMQ(一)安装,使用
konglong127
nodejsrabbitmq后端node.js
安装1、安装RabbitMQ,推荐直接使用docker安装。dockercontainerrun-d--namerabbitmq-p5672:5672-p15672:15672-v./data:/var/lib/rabbitmq-eRABBITMQ_DEFAULT_USER=admin-eRABBITMQ_DEFAULT_PASS=admin1234rabbitmq:4.0-management5
- Oracle数据导入要多久,oracle数据导入导出
我在这里等着看
Oracle数据导入要多久
一、exp/imp与expdp/impdp的区别1:把用户usera的对象导到用户userb,用法区别在于fromuser=useratouser=userb,remap_schema='usera':'usera'。例如impsystem/passwdfromuser=useratouser=userbfile=/oracle/exp.dmplog=/oracle/exp.log;impdpsy
- 通过Dockerfile build mysql镜像 初始化mysql数据库
CsbLanca
数据库mysql
做什么#1.docker下mysql镜像容器初始化#2.将初始化sql文件通过init.sql文件内的SOURCE命令执行#3.容器启动起来,mysql内就有相应的初始化数据了先看目录结构├──Dockerfile├──README.md├──init.sql└──xxx├──dir1│├──sys_user.sql│├──sys_org.sql1.build镜像的Dockerfile#选择基础镜
- Git中查看和设置 用户名、密码
CsbLanca
IDE
#1.用户名和邮箱地址的作用用户名和邮箱地址是本地git客户端的一个变量,不随git库而改变。每次commit都会用用户名和邮箱纪录。github的contributions统计就是按邮箱来统计的。#2.修改密码gitconfig--globalcredential.helperstore(输入这个命令后,以后只要在输入一次用户名密码)查看用户名和邮箱地址:gitconfiguser.name;g
- linux部署node服务
lanren312
nodenode.js
1、安装nvm管理node版本#下载、解压到指定目录wgethttps://github.com/nvm-sh/nvm/archive/refs/tags/v0.39.1.tar.gztar-zxvfnvm-0.39.0.tar.gz-C/opt/nvm#配置环境vim~/.bashrc~:这是一个路径简写符号,代表当前用户的主目录。在大多数Linux系统中,这通常对应于/home/usernam
- mybatis in 传参数
Leo_Hu666
mybatismybatisjava数据库
在MyBatis中,使用IN语句传递参数时,可以通过以下方式进行:使用foreach元素在XML映射文件中构建IN子句。使用@Param注解传递包含多个元素的数组或集合。示例代码假设我们有一个名为UserMapper.xml的映射文件和一个名为selectUsersByIds的查询方法,我们希望根据用户ID的集合来查询用户信息。SELECT*FROMusersWHEREidIN#{id}
- 如何在WPF中实现软件内嵌效果
Singe.Chen
wpf
1.创建Process进程,设置运行程序文件路径Processproc=newProcess();proc.StartInfo.FileName=@"C:\Users\hdevelop.exe";proc.Start();proc.WaitForInputIdle();2.根据创建的进程获取窗口句柄IntPtrhWnd=proc.MainWindowHandle;3.开启线程,当获取的句柄不为空过
- PIP添加永久性国内镜像源
宇雯
pip
一.临时镜像源#使用豆瓣镜像源pipinstallnumpy-ihttps://pypi.doubanio.com/simple/二.永久镜像源1.windows在C:\Users\your_name下创建pip文件夹,pip文件夹下面创建pip.ini文件,添加#镜像源网址[global]index-url=https://pypi.doubanio.com/simple/#备用extra-in
- SAX解析xml文件
小猪猪08
xml
1.创建SAXParserFactory实例
2.通过SAXParserFactory对象获取SAXParser实例
3.创建一个类SAXParserHander继续DefaultHandler,并且实例化这个类
4.SAXParser实例的parse来获取文件
public static void main(String[] args) {
//
- 为什么mysql里的ibdata1文件不断的增长?
brotherlamp
linuxlinux运维linux资料linux视频linux运维自学
我们在 Percona 支持栏目经常收到关于 MySQL 的 ibdata1 文件的这个问题。
当监控服务器发送一个关于 MySQL 服务器存储的报警时,恐慌就开始了 —— 就是说磁盘快要满了。
一番调查后你意识到大多数地盘空间被 InnoDB 的共享表空间 ibdata1 使用。而你已经启用了 innodbfileper_table,所以问题是:
ibdata1存了什么?
当你启用了 i
- Quartz-quartz.properties配置
eksliang
quartz
其实Quartz JAR文件的org.quartz包下就包含了一个quartz.properties属性配置文件并提供了默认设置。如果需要调整默认配置,可以在类路径下建立一个新的quartz.properties,它将自动被Quartz加载并覆盖默认的设置。
下面是这些默认值的解释
#-----集群的配置
org.quartz.scheduler.instanceName =
- informatica session的使用
18289753290
workflowsessionlogInformatica
如果希望workflow存储最近20次的log,在session里的Config Object设置,log options做配置,save session log :sessions run ;savesessio log for these runs:20
session下面的source 里面有个tracing
- Scrapy抓取网页时出现CRC check failed 0x471e6e9a != 0x7c07b839L的错误
酷的飞上天空
scrapy
Scrapy版本0.14.4
出现问题现象:
ERROR: Error downloading <GET http://xxxxx CRC check failed
解决方法
1.设置网络请求时的header中的属性'Accept-Encoding': '*;q=0'
明确表示不支持任何形式的压缩格式,避免程序的解压
- java Swing小集锦
永夜-极光
java swing
1.关闭窗体弹出确认对话框
1.1 this.setDefaultCloseOperation (JFrame.DO_NOTHING_ON_CLOSE);
1.2
this.addWindowListener (
new WindowAdapter () {
public void windo
- 强制删除.svn文件夹
随便小屋
java
在windows上,从别处复制的项目中可能带有.svn文件夹,手动删除太麻烦,并且每个文件夹下都有。所以写了个程序进行删除。因为.svn文件夹在windows上是只读的,所以用File中的delete()和deleteOnExist()方法都不能将其删除,所以只能采用windows命令方式进行删除
- GET和POST有什么区别?及为什么网上的多数答案都是错的。
aijuans
get post
如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历
前几天有人问我这个问题。我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用。
这个答案好像并不是他想要的。于是他继续追问有没有别的区别?我说这就是个名字而已,如果服务器支持,他完全可以把G
- 谈谈新浪微博背后的那些算法
aoyouzi
谈谈新浪微博背后的那些算法
本文对微博中常见的问题的对应算法进行了简单的介绍,在实际应用中的算法比介绍的要复杂的多。当然,本文覆盖的主题并不全,比如好友推荐、热点跟踪等就没有涉及到。但古人云“窥一斑而见全豹”,希望本文的介绍能帮助大家更好的理解微博这样的社交网络应用。
微博是一个很多人都在用的社交应用。天天刷微博的人每天都会进行着这样几个操作:原创、转发、回复、阅读、关注、@等。其中,前四个是针对短博文,最后的关注和@则针
- Connection reset 连接被重置的解决方法
百合不是茶
java字符流连接被重置
流是java的核心部分,,昨天在做android服务器连接服务器的时候出了问题,就将代码放到java中执行,结果还是一样连接被重置
被重置的代码如下;
客户端代码;
package 通信软件服务器;
import java.io.BufferedWriter;
import java.io.OutputStream;
import java.io.O
- web.xml配置详解之filter
bijian1013
javaweb.xmlfilter
一.定义
<filter>
<filter-name>encodingfilter</filter-name>
<filter-class>com.my.app.EncodingFilter</filter-class>
<init-param>
<param-name>encoding<
- Heritrix
Bill_chen
多线程xml算法制造配置管理
作为纯Java语言开发的、功能强大的网络爬虫Heritrix,其功能极其强大,且扩展性良好,深受热爱搜索技术的盆友们的喜爱,但它配置较为复杂,且源码不好理解,最近又使劲看了下,结合自己的学习和理解,跟大家分享Heritrix的点点滴滴。
Heritrix的下载(http://sourceforge.net/projects/archive-crawler/)安装、配置,就不罗嗦了,可以自己找找资
- 【Zookeeper】FAQ
bit1129
zookeeper
1.脱离IDE,运行简单的Java客户端程序
#ZkClient是简单的Zookeeper~$ java -cp "./:zookeeper-3.4.6.jar:./lib/*" ZKClient
1. Zookeeper是的Watcher回调是同步操作,需要添加异步处理的代码
2. 如果Zookeeper集群跨越多个机房,那么Leader/
- The user specified as a definer ('aaa'@'localhost') does not exist
白糖_
localhost
今天遇到一个客户BUG,当前的jdbc连接用户是root,然后部分删除操作都会报下面这个错误:The user specified as a definer ('aaa'@'localhost') does not exist
最后找原因发现删除操作做了触发器,而触发器里面有这样一句
/*!50017 DEFINER = ''aaa@'localhost' */
原来最初
- javascript中showModelDialog刷新父页面
bozch
JavaScript刷新父页面showModalDialog
在页面中使用showModalDialog打开模式子页面窗口的时候,如果想在子页面中操作父页面中的某个节点,可以通过如下的进行:
window.showModalDialog('url',self,‘status...’); // 首先中间参数使用self
在子页面使用w
- 编程之美-买书折扣
bylijinnan
编程之美
import java.util.Arrays;
public class BookDiscount {
/**编程之美 买书折扣
书上的贪心算法的分析很有意思,我看了半天看不懂,结果作者说,贪心算法在这个问题上是不适用的。。
下面用动态规划实现。
哈利波特这本书一共有五卷,每卷都是8欧元,如果读者一次购买不同的两卷可扣除5%的折扣,三卷10%,四卷20%,五卷
- 关于struts2.3.4项目跨站执行脚本以及远程执行漏洞修复概要
chenbowen00
strutsWEB安全
因为近期负责的几个银行系统软件,需要交付客户,因此客户专门请了安全公司对系统进行了安全评测,结果发现了诸如跨站执行脚本,远程执行漏洞以及弱口令等问题。
下面记录下本次解决的过程以便后续
1、首先从最简单的开始处理,服务器的弱口令问题,首先根据安全工具提供的测试描述中发现应用服务器中存在一个匿名用户,默认是不需要密码的,经过分析发现服务器使用了FTP协议,
而使用ftp协议默认会产生一个匿名用
- [电力与暖气]煤炭燃烧与电力加温
comsci
在宇宙中,用贝塔射线观测地球某个部分,看上去,好像一个个马蜂窝,又像珊瑚礁一样,原来是某个国家的采煤区.....
不过,这个采煤区的煤炭看来是要用完了.....那么依赖将起燃烧并取暖的城市,在极度严寒的季节中...该怎么办呢?
&nbs
- oracle O7_DICTIONARY_ACCESSIBILITY参数
daizj
oracle
O7_DICTIONARY_ACCESSIBILITY参数控制对数据字典的访问.设置为true,如果用户被授予了如select any table等any table权限,用户即使不是dba或sysdba用户也可以访问数据字典.在9i及以上版本默认为false,8i及以前版本默认为true.如果设置为true就可能会带来安全上的一些问题.这也就为什么O7_DICTIONARY_ACCESSIBIL
- 比较全面的MySQL优化参考
dengkane
mysql
本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就需要具体分析了,可以参考本站的一些优化案例或者联系我,下方有我的联系方式。这是上篇。
1、硬件层相关优化
1.1、CPU相关
在服务器的BIOS设置中,可
- C语言homework2,有一个逆序打印数字的小算法
dcj3sjt126com
c
#h1#
0、完成课堂例子
1、将一个四位数逆序打印
1234 ==> 4321
实现方法一:
# include <stdio.h>
int main(void)
{
int i = 1234;
int one = i%10;
int two = i / 10 % 10;
int three = i / 100 % 10;
- apacheBench对网站进行压力测试
dcj3sjt126com
apachebench
ab 的全称是 ApacheBench , 是 Apache 附带的一个小工具 , 专门用于 HTTP Server 的 benchmark testing , 可以同时模拟多个并发请求。前段时间看到公司的开发人员也在用它作一些测试,看起来也不错,很简单,也很容易使用,所以今天花一点时间看了一下。
通过下面的一个简单的例子和注释,相信大家可以更容易理解这个工具的使用。
- 2种办法让HashMap线程安全
flyfoxs
javajdkjni
多线程之--2种办法让HashMap线程安全
多线程之--synchronized 和reentrantlock的优缺点
多线程之--2种JAVA乐观锁的比较( NonfairSync VS. FairSync)
HashMap不是线程安全的,往往在写程序时需要通过一些方法来回避.其实JDK原生的提供了2种方法让HashMap支持线程安全.
- Spring Security(04)——认证简介
234390216
Spring Security认证过程
认证简介
目录
1.1 认证过程
1.2 Web应用的认证过程
1.2.1 ExceptionTranslationFilter
1.2.2 在request之间共享SecurityContext
1
- Java 位运算
Javahuhui
java位运算
// 左移( << ) 低位补0
// 0000 0000 0000 0000 0000 0000 0000 0110 然后左移2位后,低位补0:
// 0000 0000 0000 0000 0000 0000 0001 1000
System.out.println(6 << 2);// 运行结果是24
// 右移( >> ) 高位补"
- mysql免安装版配置
ldzyz007
mysql
1、my-small.ini是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。
2、my-medium.ini是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。
3、my-large.ini是为专用于一个SQL数据
- MFC和ado数据库使用时遇到的问题
你不认识的休道人
sqlC++mfc
===================================================================
第一个
===================================================================
try{
CString sql;
sql.Format("select * from p
- 表单重复提交Double Submits
rensanning
double
可能发生的场景:
*多次点击提交按钮
*刷新页面
*点击浏览器回退按钮
*直接访问收藏夹中的地址
*重复发送HTTP请求(Ajax)
(1)点击按钮后disable该按钮一会儿,这样能避免急躁的用户频繁点击按钮。
这种方法确实有些粗暴,友好一点的可以把按钮的文字变一下做个提示,比如Bootstrap的做法:
http://getbootstrap.co
- Java String 十大常见问题
tomcat_oracle
java正则表达式
1.字符串比较,使用“==”还是equals()? "=="判断两个引用的是不是同一个内存地址(同一个物理对象)。 equals()判断两个字符串的值是否相等。 除非你想判断两个string引用是否同一个对象,否则应该总是使用equals()方法。 如果你了解字符串的驻留(String Interning)则会更好地理解这个问题。
- SpringMVC 登陆拦截器实现登陆控制
xp9802
springMVC
思路,先登陆后,将登陆信息存储在session中,然后通过拦截器,对系统中的页面和资源进行访问拦截,同时对于登陆本身相关的页面和资源不拦截。
实现方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23