岁月足迹
文章平均质量分 81
易德军
what it doesnt kill me ,it will make me stronger!
展开
-
善借ChatGPT提效,Cursor四问答设计业务简一概念模型示例
人人都是程序员,AI神器Cursor辅助,体验自然语言编程原创 2023-04-12 14:40:10 · 268 阅读 · 0 评论 -
诡异的异常Cannot retry request with a non-repeatable request entity
越急越乱 越想早走,越让你走不了场景: 昨晚,使用solrj全量同步更新索引数据……生产环境 肚子饿……家里冰箱中还有半个西瓜…异常信息如下:org.apache.solr.client.solrj.SolrServerException: IOException occured when talking to server at: http://localhost:8080/solr/sd原创 2017-05-26 10:02:42 · 10574 阅读 · 0 评论 -
How tomcat works——20 基于JMX的管理
概述第 19 章讨论了 Manger 应用程序,演示了如何使用实现了 ContainerServlet 接口的ManagerServlet 类来访问 Catalina 的内部对象。本章演示了如何使用JMX技术进而更方便、老练地管理 Tomcat。对于不熟悉 JMX 的读者,本章开头先进行了简单的JMX介绍。另外本章介绍了Catalina中使用的“Commons Modeler”建模库,它可以很简单的翻译 2017-05-06 19:05:22 · 1436 阅读 · 0 评论 -
MySQL中删除重复数据只保留一条
使用SQL删除表中重复数据(单字段)You can't specify target table 'message' for update in FROM clause原创 2017-04-24 20:33:06 · 3933 阅读 · 1 评论 -
那些年——3 纯技术只是你手中的剑--而别人遥控着
电脑 胯下的骏马 技术 手里的宝剑 思想 驾驭骏马和宝剑的主人曾唉叹身不逢时、身不由己 如果在古代,也许自己是个劫富救贫、扬善除恶的侠客; 如果在近代,也许自己是个运筹帷幄、决胜千里的副将;(不适合做将军)曾自我安慰、自我激励 如今知识时代,你没有成为学者; 如今商业时代,你没成为经纪人;(不适合做老板) 时光倒流 你也不会是个侠客和副将!!原创 2017-05-23 20:27:52 · 605 阅读 · 0 评论 -
How tomcat works——19 管理Servlet
概述Tomcat4/5有一个 Manager 应用程序用于管理部署的应用程序。跟其它应用程序不同,Manager 并不在%CATALINA_HOME%/webapps 目录下而是在%CATALINA_HOME%/server/webapps 下。Manager 有一描述文件 manager.xml在%CATALINA_HOME$/webapps(Tomcat4)或%CATALINA_HOME%/se翻译 2017-04-16 18:57:43 · 1192 阅读 · 0 评论 -
How tomcat works——18 部署
概述要使得一个 web 应用可以访问,则应用上下文(Context)必须先部署在主机(Host)上。在 Tomcat 中,一个应用上下文可以以 WAR 文件的形式部署,也可以直接将整个应用程序部署在Tomcat 安装目录的 wabapp 目录下面。部署的每个应用,都可以有一个配置描述文件用来配置该上下文,配置文件以 XML 文档的形式存在。注意:在 Tomcat4 和 5 中有两个已经部署好的应用:翻译 2017-04-01 21:24:08 · 1198 阅读 · 0 评论 -
How tomcat works——16 关闭钩子
概述在很多环境下,当用户在关闭应用程序时我们需要做一些清理工作。问题在于,用户并不是经常的按照预推荐流程来退出。例如,在 Tomcat 部署中通过初始化一个服务器(Server)并调用它的 start()方法来启动一个 servlet 容器,该方法又调用其它组件的start()方法。正常情况下,可以通过一个关闭命令来让服务器关闭所有组件,犹如第14 章中介绍。如果突发地关闭程序,如在程序还在运行时关翻译 2017-03-15 21:48:07 · 1379 阅读 · 0 评论 -
How tomcat works——15 Digester
概述在前面章节中已经看到,使用 Bootstrap 类来初始化连接器、上下文、包装器以及其它组件。获得了它们的对象后,就可以使用 setXX()方法来关联它们。例如可以如下初始化连接器和上下文:Connector connector = new HttpConnector();Context context = new StandardContext();将连接器和上下文相关联起来可以如下实现:c翻译 2017-03-14 20:24:08 · 1164 阅读 · 0 评论 -
How tomcat works——17 启动Tomcat
概述本章关注的重点是如何使用 org.apache.catalina.startup下面的Catalina和 Bootstrap 类来启动Tomcat。Catalina类用于解析Tomcat配置文件server.xml以及启动和停止Server。Bootstrap 类创建一Catalina实例并调用它的 process()方法。理论上,这两个类可以合成一个类。但是,为了支持 Tomcat 的多模式启翻译 2017-03-29 21:08:07 · 1293 阅读 · 0 评论 -
How tomcat works——12 StandardContext
概述如前面章节看到,一个上下文容器(Context)代表着一个 web 应用,每一个上下文包括一个或多个包装器(Wrapper),每个包装器代表一个 Servlet。然而,上下文还需要其它的一些组件,如加载器和管理器。本章介绍 Catalina 中Context 接口的标准实现类org.apache.catalina.core.StandardContext 。我们首先介绍 StandardCont翻译 2017-03-07 21:04:20 · 863 阅读 · 0 评论 -
How tomcat works——14 Server和 Service
概述在前面的章节中已经看到了如何初始化连接器和容器并将它们关联起来作为Servlet 容器。前面只有一个连接器,通过端口 8080 对 HTTP 请求进行服务。我们不能添加另一个连接器来处理例如 HTTPS 的请求。另外,前面所有的配套Demo程序都缺乏一件事:很好地启动和停止 Servlet 容器的机制。在本章中,我们将提供了该机制以及其它一些附属组件:服务器(server)和服务(service翻译 2017-03-10 21:45:36 · 772 阅读 · 0 评论 -
《技术管理之巅》书摘笔记
技术团队定位: 技术引领 业务驱动 相互支撑(*)技术团队发展阶段: 1.初创期(首要任务打造产品或原型、技术人才储备、制定中长期技术发展规划) 2.发展期(伴随业务发展,技术团队工作重心是加快产品更新和升级,支持公司业务发展,同时制定技术服务体系) 3.成熟期(追求技术先进性,招募行业一流人才)技术管理目标: 使技术和业务高度融原创 2017-03-19 20:44:10 · 765 阅读 · 0 评论 -
How tomcat works——13 Host 和 Engine
概述本章要讨论的2个主题是主机(host)和引擎(Engine)。如果需要在一个 Tomcat部署中部署多个上下文,需要使用一个主机。理论上,当只有一个上下文容器时不需要主机,正如下面 org.apache.catalina.Context 接口中描述:“上下文容器的父容器通常是主机,但是可能有一些其它实现,没有必要的时候也可以忽略”然而在实践中,一个 Tomcat 部署往往需要一个主机。至于为什么翻译 2017-03-08 20:49:59 · 1139 阅读 · 0 评论 -
How tomcat works——10 安全性
概述一些web 应用内容是受限的,只有在有特定权限的用户输入正确的用户名和密码后才能访问。Servlet 通过配置部署文件 web.xml 来对安全性提供技术支持。本章将介绍 container 如何支持安全性控制。servlet 容器通过一个称为 authenticator 的阀门(valve)来支持安全认证。当 container 启动时,authenticator 被添加到container翻译 2017-02-24 20:25:30 · 1198 阅读 · 0 评论 -
How tomcat works——8 类加载器(Loader)
概述我们在前面的章节中已经实现了一个简单的加载器,用它来加载 servlet 类。本章会介绍标准的web应用加载器,简单地说就是加载器,在Catalina中。servlet容器需要定制加载器,而不能简单地使用系统的类加载器,因为系统类加载器不应该信任正在运行的servlet。如果像前面章节中那样使用系统的加载器来加载 servlet 和其它需要的类,这样 servlet 就可以进入 Java 虚拟机翻译 2017-01-25 16:17:25 · 1095 阅读 · 0 评论 -
How tomcat works——9 session管理
概述Catalina通过名为manager的组件来完成session管理,该组件由org.apache.catalina.Manager接口表示。 一个manager总是与context相关联。 其中,manager负责创建,更新和销毁(无效)session对象以及可返回有效的session对象给任何请求组件。一个 servlet 可以使用 getSession()方法获得一个 session 对象翻译 2017-02-11 21:31:12 · 1053 阅读 · 0 评论 -
那些年——4 编码感受
编码感受 —2009-3-16 A.山重水复疑无路 B.柳暗花明又一村 这种感觉总在coding中循环.. 这种感觉就像内存指针 目前指针指向->A 有了www 总会指向->B 有追求,又总会指向->A.. 无限循环 最终,习得一身好本领原创 2017-05-27 18:24:52 · 573 阅读 · 0 评论 -
How tomcat works——引言
排版更好的百度电子书:https://yuedu.baidu.com/ebook/ac92f0d35122aaea998fcc22bcd126fff7055d60概述欢迎阅读《How Tomcat Works》。这本书详细的剖析了Tomcat 4.1和5.0工作原理,并讲解了其代号为“Catalina” 当前免费、开源、最流行的servlet容器的内部运作机制。Tomcat是个复杂的系统,它是由许多翻译 2017-01-04 10:28:12 · 2589 阅读 · 1 评论 -
Maven项目脚手架
一、背景&目标当前新建项目时,配置文件往往都是从其它项目拷贝过来,拷贝时很容易踩坑,并且不容易定位问题。尤其对新人来说由于在对公司项目结构、基础中间件、配置还不了解的情况下,会浪费很多不必要的时间。故,希望通过脚手架解决此痛点,达到如下几个基本目标:1.统一规范工程项目&代码层次结构——约定大于配置;2.提升工作效率——脚手架&代码生成器&自定义插件;3....原创 2019-01-23 10:55:16 · 3705 阅读 · 2 评论 -
IDEA的Live Templates代码模板
IDEA的Live Templates代码模板一、简介本着“复杂的事情简单化,简单的事情标准化”的做事基本指导原则,我们发现日常编码中,有大量的代码可以提炼出模板进而简单化/自动化。1.可以大大提高编码效率;2.统一了通用代码风格;如果我们想做流程或者自动化,没有一个统一标准的话,我们要考虑的点就会很多:“标准”打磨形成“规范”,“规范”梳理成“流程”,“流程”推演到“自动化”...原创 2019-01-25 15:38:56 · 3093 阅读 · 3 评论 -
Java中Callable和Future——引子
一、场景通常我们在一个事件方法中会去调用另外几个方法,如发用邮件,为了快速响应,一般最简单直接粗暴的是 新启一线程来异步发邮件(使用线程池较好)。这个时候我们不太在意所依赖的方法操作成功与否(即不需要结果)。但,多半我们是需要异步操作结果的。比如在Action层调用多个Service或在Service层方法中调用多个DAO。如下图,假设某Action层方法需要依赖调用a、b、c三个方法,它们三分别原创 2017-07-17 16:55:00 · 665 阅读 · 0 评论 -
Java中Callable和Future——简介
一、Java线程实现基础java中实现一个线程的方法是继承(extends)Thread类或者实现(implements)Runnable接口(我个人认为通过线程池启线程也算是)。继承Thread类:class A extends Thread{ @Override public void run() { //TODO }原创 2017-07-20 15:24:22 · 968 阅读 · 0 评论 -
Spring transaction事务之roll back回滚
试验方法: 写一个单元测试,调用一个service层方法(发生对数据库进行写操作的方法--insert、update、delete)即可.试验过程: 定义一个service方法如下: public SMSTimingcreateSMSTiming(SMSTiming smsTiming){原创 2012-06-05 20:33:29 · 45894 阅读 · 6 评论 -
使用HttpClient和Jsoup定向抓取数据
1.业务需求:从指定外网抓点货,冷启动2.站点分析:.限制IP… .需要登录…… .对登录账号有抓取频率限制………. .抓取频率过低,直接跳验证码页面………….. .验证码长度、模样(纯数字&字母数字混合)TM不固定………………..“我们能不能不抓了?“ “不行!必须得抓…” “……”这么说,此前写的爬虫,多线程、生产者—>消费者 并发抓取压根行不通。多线程毫无意义。3.使用技术:1原创 2017-06-07 21:26:11 · 2312 阅读 · 1 评论 -
使用Netty搭建APP推送服务器
调用时序图如下:源码:https://github.com/Aresyi/pushServer(1)获取socket登录秘钥(登录口令):key. key的时效为1分钟,如果客户端在拿到key后,1分钟之内不执行socket登录验证的流程,则key自动生效;接口服务地址:/user/getPushKey(2)客户端拿到key后,与服务器端建立socket连接,并立即发送key到服务器。如果key过期原创 2016-08-17 16:54:17 · 10886 阅读 · 10 评论 -
那些年——7 286&586
易德军 说 (10:45): 谈2个问题 寒林 说 (10:45): 怎么了? 易德军 说 (10:46): 那 我就可以 用你的账号和密码 登录系统 看你的东西了?! 寒林 说 (10:47): 对的 寒林 说 (10:47): 这是毫无疑问的事情 寒林 说 (10:47): 不过商业系统当然有保密规则在里边 而且还会对一些用户信息进行加密 寒林 说 (10:48): 你原创 2017-06-01 20:54:00 · 878 阅读 · 0 评论 -
那些年——8 286&586[同步&异步]
所以,后来整理了:http://blog.csdn.net/LoveJavaYDJ/article/details/4645439阿军 说 (9:57):老大:还是说说,同步、异步 吧阿军 说 (9:57):举个例子:普通B/S模式(同步)AJAX技术(异步) 同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事 异步: 请求通过事件触发->服务器处理(这是浏览器仍原创 2017-06-05 19:32:18 · 807 阅读 · 0 评论 -
How tomcat works——序言
在路上2006年的暑假,抱着早点接触社会的心态,从合肥坐24小时绿皮车跑到广州打暑假工。当时感触到:学电气自动化的似乎天天要和那些油乎乎的机械打交道;哪一天如果自己想干点什么,初期投入买个设备都要很多钱。 广州回来后,一天下午我在家里菜园马路边的草丛中捡了一部摩托罗拉手机。手机里面的游戏启动屏是冒着热气的茶杯,还有着JAVA4个字母,第一眼就甚是喜欢那个图案——与君初相识,犹如故人归。2007年,原创 2017-06-15 18:19:38 · 803 阅读 · 1 评论 -
那些年——2 心声共鸣
刚刚看过CCTV-10一篇关于徽商 胡雪岩 生活启示 这么一个节目 主讲是台湾师范大学一教授,他说:我很庆幸是中国人,因为我们先辈们都把生活中经验教训总结为成语! 呵呵,我想这句话是说到我的心里来了!(为什么?以后慢慢写,现在没有时间) 胡雪岩说:一个人(人生)不能太顺;当你太顺时,一定要小心! 由此,我想到生活中:越是太平的路,骑车会摔的更惨;越是崎岖的路,原创 2017-05-20 16:43:21 · 636 阅读 · 0 评论 -
那些年——6 286&586
易德军 说 (14:06): 老大:如何准确的获取客户端IP? request.getRemoteAddr()这个方法,如果别人使用代理服务器,就不准确了 寒林 说 (14:06): 恩 寒林 说 (14:06): 是的 寒林 说 (14:07): 如果有代理的话没有100%的办法 易德军 说 (14:07): 那咋办? 易德军 说 (14:原创 2017-05-31 20:52:48 · 698 阅读 · 0 评论 -
那些年——5 杜拉拉升职记
事实证明: 1.机会总是给有准备的人 2.实践出真知 3.独行侠时代已过去,受益于开源,理应更多分享原创 2017-05-29 11:34:44 · 654 阅读 · 0 评论 -
How tomcat works——11 StandardWrapper
概述我们在第5章中已经学到,一共有4种容器:engine(引擎)、host(主机)、context(上下文)和 wrapper(包装器)。并且在前面的章节里也介绍了如何建立自己的context 和 wrapper。一个上下文一般包括一个或者多个包装器,每一个包装器代表一个 servlet。本章将介绍Catalina 中 Wrapper 接口的标准实现。首先介绍了一个 HTTP 请求会唤醒的一系列方法翻译 2017-02-28 20:46:54 · 1165 阅读 · 0 评论 -
How tomcat works——7 日志记录器
概述日志系统是一个记录信息的组件。在 Catalina 中,日志系统是一个跟容器相关联且相对简单的组件。Tomcat 在 org.apache.catalina.logger 包中提供了多个不同的日志系统。本章的应用程序在 ex07.pyrmont 包中。SimpleContext 和Bootstrap 是从第六章中修改得到。本章有三节组成,第一节介绍了所有日志系统都要实现的 org.apache.翻译 2017-01-18 17:52:01 · 707 阅读 · 0 评论 -
How tomcat works——4 Tomcat中默认连接器
概述第 3 章的连接器运行良好,且已获得较好性能。但是,它只是作为一教学工具,被设计用来介绍 Tomcat4 的默认连接器。理解第 3 章中的连接器对于理解 Tomcat4 的默认连接器是至关重要的。现在,我们在第 4 章中将通过剖析 Tomcat4 默认连接器的代码,讨论、创建一个真实的 Tomcat 连接器。注意:本章中提及的“默认连接器”是指 Tomcat4 中的默认连接器。即使默认的连接器已翻译 2017-01-12 19:28:36 · 1617 阅读 · 0 评论 -
应用Hibernate开发时几个有用的配置
在hibernate.cfg.xml中一些方便开发调试的配置 "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> org.hibernate.diale原创 2009-06-05 10:07:00 · 729 阅读 · 0 评论 -
MongoDB使用——安装和基本操作
"The palest ink is better than the best memory"——好记性不如烂笔头。2013~2015补记题记 :2013.3月时公司用户通讯录记录近8000W(Mysql单表),读写奇慢。 考虑到业务应用场景和数据结构形态(用户通讯录、第三方社交平台好友数据)——无固定Schema ,结构松散;且对数据一致性要求不高。 另这些数据适合直接使用JSON存储(当时生原创 2016-12-13 16:00:02 · 759 阅读 · 0 评论 -
2008的中国,2008的我
原创 2009-01-03 15:03:00 · 927 阅读 · 1 评论 -
心语
心心对我说:别怕孤独与寂寞,你要知道——古来圣贤皆寂寞!心对我说:别怕贫穷与苦难,你要知道——年轻人吃苦是福!心对我说:别抱怨没有机遇,你要知道——机遇靠实力支撑!心对我说:别抱怨没有爱情,你要知道——爱情靠缘分注定!心对我说:别太得意你今天所得到的,你要知道——福祸相依!心对我说:别太在意你今天所失去的,你要知道——有失有得! 我偷偷对我说:没十分把握,不要原创 2009-06-09 12:54:00 · 656 阅读 · 0 评论 -
初次和老外说英语
书到用时方恨少原创 2010-11-11 10:18:00 · 942 阅读 · 0 评论