- 博客(49)
- 收藏
- 关注
原创 超简单的,适合新手的python开发环境搭建
本篇文章基于Anaconda + jupyter搭建python的开发环境Anaconda下载官网地址进入官网后点击Get Started点击Download Anaconda installers选择适合自己的操作系统下载安装点击next点击I Agreenext根据自己需要更换安装路径,next都勾选上,点击安装,install之后一路next最后Finish,安装完成jupyter下载打开Anaconda Navigator安
2021-05-30 14:57:17
353
原创 SQL默认排序遇到的坑
默认排序遇到的坑文章目录默认排序遇到的坑问题描述问题重现表结构查询数据添加索引查询数据SQL分析问题解决性能对比问题描述根据id分页查询,每次1000条,默认排序方式(主键)。在未知情况下,表被加了索引,sql命中新索引,排序方式改变,导致根据id分页查询,数据有遗漏。问题重现表结构SHOW CREATE TABLE com.account_day_snapshot;CREATE TABLE `account_day_snapshot` ( `id` bigint(20) unsign
2021-05-05 16:21:21
568
2
原创 npm超时
有时使用npm下载很慢出现超时,可以尝试使用cnpm,国内镜像# 安装npm install cnpm -g --registry=https://registry.npm.taobao.org# 测试是否成功cnpm -v参考:https://www.jianshu.com/p/115594f64b41
2021-04-28 20:37:36
924
原创 微服务服务调用-Ribbon的简单使用
客户端负载均衡工具-Ribbon的简单使用简介Ribbon是一款客户端负载均衡工具,可用于微服务中负载均衡,与服务发现配合使用。使用Ribbon实现服务调用maven依赖Ribbon依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId><
2021-03-03 21:50:50
319
原创 微服务服务调用-RestTemplate通过@LoadBalaced具备负载均衡与服务发现的原理
RestTemplate通过@LoadBalaced注解集成Ribbon疑问:为什么RestTemplate上加一个@LoadBalaced注解即具备服务发现与负载均衡的能力?为什么通过@Qualifier就能注入具有负载均衡能力的RestTemplate?
2021-03-03 21:47:39
558
原创 sql注入练习-SQLi-LABS-1
sql注入练习-1摘要本篇是针对SQLi-LABS靶场的Less1-Less4的SQL注入练习。主要涉及报错型注入、联合查询注入。练习第1~4关是都是Error-based,只不过方式不一样,可能是通过单引号/双引号等进行试错。以第一关为例:输入参数获取用户名密码如何通过SQL注入,获得库,表,用户数据等信息?试错首先来试错,通过试错猜测SQL语句。通过单引号来试错:参数使用:?id=1’,通过一下报错信息可以推测出大概的sql:select xxx from db.tab
2021-01-23 11:47:04
982
原创 安全攻防——搭建sql注入靶场
安全攻防——搭建sql注入靶场sql注入简介sql注入的类型与注入技术学习环境搭建(需要安装docker)sql注入简介最近一段时间负责公司产品安全相关工作,便了解一些相关技术,sql注入就是其中著名又重要的一项。在了解sql注入之前,以为sql注入只是简单的利用 1=1 这样类似的sql拼接来登录网站,当开始接触后才发现原来sql注入的种类有这么多。sql注入的类型与注入技术根据数据类型可以分为以下几种:数字型注入字符型注入包括但不限于以下sql注入技术:Error basedD
2021-01-15 00:55:26
1754
1
原创 按照关键字过滤分割日志
按照内容分割日志前言前一段时间接到一个需求,在特定场景下进行告警。需要将告警内容写入到日志文件中,运维人员会收集这类日志进行告警。这就需要将告警信息写入到单独的日志文件中,即通过内容将日志分割。这里不介绍logback与log4j2的比较与选择,直奔主题——logback和log4j2是如何通过关键字将日志分割的。logbackmaven依赖<!-- logback依赖 -->···<logback.version>1.2.3</logback.version&
2021-01-08 00:22:19
694
原创 Redis集群搭建:解决java程序外网无法连接集群
准备工作创建集群目录mkdir redis-cluster创建节点目录(集群至少需要三主三从)cd redis-clustermkdir 7000 7001 7002 7003 7004 7005复制redis至集群目录cp -r * /usr/local/redis-cluster/(这里复制了redis所有文件,理论上只复制redis-server.c文件即可,不过未进行尝试)...
2020-03-16 22:17:06
932
原创 freemarker整合SpringBoot(三)——分页
前言本文章主要是针对view层的分页,不涉及数据库部分的描述。分页是很多查询中需要用到的功能,所以复用性很强,前端分页可以做成一个组件来实现。freemarker可以通过macro指令实现自定义标签,通过自定义标签实现组件复用。macro指令的简单介绍自定义标签,可以包含标签名,参数,通过macro指令实现<#macro name param1 param2 ... paramn&g...
2019-12-19 23:09:05
451
原创 freemarker整合SpringBoot(二)——国际化
本文章主要分为两个部分:freemarker的国际化相关配置Spring Boot的国际化相关配置freemarker国际化配置页面模板使用.ftl文件作为静态化模板,这里不多做解释,这里主要说明国际化所需配置<!-- 1.国际化添加导入 --><#import "/spring.ftl" as spring/><#include "/admin...
2019-12-08 21:54:06
979
2
原创 nginx渲染动态页面实现前后端分离
之前偶然听人提起使用nginx渲染页面而不是使用freemarker渲染,有些不理解nginx是如何渲染的,于是做了一个简单的尝试。以下是本次尝试的demo。服务端服务端就是一个正常的spring接口@Controller@RequestMapping("user")@Slf4jpublic class UserController { @RequestMapping("...
2019-12-01 18:36:24
1649
原创 freemarker整合springboot(一):简单页面渲染
freemarker整合springboot(一):简单页面渲染简单页面渲染本地渲染(前后端在一个容器中)maven依赖application.yml配置页面模板渲染服务端页面效果简单页面渲染freemarker做静态化有很多细节,有些是和业务相关的,有些是与技术的使用相关,比如分页的实现、国家化、前后端分离、自定义标签等,这里先介绍简单的页面渲染。本地渲染(前后端在一个容器中)maven...
2019-12-01 14:38:25
470
原创 dubbo初体验(一)HelloWorld远程服务调用
简介本篇主要是基于dubbo2.5.3版本的远程服务调用的简单demo,包括服务端接口和实现以及客户端服务调用,简单的配置了注册中心。服务端创建过程创建maven项目dubbo-server创建modulea. server-api(服务接口)b. server-provider(服务实现)依赖server-provider<dependency> &l...
2019-09-07 12:54:00
447
原创 python + selenium实现浏览器上页面功能自动测试
前言 这里使用html + thymeleaf做了一个简单的登录页面,后台使用java做了一个伪登录功能,通过python编写自动登录的脚本,目的是为了通过这个简单的demo,来熟悉selenium库的使用,实现通过python + selenium编写自动运行的用于测试界面功能的脚本。环境准备系统和语言环境准备系统windows登录功能自动测试脚本python 3...
2019-06-07 22:18:32
693
原创 session失效问题
场景描述一个单体应用,启动两个服务,在同一个浏览器访问,登录上一个A服务后,再登录B服务,会导致A的session失效分析两个相同服务,彼此应该是没有影响的,但产生了影响,且不同浏览器就没有影响源码在一个登录过滤器中,有一段这样的代码,最终是由于session中没有userid导致表象的session失效,但实际上这个session已经不是之前携带userid的session了...
2019-04-09 10:18:39
2847
1
原创 常用的json的简单应用
java转换json常用的四种方式:1. Gson依赖<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version>&
2018-10-07 12:43:15
403
原创 获取路径转换问题
问题描述: 使用clazz.getResource("").getPath()获取luji路径时,会将路径中的kong空格转为%20,有些情况下需要处理代码案例:package com.common;public class ClassUtil { private ClassUtil() {} public static String getClassPath...
2018-09-02 16:49:16
164
原创 lineNumber: 1; columnNumber: 1; 前言中不允许有内容。
ssm启动报错:Line 1 in XML document from class path resource [] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。 网上有说是xml文件是以UTF-8 BOM格式存储,使用编...
2018-08-30 23:33:16
6649
2
原创 Integer传参与值的修改
之前看了一篇文章是关于Integer作为形参传入,之后修改值得问题,感觉有点意思,又做了进一步研究。案例:public static void main(String[] args) { Integer a = 1; Integer b = 2; System.out.println("a=" + a + ",b=" + b); swap(a, b); System.out.p...
2018-08-30 22:16:12
5284
原创 leveldb简介与java实现demo
简介1.简介Leveldb是一个google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计。特别是LSM算法。2特点LevelDB 是单进程的服务,性能非常之高,在一台4核Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w。 此处随机读是完全命中内存的速度...
2018-08-28 22:32:59
8795
3
原创 Lucene初学——4.常用类与说明
主要的类与接口基本类或接口 说明 Directory 表示索引的存储位置,并通常是文件的列表。这些文件被称为索引文件。索引文件通常创建一次,然后用于读操作或可以被删除。 Document 表示一个虚拟文档与字段,其中字段是可包含在物理文档的内容,它的元数据等的对象。 Analyzer 负责分析一个文件,并从将被索引的文本获取令牌/字。 IndexWrit...
2018-08-28 21:43:45
140
转载 Eclipse部署Maven web项目到服务器时,缺失lib下的jar
Eclipse部署Maven web项目到tomcat服务器时,没有将lib下的jar复制过去的解决办法2014年01月24日 10:12:13 阅读数:2092 我们在做web开发是,经常都要在eclipse中搭建web服务器,并将开发中的web项目部署到web服务器进行调试,在此,我选择的是tomcat服务器。之前部署web项目到tomcat进行启动调...
2018-07-14 18:27:58
559
转载 Eclipse javascripth和jsp复制卡死解决方案(转)
Eclipse中jsp、js文件编辑时,卡死现象解决汇总使用Eclipse编辑jsp、js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲。将所有用过的方法罗列如下: 1、取消验证windows–>perferences–>validation把 除了manual 下面的全部点掉,build下只留 classpath de...
2018-07-14 18:19:28
705
原创 httpclient:与springmvc进行跨域传输,上传文件,携带参数——使用HttpPost方式
一.上传文件1.HttpClient类/** * @param file * @param url */ public static void uploadFileByHttpPost(File file, String url) { CloseableHttpClient client = HttpClients.custom().build(); try { Htt...
2018-07-14 18:08:06
2197
原创 HttpClient:与springmvc结合跨域请求——使用PostMethod类进行请求,上传文件,携带参数
1.无参数public static PostMethod postMethod(String url) { return new PostMethod(url); } /** * 通过postMethod类进行请求 * @param post */ public static void sendByPostMethod(PostMethod post) { try ...
2018-07-14 17:43:54
2434
原创 httpclient:PostMethod方式进行服务器请求
public void post(String url) { try { HttpClient client = new HttpClient(); PostMethod post = new PostMethod(url); int status = client.executeMethod(post); if (status == 200) { Logger...
2018-07-09 23:00:44
1272
原创 反射:创建内部类
一.静态内部类1.正常创建newOuter.InnerA a = new Outer.InnerA();2.反射创建Outer.InnerA a = InnerA.class.newInstance();二.非静态内部类1.正常创建newInnnerB b = new Outer().new InnnerB();2.反射创建InnnerB b = Inn...
2018-07-09 22:41:16
1223
原创 反射:数据封装
/** * 封装数据,针对targetClass拥有所有orignClass的属性,且非内部类的情况 * @param orignInstance * @param targetInstance * @param orignClass * @param targetClass * @throws IllegalAccessException * @throws Invo...
2018-07-09 22:35:17
176
原创 反射:获取set,get工具类
public static <T> Method getMethod(Field field, Class<T> clazz) { String fieldName = field.getName(); char firstLower = fieldName.charAt(0); char firstUpper = (char)(firstLower - (ch...
2018-07-09 22:31:41
388
原创 正则学习——2: .* 和 .*? 的区别?
?涉及到贪婪模式当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符。.*?为贪婪匹配,表示匹配尽量多的任意字符。.*为懒惰匹配,表示匹配尽量少的任意字符。例:public static void main(String[] args) { String regex1 = "a.*?t"; String regex2 = "a.*t";...
2018-07-01 10:54:43
1537
原创 sqlite学习——3. 查询表是否存在
SELECT COUNT(*) FROM sqlite_master where type='table' and name='表名'
2018-06-24 16:10:05
4217
原创 eclipse配置jvm参数
1.打开Run Configuration2.选择arguments3.在最后面添加参数:-Xms1g -Xmx12g -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewRatio=194.具体数值根据需求自行修改,各参数含义参考:jvm浅析——1.分配内存参数...
2018-06-23 13:46:54
5903
原创 jvm浅析——1.分配内存参数
有时运行项目内存不足可以使用如下参数进行配置:-Xms1g -Xmx12g -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewRatio=19-Xms:程序启动时占用内存大小-Xmx:程序运行期间最大可占用的内存大小PermSize:持久代大小MaxPermSize:持久代大小最大值NewRatio:年轻代与永久代的比值。设置为19,则年轻代与永久代所占比...
2018-06-22 10:18:09
705
原创 windows和linux下开启进程,并执行脚本
1.使用程序执行sh脚本时,如果sh是在windows下创建,格式可能不正确导致无法执行,使用dos2unix xxx.sh命令进行转换2.使用程序执行sh脚本时,可能发生线程阻塞,需要将流获取:可以打印出来 以下为部分代码:process = Runtime.getRuntime().exec(command); try {process.waitFor();...
2018-06-21 23:32:21
640
原创 正则学习——1. java中Matcher类的group用法
1.前言 最近在某网站学习时,看到讲师编写的工具类,有些疑惑,于是自己写了一个demo进行测试2.讲师的demopublic static String getFirstString(String dealStr, String regexStr, int n) { if (dealStr == null || regexStr == null || n < 1) { ret...
2018-06-21 23:20:12
2378
2
原创 Lucene初学——3. 分词器学习
1.demopublic class AnalyzerStudy { private static String str = "分词器测试 Lucene 案例 开发 by future for study"; private static void print(Analyzer analyzer) { StringReader reader = new StringReader(st...
2018-06-18 17:13:25
145
原创 Lucene初学——2. 索引检索
1.demopublic static void main(String[] args) { Directory directory = null; try { directory = FSDirectory.open(Paths.get("E:\\document\\【进阶之路】\\技术\\lucene\\index")); DirectoryReader reader = ...
2018-06-18 17:11:17
116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人