Tomcat与spring的类加载器案例】的更多相关文章

Tomcat与spring的类加载器案例接下来将介绍<深入理解java虚拟机>一书中的案例,并解答它所提出的问题.(部分类容来自于书中原文) Tomcat中的类加载器在Tomcat目录结构中,有三组目录("/common/*","/server/*"和"shared/*")可以存放公用Java类库,此外还有第四组Web应用程序自身的目录"/WEB-INF/*",把java类库放置在这些目录中的含义分别是: 放置在c…
前言: 本次博客主要是对Tomcat与OSGi的类加载器架构,所以就需要对tomcat.OSGi以及类加载机制有所了解 类加载可以在http://www.cnblogs.com/ghoster/p/7594224.html中简单了解 一.Tomcat:正统的类加载架构 1.主流的Java Web服务器,如Tomcat.Jetty.WebLogic.WebSphere等都实现了自己定义的类加载器(一般都不止一个).因为一个功能健全的web服务器要解决一下几个问题: 1)部署在一个服务器上的两个we…
tomcat 7自带很多junit测试用例,可以帮助我们窥探源码的秘密.以下使用来测试类加载器的一个测试用例.类加载器也是对象,他们用来将类从类从.class文件加载到虚拟机,这些已经讲了很多,深入jvm中说的很详细,什么双亲委派模型,在书中还以tomcat为例讲解. /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the N…
Java类加载机制 类加载器 虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类.实现这个动作的代码模块称为“类加载器”. 类加载器可以说是Java语言的一项创新,也是Java语言流行的重要原因之一,它最初是为了满足Java Applet的需求而开发出来的.虽然目前Java Applet技术基本上已经“死掉”,但类加载器却在类层次划分.OSGi.热部署.代码加密等领域大放异彩,成为了J…
打破双亲委派模型 JNDI JNDI 的理解   JNDI是 Java 命名与文件夹接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之中的一个,不少专家觉得,没有透彻理解JNDI的意义和作用,就没有真正掌握J2EE特别是EJB的知识. 那么,JNDI究竟起什么作用?//带着问题看文章是最有效的 要了解JNDI的作用,我们能够从“假设不用JNDI我们如何做?用了JNDI后我们又将如何做?”这个问题来探讨. 没有JNDI的做法: 程序猿开发…
之前有文章已经介绍过了JVM中的类加载机制,JVM中通过类加载加载class文件,通过双亲委派模型完成分层加载.实际上类加载机制并不仅仅是在JVM中得以运用,通过影响字节码生成和类加载器目前已经有了许多相关的技术诞生.特别的对于进行应用服务器的开发过程中,类加载机制几乎是必须掌握的. 为什么在Tomcat中需要自定义类加载器 做Java开发的肯定都有用过tomcat,回想一下我们使用tomcat是的场景.最初的时候使用tomcat大多都是单纯的使用其作为项目的容器,而没有考虑多着中间的很多问题.…
通过前面的文章我们知道,Tomcat的请求最终都会交给用户配置的servlet实例来处理.Servlet类是配置在配置文件中的,这就需要类加载器对Servlet类进行加载.Tomcat容器自定义了类加载器,有以下特殊功能:1. 在载入类中指定某些规则:2.缓存已经载入的类:3.实现类的预加载. 本文会对Tomcat的类加载器进行详细介绍. Java类加载双亲委派模型 Java类加载器是用户程序和JVM虚拟机之间的桥梁,在Java程序中起了至关重要的作用,关于其详细实现可以参考了java官方文档关…
了解了类加载器的双亲委派机制, 也知道了双亲委派机制的原理,接下来就是检验我们学习是否扎实了,来自定义一个类加载器 一. 回顾类加载器的原理 还是这张图,类加载器的入口是c++调用java代码创建了JVM启动器,其中的一个启动器是sun.misc.Launcher启动器.这个启动器启动并加载的AppClassLoader和ExtClassLoader.然后调用launcher.getClassLoader()方法获取loader对象, loader对象本质是一个ClassLoader,然后调用了…
在上文中,已经介绍了系统类加载器以及类加载器的相关机制,还自定制类加载器的方式.接下来就以tomcat6为例看看tomat是如何使用自定制类加载器的.(本介绍是基于tomcat6.0.41,不同版本可能存在差异!) 网上所描述的tomcat类加载器 在网上搜一下“tomcat类加载器”会发现有大量的文章,在此我偷个懒,^_^把网上对tomcat类加载器的描述重说一下吧. CommonClassLoader:加载的类目录通过{tomcat}/conf/catalina.properties中的co…
一.tomcat是个web容器,要解决以下问题 1. 一个web容器可能要部署两个或者多个应用程序,不同的应用程序,可能会依赖同一个第三方类库的不同版本,因此要保证每一个应用程序的类库都是独立.相互隔离的. 2. 部署在同一个web容器中的相同类库的相同版本可以共享,否则,会有重复的类库被加载进JVM 3. web容器也有自己的类库,不能和应用程序的类库混淆,需要相互隔离 4. web容器支持jsp文件修改后不用重启,jsp文件也是要编译成.class文件的,支持HotSwap功能 二.tomc…