- 博客(284)
- 资源 (7)
- 问答 (4)
- 收藏
- 关注
转载 mysql慢查询优化
如果没有使用到正确的索引,不建议使用 force index的方式来优化。可以看看是否能通过调整 order by方式。注意:在navicat中执行的时候,一次性将两条SQL(包含获取trace结果的那条sql)选择执行。如果有比较好的索引 (user_id + create_time )没有使用到,可以试试。参考这篇文章,获得trace的分析结果。使用explain分析执行结果。
2023-10-16 21:37:53
250
转载 如何实现自由复制知乎文章?
知乎是通过JavaScript禁止用户复制文章的。所以关闭掉浏览器解析JS代码就可以实现复制。不要忘记关闭disable JavaScript。温馨提醒,完成复制文章后,
2023-07-29 17:02:57
996
转载 jdbc和DataSource
文章转载于:Spring数据库原理-DataSourcejdbc 操作数据库public class TestMark_to_win { public static void main(String[] args) throws java.sql.SQLException, ClassNotFoundException { java.sql.Connection connection = null; java.sql.Statement s
2022-05-19 23:21:46
2212
原创 springboot多数据源连接数据库
方式一:不同的mapper对应不同的数据源参考文章:springBoot + Hikari 配置多数据源连接数据库快速配置多数据源(整合MyBatis)方式二:动态切换数据源spring boot使用AbstractRoutingDataSource实现动态数据源切换继承AbstractRoutingDataSource再通过AOP实现动态数据源切换AbstractRoutingDataSource 只支持单库事务,也就是说切换数据源要在开启事务之前执行。 spring DataSourceTr
2022-03-29 09:31:51
1179
转载 chrome书签同步不及时,手动强制同步
参考 https://www.zhihu.com/question/29669829手动强制同步架梯子地址栏输入:chrome://sync-internals中间那列中下方,点击“Stop Sync (Keep Data)”,之后点击“Request Start”两个设备上的Chrome都进行一次这个操作参考文章:1、https://blog.csdn.net/fangyan_1229/article/details/108573109...
2022-03-22 23:11:23
1163
转载 mac工具
iStat Menus 6激活密码Email: 982092332@qq.comSN: GAWAE-FCWQ3-P8NYB-C7GF7-NEDRT-Q5DTB-MFZG6-6NEQC-CRMUD-8MZ2K-66SRB-SU8EW-EDLZ9-TGH3S-8SGA参考文章:1、https://www.jianshu.com/p/1345a10331cb
2022-03-22 23:09:17
174
转载 idea系列之实用插件
1. Free MyBatis plugin这个插件主要实现了mapper和xml的快速跳转,不用每次查找sql的时候全局搜索了。这个插件介绍如下:常用的就是第二个功能:快速从xml代码跳转到mapper文件和从mapper文件跳转到xml代码。如图所示,点击箭头即可实现跳转:2. Maven Helper这个插件主要用来解决maven冲突插件介绍如下:安装完成后,打开pom.xml文件,会多出一个Dependency Analyzer选项卡:默认选中的是冲突项,左侧展示的是冲突列
2022-03-13 17:37:52
658
翻译 springboot-starter中的SPI 机制
SPI的全称是Service Provider Interface, 直译过来就是"服务提供接口", 听起来挺别扭的, 所以我试着去就将它翻译为"服务提供商接口"吧.我们都知道, 一个接口是可以有很多种实现的. 例如搜索,可以是搜索系统的硬盘,也可以是搜索数据库.系统的设计者为了降低耦合,并不想在硬编码里面写死具体的搜索方式,而是希望由服务提供者来选择使用哪种搜索方式, 这个时候就可以选择使用SPI机制.SPI机制被大量应用在各种开源框架中,例如:大家都熟悉的dubbo中的ExtensionLoad
2022-02-15 22:49:36
980
转载 spring-namespace实现自己的自定义标签类
转载于:spring-namespace实现自己的自定义标签类、spring-namespace自定义命名空间简介我最开始是通过sharding-sphere这个分库中间件知道,在做中间件的时候,最好是使用这种spring-namespace的方式进行配置。之后,在比较流行了一些java中间件中都会发现spring-namespace的影子,比如dubbo中的xml配置文件 <dubbo:application name="demo-provider"/> <dubbo:r
2022-02-15 22:36:51
261
转载 springboot-dubbo——解决运行就马上关闭的问题
转载于:springboot-dubbo——解决运行就马上关闭的问题解决方案:1、在入口处添加System.in.read()进行阻塞,防止直接挂(不推荐)public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); try { //阻塞作用,否则会由于不是web项目,
2022-01-16 11:59:23
611
1
转载 mac gif图片压缩
如何在保障动图质量的情况下,可以最大程度上压缩动图的体积呢?别急,小编这就带你瞧瞧Mac只需3步快速压缩GIF图片,亲测将6.3M的动图压制到1M。除了使用自动终端方法外,小编还发现一款特别好用的Mac软件Snagit 2019 for Mac(屏幕截图软件),来和小编看看吧!1、安装brew通过终端输入如下命令,自动安装核心组件——homebrewruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/mast
2022-01-09 20:30:56
1021
转载 Mac通过homebrew下载过慢问题
使用国内的镜像替换homebrew镜像,对镜像进行加速源原先我们执行brew命令安装的时候,跟3个仓库地址有关brew.githomebrew-core.githomebrew-bottles把三个仓库地址全部替换成国内Alibaba提供的地址1、替换/还原brew.git仓库地址# 替换成阿里巴巴的 brew.git 仓库地址:cd "$(brew --repo)"git remote set-url origin https://mirrors.aliyun.com/homebre
2021-12-26 12:12:32
931
原创 JNDI注入高版本绕过——实验分析
原文是:JNDI注入高版本绕过JNDI注入高版本绕过对文章中的“利用LDAP返回序列化数据,触发本地Gadget绕过高版本限制”内容,LDAP_Server代码做实验,其原理就是:启动了一个内存LDAP数据库。LDAP内存数据库验证:可以采用两种方式验证,方式一是借助Apache Directory Studio软件,与内存LDAP数据库建立连接。方式二是使用代码读取。(1) 方式一(2)方式二import javax.naming.Context;import javax.nami
2021-12-22 23:50:09
2623
转载 JNDI注入高版本绕过
转载于JNDI注入高版本绕过JDNI利用方式的修复之路RMI Remote Object Payload(限制多,不常使用)攻击者实现一个RMI恶意远程对象并绑定到RMI Registry上,编译后的RMI远程对象类可以放在HTTP/FTP/SMB等服务器上,供受害者的RMI客户端远程加载。RMI客户端在 lookup() 的过程中,会先尝试在本地CLASSPATH中去获取对应的Stub类的定义,并从本地加载,然而如果在本地无法找到,RMI客户端则会向远程Codebase去获取攻击者指定的恶意对象,这
2021-12-22 23:15:53
2350
原创 Java ScriptEngineManager
ScriptEngineManager1、ScriptEngineManager是JDK6提出的相关方法,这方式的主要目的就是用来对脚本语言的处理。这里只是简单介绍一下对我们常用的数学公式的应用。2、ScriptEngineManager是在java的javax.script的包下,是Java原生提供的脚本语言处理方法。3、这里一个简单的demo,供参考import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;
2021-12-19 23:07:45
4089
原创 LDAP了解
LDAP概念轻型目录访问协议(英文:Lightweight Directory Access Protocol,缩写:LDAP,/ˈɛldæp/)是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。目录服务在开发内部网和与互联网程序共享用户、系统、网络、服务和应用的过程中占据了重要地位。例如,目录服务可能提供了组织有序的记录集合,通常有层级结构,例如公司电子邮件目录。同理,也可以提供包含了地址和电话号码的电话簿。LDAP由互联网工程任务组(IETF)的文档RF
2021-12-18 22:44:55
2381
原创 LDAP安装及基本操作
LDAP安装特别说明:以下都是针对mac环境,mac OS版本是10.15.7。LDAP的安装方式有两种。第一种是直接使用ApacheDirectory,您可以从官网下载。 (安装和启动服务器应少于5分钟)下载下来的是压缩包,将其解压后并移动到/usr/local/目录下,然后进入到/usr/local/apacheds-2.0.0.AM26/bin中,使用命令./apacheds.sh start即可启动。第二种方式是使用Apache Directory Studio。官网下载地址:Apache
2021-12-18 21:00:50
2456
转载 java操作LDAP示例
提供了两个例子,一个是CRUD功能。另外一个是利用查询LDAP实现用户的登录验证功能。完全借鉴的Java到LDAP教程、JAVA中使用LDAP登录的三种方式java在LDAP上进行CRUD现在可以从Java程序访问LDAP。 向您展示如何执行此操作的最佳方法是通过示例程序。 该程序将执行以下任务:创建一个新的LDAP对象查看LDAP对象将新属性添加到LDAP对象修改LDAP对象上的属性删除LDAP对象上的属性删除LDAP对象注意:此类在其自身之后进行清除,即它将LDAP Server保
2021-12-18 20:34:05
5368
转载 log4j2漏洞复现
1、本地启动ldap服务https://github.com/veracode-research/rogue-jndi下载这个链接的源码进行编译mvn package -DskipTests启动命令:#这里172.19.60.23是我本地的ip java -jar target/RogueJndi-1.1.jar -c "calc" -n 172.19.60.23说明:原作者这里使用过的是 calc,应该是在windows系统上实验的。在ubuntu以及mac上,使用calc是不行的。在ma
2021-12-17 00:38:41
1174
转载 Vulfocus 官方介绍 以及 环境安装
转载于:Vulfocus 官方介绍Docker环境+Vulfocus环境的安装(无脑安装,有手就会)Vulfocus 官方介绍Vulfocus 是一个漏洞集成平台,将漏洞环境 docker 镜像,放入即可使用,开箱即用。Vulfocus 官网:https://fofapro.github.io/vulfocus/在线 Vulfocus:http://vulfocus.fofa.so/http://vulfocus.io/http://vulfocus.club/背景漏洞靶场是目前每个
2021-12-16 23:27:45
5151
2
转载 Import Dependency Management with Exclusion
文章来源: Import Dependency Management with ExclusionExclusion at import won’t work, try excluding it from the actual user of the dependency意思是:在dependencyManagement里面的dependency中,使用exclusions,是不会有作用的。需要在实际使用的地方,去添加exclusions。maven官方有下面一段话:https://maven.a
2021-12-02 15:07:51
1070
3
转载 为什么不推荐使用BeanUtils属性转换工具
转载于:为什么不推荐使用BeanUtils属性转换工具1 背景之前在专栏中讲过“不推荐使用属性拷贝工具”,推荐直接定义转换类和方法使用 IDEA 插件自动填充 get / set 函数。不推荐的主要理由是:有些属性拷贝工具性能有点差有些属性拷贝工具有“BUG”使用属性拷贝工具容易存在一些隐患(后面例子会讲到)2 示例首先公司内部就遇到过 commons 包的 BeanUtils 进行属性拷贝性能较差的真实案例,然后该同事换成了 Spring 的 BeanUtils 性能好了很多,感兴趣大
2021-11-30 00:09:57
136
转载 我什么时候应该使用 THREAD.GETCONTEXTCLASSLOADER()?
我什么时候应该使用 THREAD.GETCONTEXTCLASSLOADER()?这个问题经常出现在编写框架代码 , 需要动态加载很多类和资源的时候 . 通常当你需要动态加载资源的时候 , 你至少有三个 ClassLoader 可以选择 :系统类加载器或叫作应用类加载器 (system classloader or application classloader)当前类加载器当前线程类加载器上面的问题指的是最后一种类加载器 . 哪种类加载器是正确的选择呢 ?第一种选择可以很容易地排除 : 系
2021-11-28 17:15:13
228
转载 使用自定义ClassLoader解决反序列化serialVesionUID不一致问题
转载于:使用自定义ClassLoader解决反序列化serialVesionUID不一致问题0x01 背景serialVesionUid不一致导致反序列化失败也算是Java反序列化漏洞利用比较常见的问题了。查了下资料,发现了各种各样的方法,但没有找到一种适合所有gadget的通用解决方案,为此我花了一些时间,算是找到了自己心中比较完美的解决方案:自定义ClassLoader。目前已经将其集成到ysoserial中,可完美解决各类gadget serialVesionUID不一致问题。0x02 各方案的
2021-11-28 17:08:47
564
转载 关于ClassLoader.getSystemClassLoader()和Thread.currentThread().getContextClassLoader()
今天碰到一个问题,我做了一个动态编译的程序,但在javaSE环境直接运行(即javaApplication状态)可以运行,但在tomcat服务器上通过请求来处理就不行,提示找不到我动态生成的类:关键语句如下(报错时我写的是:return ClassLoader.getSystemClassLoader())最后我发现写成如图这样,调用Thread.currentThread().getContextClassLoader().loadClass(name);,就不会报错了。查询资料后解释如下:Cl
2021-11-28 12:05:25
690
转载 tomcat
tomcat相关的源码解析深入理解 Tomcat(一)源码环境搭建和 How Tomcat works 源码深入理解 Tomcat (二) 从宏观上理解 Tomcat 组件及架构深入理解 Tomcat(三)Tomcat 底层实现原理深入理解 Tomcat(四)Tomcat 类加载器之为何违背双亲委派模型深入理解 Tomcat(五)源码剖析Tomcat 启动过程----类加载过程深入理解 Tomcat(六)源码剖析Tomcat 启动过程----生命周期和容器组件深入理解 Tomcat(七)源码剖
2021-11-28 11:58:01
118
转载 运用URLClassLoader加载外部jar包的java类,生成Class文件
转载于:运用URLClassLoader加载外部jar包的java类,生成Class文件先来一段网上copy的话术: //****************************很多时候 我们写的java程序是分模块的,有很好的扩展机制,即我们可以为我们自己的java类添加插件,来运行将来某天我们可能开发出来的类,以下称这些类为插件类。下边是一种简单的实现方法:Class A 作为程序的主入口,其中包含了程序的执行入口(main)函数。然后在main函数中通过外部的配置文件,然后通过外部的配置
2021-11-21 22:38:04
5265
转载 线程上下文类加载器
转载于深入理解Java类加载器(1):Java类加载原理解析 、 深入理解Java类加载器(2):线程上下文类加载器1、JVM三种预定义类型类加载器启动(Bootstrap)类加载器、扩展(Extension)类加载器、系统(System)类加载器。public class LoaderTest { public static void main(String[] args) { try { System.out.println(ClassLoade
2021-11-16 23:54:53
643
转载 插件化技术
转载于插件化技术 发表于 2020-03-29 | 分类于 Java插件化技术本文将介绍代码设计中的插件化实现。涉及到的关键技术点 自定义ClassLoader 和 ServiceLoader 。接着,会说下插件化技术的典型应用场景。ClassLoader类加载的过程参考:JVM 中关于3.2 类的生命周期 介绍。显式与隐式加载显式:在代码中通过调用 ClassLoader 加载 class 对象,如直接使用 Class.forName(name) 或 this.getClass().get
2021-11-15 23:37:01
594
转载 双亲委派与线程上下文类加载器
类加载器Java程序启动时,并不是一次把所有的类全部加载后再运行,它总是先把保证程序运行的基础类一次性加载到jvm中,其它类等到jvm用到的时候再加载。java中的类大致分为三种: 1.系统类 2.扩展类 3.由程序员自定义的类java类加载器又分:1)Bootstrap ClassLoader负责加载$JAVA_HOME中jre/lib/rt.jar里所有的class,由C++实现,不是ClassLoader子类2)Extension ClassLoader负责加载java平台中扩展功能的
2021-11-14 23:28:50
222
转载 SPI与JDBC
深入理解SPI机制一、什么是SPISPI ,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。这一机制为很多框架扩展提供了可能,比如在Dubbo、JDBC中都使用到了SPI机制。我们先通过一个很简单的例子来看下它是怎么用的。1、小例子首先,我们需要定义一个接口,SPIServicepackage com.viewscenes.netsupervisor.s
2021-11-14 23:02:16
421
转载 JDBC与SPI机制
ServiceLoader方式服务发现进行分析。它是Jdk为我们提供的根据接口动态加载实现类(SPI机制)的工具。一、问题引出:当我们在使用原生jdbc时通常写为以下格式:我们在加载驱动类的时候的静态代码块会帮助我们进行注册,所以我们再DriverManager中能够取得连接。但事实上,我们去掉第一行Class.forName后,我们依旧可以获得相应数据库的连接,那么数据库驱动类是什么时候加载的呢?虚拟机怎么会知道驱动类的路径呢?二、准备知识1、ServiceLoader类的使用。再次我们只
2021-11-14 22:23:49
583
维基百科中文语料word2vec训练后结果
2017-06-03
Stanford typed dependencies manual
2017-02-27
wiki.zh.text.model
2017-02-23
APP技术解决方案,安卓高手与IOS高手看过来
2016-03-24
web service访问数量控制
2015-07-20
在java web工程中·,利用ireport生成的jasper文件,导出pdf文件
2014-01-14
http://www.cheersmug.com/网站上文字的特效是怎样制作的?
2013-10-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人