众妙之门

业精于勤,荒于嬉;行成于思,毁于随

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  149 随笔 :: 0 文章 :: 43 评论 :: 65万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

12 2018 档案

摘要:我们把jdk安装完成后,在命名行输入java -version 不仅可以看到jdk版本相关信息,还会看到类似与 Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode) 这样的信息。 其中有个Server VM (build 25 阅读全文
posted @ 2018-12-27 13:05 xuanm 阅读(545) 评论(0) 推荐(0) 编辑

摘要:平时我们在设计数据库表的时候总会设计 unique 或者 给表加上 primary key 的限制条件.此时 插入数据的时候 ,经常会有这样的情况:我们想向数据库插入一条记录: 若数据表中存在以相同主键的记录,我们就更新该条记录。 否则就插入一条新的记录。 ON DUPLICATE KEY UPDA 阅读全文
posted @ 2018-12-18 11:23 xuanm 阅读(829) 评论(0) 推荐(0) 编辑

摘要:如果要在一个update里面执行多条更新语句,只需要在jdbc:url后面跟上allowMultiQueries=true的参数,比如: 1.用for循环通过循环传过来的参数集合,循环出N条sql, 2.用mysql的case when 条件判断变相的进行批量更新 阅读全文
posted @ 2018-12-17 10:46 xuanm 阅读(14689) 评论(0) 推荐(2) 编辑

摘要:JAVA中使用DOM解析XML文件: 创建DocumentBuilderFactory的对象 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();创建DocumentBuilder对象通过documentBuilder对 阅读全文
posted @ 2018-12-13 16:52 xuanm 阅读(352) 评论(0) 推荐(0) 编辑

摘要:关键字synchronized与wait()和notify()/notifyAll()方法相结合可以实现等待/通知模式。 类ReentrantLock同样可以实现该功能,但是要借助于Condition对象。它具有更好的灵活性,比如可以实现多路通知功能,也就是在一个Lock对象里面可以创建多个Cond 阅读全文
posted @ 2018-12-12 17:09 xuanm 阅读(341) 评论(0) 推荐(0) 编辑

摘要:1.Container的有四个子容器,分别是Engine,Host,Context,Wrapper,如下: 1、Engine:整个Catalina servlet引擎,标准实现为StandardEngine。2、Host:表示包含一个或多个Context容器的虚拟主机,标准实现为StandardHo 阅读全文
posted @ 2018-12-11 22:03 xuanm 阅读(654) 评论(1) 推荐(0) 编辑

摘要:Connector容器主要负责解析socket请求,在tomcat中的源码位于org.apache.catalina.connector和org.apache.coyote包路径下;通过上两节的分析,我们知道了Connector是Service的子容器,而Service又是Server的子容器。在s 阅读全文
posted @ 2018-12-10 23:35 xuanm 阅读(800) 评论(0) 推荐(0) 编辑

摘要:Mapper组件的核心功能是提供请求路径的路由映射,根据某个请求路径通过计算得到相应的Servlet(Wrapper)Mapper的映射包括Host容器、Context容器、Wrapper容器等的映射关系以及映射算法 一个service容器包含了N个Host容器的引用,然后每个Host会有N个Con 阅读全文
posted @ 2018-12-10 22:51 xuanm 阅读(278) 评论(0) 推荐(0) 编辑

摘要:1.BlockingQueue定义的常用方法如下 抛出异常 特殊值 阻塞 超时 插入 add(e) offer(e) put(e) offer(e,time,unit) 移除 remove() poll() take() poll(time,unit) 检查 element() peek() 不可用 阅读全文
posted @ 2018-12-10 15:39 xuanm 阅读(357) 评论(0) 推荐(0) 编辑

摘要:catalinaHome和catalinaBase区别和作用 其Tomcat目录结构如下: bin (运行脚本) conf (配置文件) lib (核心库文件) logs (日志目录) temp (临时目录) webapps(自动装载的应用程序的目录) work (JVM临时文件目录[java.io 阅读全文
posted @ 2018-12-08 23:04 xuanm 阅读(310) 评论(0) 推荐(0) 编辑

摘要:通过查看分析启动脚本,发现最终调用的入口是org.apache.catalina.startup包下面的Bootstrap#main 类org.apache.catalina.startup.Catalina#load分析: digester.parse解析xml创建对象的时候相关操作: 1.会绑定 阅读全文
posted @ 2018-12-08 21:27 xuanm 阅读(408) 评论(0) 推荐(0) 编辑

摘要:1.背景 Tomcat作为JavaWeb领域的Web容器,目前在我们淘宝也使用的也非常广泛,现在基本上所有线上业务系统都是部署在Tomcat上。为了对平时开发的Web系统有更深入的理解以及出于好奇心对我们写的Web系统是如何跑在Tomcat上的,于是仔细研究了下Tomcat的源码。大家都知道Serv 阅读全文
posted @ 2018-12-03 23:22 xuanm 阅读(855) 评论(0) 推荐(0) 编辑

摘要:前提环境,安装和配置好java1.8+环境,maven,IDEA 1.下载Tomcat源代码:https://tomcat.apache.org/download-80.cgi#8.5.35 2.创建pom.xml 需要通过Maven组织文件,因此需要在apache-tomcat-8.5.35-sr 阅读全文
posted @ 2018-12-03 22:49 xuanm 阅读(10056) 评论(1) 推荐(8) 编辑

点击右上角即可分享
微信分享提示