![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
工程开发
文章平均质量分 73
WaveVector
因为痛,所以叫青春
因为你还青春,所以可以拥有痛
展开
-
java并发[一]探索获取合理的并发数
背景介绍: 最近技术调研,需要一次性解析大量的velocity模板,velocity解析做了大概的优化配置。其中,性能瓶颈主要涉及到批量Velocity模板解析和批量文件写入。为了满足效率要求,使用java.util.concurrent.Executors [JDK1.5 引入的线程池管理]管理并发,写了个工具类,采用固定数目的线程池,如下 public clas...原创 2014-08-23 06:54:33 · 1407 阅读 · 0 评论 -
log4j2的JsonLayout测试
log4j2的JsonLayout测试@(工程开发) 最近在开发通用的分布式日志采集器。碰到日志信息块的划分问题,尤其是碰到有异常堆栈的情况,需要做合并操作。当前我们的解决方案是使用日志块的起始时间来判断。有过萌生使用JsonLayout的想法,直接可以映射到ElasticSearch,方便创建索引,减少过多的字段切分。遂测试了log4j2的JsonLayout,网上资料还不多,简单的做下备忘。原创 2016-09-03 15:44:53 · 9614 阅读 · 2 评论 -
Office2Pdf工具开发
Office2Pdf工具开发@(工程开发) 近期,由于公司内部有个组件需要完成word转pdf的功能,在网上做了基本的了解和测试,发现OpenOffice+JobConverter是比较稳定有效的方案。记录如下Office2Pdf工具开发OpenOffice简介安装启动JobConverter简介测试OpenOffice启动和关闭windowslinuxJava代码ew使用原创 2016-09-06 21:22:33 · 3118 阅读 · 0 评论 -
WebDriver模拟输入方法
使用WebElement SendKeys方法使用JavascriptExecutor或者RemoteWebDriver执行js脚本模拟脚本输入 使用WebDriver模拟人工浏览器操作,可以实现完美的模拟操作,躲避大部分反爬虫机制。这里,再简单的介绍下常用的输入框填写模拟的方法。1. 使用WebElement SendKeys方法具体代码如下Testpublic void testSel原创 2016-11-23 07:07:25 · 6330 阅读 · 0 评论 -
Solr配置文件说明
为了满足多类型索引的建立和不同搜索需求,solr提供了MultiCore的机制。使用中,只需要通过配置Core相应的参数文件,就可以满足热扩展。本文主要介绍每个core下相应的关键配置文件和HttpGet请求接口。 1. Core的文件路径 test_core |-- conf |-- schema.xml ——配置索引域和数据域的对应关系...原创 2015-01-18 19:18:38 · 725 阅读 · 0 评论 -
Airflow CeleryExecutor安装和配置说明
Airflow这个神器似乎在国内用的并不算多,所以很多文档都不是很全。Celery也是个神器。本文主要记录Airflow如何将Executor切换成CeleryExecutor——只有切换成CeleryExecutor,才能实现sub节点的单节点重跑,否则整个sub节点都需要重跑。配置的坑比较多,也修改了源码,特此记录说明。1. 安装RabbitMQRabbitMQ是Celery官方推荐的生产级B原创 2017-02-21 07:36:27 · 10543 阅读 · 0 评论 -
记一次SQL查询优化
合理的优化,即使面对大表,也是获得很好的查询性能。表行数有52296296,是个大表,存储了各类商品每天的销售数据,每天都会往里面append数据,随着表的增大,组里的伙伴发现查询非常缓慢,已经达到调用方无法忍受的状态。我特此做了将优化过程做了记录,力图将优化过程的基本思路做个记录。未合理调优前,查询如下语句SELECT brand_name, item_number, s原创 2016-12-11 07:57:21 · 712 阅读 · 0 评论 -
快速配置Linux下SSH无密码登录
快速配置Linux下SSH无密码登录@(Linux配置) 使用ssh免密登录在分布式集群部署中基本上都需要,比如Hadoop集群的部署。本文简述如何快速实现多台机器ssh免密登录。准备工作配速配置前先做防火墙和selinux的关闭 针对Centos的防火墙, centos 7: systemctl stop firewalld.service #停止 systemctl disabl原创 2016-09-06 21:27:10 · 694 阅读 · 0 评论 -
Solr Suggest智能提示配置说明
有时候,为了实现如下功能 以满足用户在输入个别单词的时候,能够自动联想提示,这样可以避免用户的冗余输入并提供一定的推荐,从而实现更好的交互效果和内容推广效果。这样的功能有很多实现方式,成熟的Solr其实就已经封装了这样的功能,而且只需要简单的配置就可以完成。(注,本人使用的是Solr-4.10.0版本) 1. 配置suggest功能点打开solr-config.xml,查找到s...原创 2015-03-11 20:28:42 · 8193 阅读 · 3 评论 -
Solr快速新建core流程
今日搜索业务上有个新需求,希望能够满足新数据库表的搜索功能,该表结构和之前线上运营的表结构不同,最终域也不可能一致,再者使用用户群也不同,所以只能考虑有独立的新搜索服务。我们知道,为了实现同一个solr实例可以满足多种搜索索引并存,solr早在1.3版本就建立了多核(MultiCore)的机制。现在我使用的是4.10.0版本的solr,已经相当成熟,早已实现core的配置文件...原创 2015-01-18 19:13:11 · 4955 阅读 · 0 评论 -
自定义JSP标签
1.自定义JSP标签的优点1.1 通过自定义JSP标签,可以实现代码模块化,提高代码的重用性;1.2 具有很好的封装性,优化界面设计,使用者无需知道标签具体的实现方式,甚至包括实现机制;1.3 自定义JSP标签已经很成熟,开发也非常便捷。 2.JSP标签原理简介 标签本身是一个JAVA类,自定义标签可以在JSP页面嵌入自定义的“动作元素”,JSP引擎解析JSP界原创 2014-07-15 20:57:17 · 796 阅读 · 0 评论 -
Hibernate持久化对象生命周期之实战探索
持久化对象的生命周期,是Hibernate应用中的一个关键概念。对生命周期的理解和掌握,对Hibernate的正确应用很有必要。…… 言归正传,Hibernate持久化对象生命周期有3种状态:Transient(瞬时状态),persistent(持久状态),Detached(游离状态)。定义这三类状态,其实是和Hibernate的session息息相关。所谓transient,原创 2014-07-16 20:48:37 · 826 阅读 · 0 评论 -
[struts2.x] 通过Map从前端传递动态扩展的属性
应用背景简介:这两天有个开发任务,为了满足多个资源使用统一管理模块管理,需要提供自定义动态属性配置,从而不需要修改后台代码,可以满足经常变化的属性需求。后台的其它部分,在后续其它文章中总结,这里主要介绍一下如何将这些动态属性传递到后台。这里,我们使用的MVC框架是struts,从前端传值到后台,使用struts可以轻松完成POJO的值注入。如果我们要完成动态属性定义,就不可能预先知道这个属...原创 2014-07-30 20:49:27 · 1298 阅读 · 0 评论 -
javax.servlet.Filter接口解析
简述:Filter英文释意是过滤器,滤波器。接触过信号处理的一般很熟悉这个概念,但不一定特别理解这个概念。其实,理解这个概念,最简单就是从实际中我们使用过滤器的例子——筛子,通过使用筛子,我们可以将面粉和无意中洒入其中的沙子分离。同样,信号处理中的Filter也是这样的作用,将输入信号用一定的窗函数处理后,过滤掉冗余或者不需要的信息,然后输出。但是,我们可以考虑在捣鼓筛子的时候再新增一些元...原创 2014-09-06 17:37:11 · 3354 阅读 · 0 评论 -
使用jstree自定义下拉菜单树组件
开发背景: 每次都很啰嗦,要先陈述一下开发背景。不过,这样做的目的一来是让自己能够快速回忆起自己的实战背景,二来是类似引子,能够阐述这样处理的实际用途,不仅仅是用于理论学习。 今天记录下的是前几天开发的一个下拉框组件,该组件内容是一棵菜单树。本来系统开发的时候使用的是BUI,BUI本身也有下拉树组件。只是因为我们使用的BUI版本比较早,今年的版本和去年的在某些方...原创 2014-08-14 20:07:24 · 20673 阅读 · 14 评论 -
java如何解决解析html的单引号嵌套
这是一篇比较简单文章,主要是用于技术备忘。 这里解决的主要问题是,后台需要拼接html字符串,在html字符串中会有引号包含单引号的情况,尝试了很久,才知道尝试出结果:sb.append("data-rules='{selectRequired:[true,'" + "#sl" + bo.getKey() + "']}' ");因为JAV...原创 2014-08-02 14:30:21 · 3099 阅读 · 0 评论 -
(一) 正则表达式快速入手指南之字符集合表达式(包含个人总结)
我们都知道,正则表达式可以很方便地对字符串进行匹配、查找、分割等操作。但是,面对看似复杂的符号组合,自己就曾被唬过,感觉这是一种难以理解的语法,所以碰到的时候也就查查对应的正则表达式是表示什么意思,并没有尝试了解。人总是被逼的,轮到自己开发有关字符串的匹配功能的时候,发现使用字符串拆解比对的方式,逻辑上实在很繁杂,不简练更不直观,程序的健壮性也不敢想象。可见,即使某种语言是正交完备的,也不一定能很原创 2014-07-26 20:16:06 · 2900 阅读 · 0 评论 -
(二)正则表达式之常用表达式详细解析
背景简介: 今天比较清闲,就kank正则表达式的语法不直观,而且书写规则出奇的复杂,因为它们把某些位置上的字符串解析为运算符,而把仅在位置上稍微不同的相同字符串当作字面量。比不易书写更糟糕的是,正则表达不直观,不易被直接理解,从而修改起来难度也比较高。一般,要正确的阅读正则式,需要对正则表达式的整个复杂性有相当彻底的了解。但是,从相反的角度,正则表达式非常凝练,是处理字符原创 2014-08-04 20:15:00 · 1014 阅读 · 0 评论 -
struts2.x多文件上传(使用注解)
struts2.x多文件上传(使用注解) 一般网站都会提供文件的上传与下载的功能,尤其是资料管理型网站。刚好在工作中需要用到,就提前学习了一下,并建了一个maven工程做练习。 1. 本工程使用maven创建工程,是为了省去包导入细节,其中maven工程的pom.xml文件主要如下:dependency> groupId>org.apa原创 2014-07-17 19:35:00 · 2345 阅读 · 0 评论 -
通过Spring获取指定路径下的class
实战背景: 博主在上篇文章Spring启动后加载类或启动类方法大致聊到背景,是为了开发一个自定义注解,根据注解生成说明的菜单树,用于前端编辑。这就要求Spring启动后就扫描特定的包,然后解析自定义注解,“填入”菜单树的业务领域对象中。这个细节将在另外一篇文章具体解说——有关自定义注解和解析实战。 我们知道,虽然JAVA有提供几个操作资源的接口,但是不是很给力...原创 2014-07-24 21:09:37 · 2384 阅读 · 0 评论 -
Spring启动后加载类或启动类方法
使用背景: 有两个简单的方法,都是在applicationContext.xml中配置beanbeanid="templateAnnotationInit"class="com.cnc.apm.handler.ParseTemplateAnnotationHandler"/>其中,ParseTemplateAnnotationHandler是JavaBean。Spring容器启原创 2014-07-22 19:54:34 · 12841 阅读 · 0 评论 -
使用CodeMirror实现在线velocity语法高亮和自动联想功能
使用背景: 最近需要开发一款线上velocity编辑器,用于配置模板的管理。为了能够使用户觉得好用,编辑器需要提供velocity语法高亮,并且能够提供自动联想功能。需求是比较清晰的,但是完全自己写编译器,难度太高,是不可能的。而且,软件业不鼓励重复造轮子。所以,首先搜索现成的插件,主要以javascript为主。这方面的资料并不算多,有的介绍也是比较简单,最近Google被封死,部分翻...原创 2014-07-27 10:17:38 · 21421 阅读 · 9 评论 -
[struts2.x] 探索struts值栈如何赋值给action成员变量
接着上篇博客论述:测试到这里,我要的结果已经有了,但是我还有个疑问,就是我并没有指定map的实现类,struts2.x是用什么策略去实例化这个map的?为了探索这个问题,我做了如下测试,这个测试的内容比上述还有意义得多O(∩_∩)O~。首先,还是不指定map的实现类,修改getter方法,如下 public Map<String,Object> getMap() {...原创 2014-07-30 21:00:50 · 1698 阅读 · 0 评论 -
Mysql的varchar(20)到底可以存储多少个中文字符
背景: 今天群里问说“Mysql的varchar(20)到底可以存储多少个中文字符”,很多直观回答是10个字符。这个问题其实很容易得到结果。博主就动手测试了一下。 动手测试之:新建表:CREATE TABLE varchar_test (`id` int(11) NOT NULL ,`string` varchar(20)) ENGINE=InnoDB...原创 2014-07-22 20:23:52 · 45759 阅读 · 7 评论