`
gaojingsong
  • 浏览: 1202702 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Mycat 类图研究以及源码阅读之JarLoader

阅读更多

Mycat 源码阅读之JarLoader 

package io.mycat.config.classloader;

import java.util.jar.*;

import java.lang.reflect.*;

import java.net.URL;

import java.net.URLClassLoader;

import java.io.*;

 

import java.util.*;

public class JarLoader {

 

   /** Unpack a jar file into a directory. */

    public static void unJar(File jarFile, File toDir) throws IOException {

           JarFile jar = new JarFile(jarFile);

        try {

              Enumeration entries = jar.entries();

             while (entries.hasMoreElements()) {

             JarEntry entry = (JarEntry)entries.nextElement();

       if (!entry.isDirectory()) {

                   InputStream in = jar.getInputStream(entry);

         try {

                   File file = new File(toDir, entry.getName());

                     if (!file.getParentFile().mkdirs() && !file.getParentFile().isDirectory()) {

 

               throw new IOException("Mkdirs failed to create " + 

                                     file.getParentFile().toString());

 

           }

           OutputStream out = new FileOutputStream(file);

           try {

             byte[] buffer = new byte[8192];

             int i;

             while ((i = in.read(buffer)) != -1) {

               out.write(buffer, 0, i);

             }

           } finally {

             out.close();

           }

         } finally {

           in.close();

         }

       }

     }

   } finally {

     jar.close();

   }

 }

}



 

测试代码:

public class JarDemo {

 

/**

* @param args

* @throws IOException 

*/

public static void main(String[] args) throws IOException {

 

File  jarFile = new File("C:/Intel/joda-time-2.3.jar");

File  toDir = new File("C:/Intel");

JarLoader.unJar(jarFile, toDir);

 

}

 

}



 

解压之后的文件夹



 

 

Mycat类图研究



 

 



 

  • 大小: 100 KB
  • 大小: 141.5 KB
  • 大小: 94.9 KB
  • 大小: 59.4 KB
  • 大小: 45.6 KB
0
1
分享到:
评论

相关推荐

    Mycat源码分析

    Mycat源码分析Mycat源码分析Mycat源码分析Mycat源码分析Mycat源码分析

    mycat-server 1.6 源码包 可直接运行

    深入研究Mycat-Server 1.6的源码,可以帮助开发者理解其内部机制,比如连接管理、SQL解析、事务处理、负载均衡等模块。源码阅读有助于定制化开发和优化性能,例如针对特定业务场景调整分片策略,或者改进SQL执行效率...

    Mycat1.6源码

    本文将深入探讨Mycat 1.6的核心概念、设计原理以及源码解析,帮助读者了解并掌握这款强大的数据库中间件。 1. **Mycat架构概述** Mycat采用主备模式设计,主要由Server节点和Schema节点构成。Server节点负责处理...

    Mycat-Server-1.6(源码)

    《深入解析Mycat-Server-1.6源码》 Mycat是开源的分布式数据库中间件,它主要用于解决大数据环境下数据分片、...因此,对于有志于在大数据领域深入研究的开发者来说,掌握Mycat-Server-1.6的源码是必不可少的一步。

    Mycat源码包

    总结来说,Mycat源码包包含了大量的设计思想和技术实现,如分库分表策略、读写分离机制、数据复制与一致性保证、SQL优化以及监控管理等。通过对这些源码的深入学习,开发者不仅可以掌握Mycat的运作方式,也能提升...

    Mycat 2-1.06 源码包下载

    一个彻底开源的,面向企业应用开发的“大数据库集群”,支持事务、ACID、是一个加强版的数据库,结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品,一个新颖的数据库中间件产品。

    Mycat2 v1.21-2022-4-7源码(Mycat2-1.21-2022-4-7.tar.gz)

    通过深入研究Mycat2 v1.21-2022-4-7的源码,开发者不仅可以掌握分布式数据库中间件的设计理念,还能提升在大数据环境下解决实际问题的能力。对于希望从事分布式数据库领域的工程师来说,这是一份宝贵的参考资料。

    Mycat-Server-master 源码、可直接在eclipse中调试

    《深入剖析Mycat-Server源码:Eclipse调试与Maven实践》 Mycat,作为一款开源的分布式数据库中间件,广泛应用于大数据环境下的高并发、高性能场景。其核心在于提供数据分片、读写分离以及负载均衡等功能,为大型...

    mycat1.6jar包反编译的源码

    《深入解析mycat1.6源码:一次技术探索之旅》 Mycat,作为一款开源的分布式数据库中间件,广泛应用于大型分布式系统中,它实现了数据分片、读写分离、故障切换等功能,为高并发、大数据量的场景提供了优秀的解决...

    最详细MyCat学习资料(源码)

    MyCat是一个开源的分布式数据库系统,它是基于MySQL协议的分布式数据库中间件,旨在提供高性能、高可用性和易扩展性的数据库解决方案。MyCat的设计目标是为了解决单一数据库服务器性能瓶颈和数据容量限制的问题,...

    基于Java的高性能MySQL集群中间件Mycat-Server设计源码

    该项目为基于Java开发的高性能MySQL集群中间件Mycat-Server的设计源码,总计包含1123个文件。其中,Java源文件占比最高,达到998个,此外还包括29个XML配置文件、22个文本文件、19个属性文件、14个HTML文件、8个PNG...

    兼容高版本驱动的mycat1.6.6源码

    【标题】"兼容高版本驱动的mycat1.6.6源码"涉及的主要知识点是Mycat数据库中间件与MySQL驱动以及Druid连接池的兼容性问题。Mycat是一款开源的分布式数据库系统,它作为数据库中间件,用于解决大数据量、高并发场景下...

    Mycat2 v1.21-2022-4-7源码(Mycat2-1.21-2022-4-7.zip)

    Mycat2 v1.21-2022-4-7源码(Mycat2-1.21-2022-4-7.zip)

    Mycat从入门到精通视频教程

    Mycat 几种分片规则的使用说明以及例子 第5课 Mycat跨分片问题 Mycat跨分片聚合处理、Mycat跨分片JOIN、Mycat分布式事务 第6课 Mycat性能测试与调优 Mycat性能参数及调优 Mycat性能测试 第7课 Mycat高可用...

    mycat学习研究.zip

    内含:mycat-web文本安装教程和基础环境包(javajdk,zookeeper,mycat-web,mycat-server)以及本人购买的mycat学习视频(安装配置,分库分表,主从复制读写分离)

    Mycat-server-1.6.7.6-release.jar 源码所需的pom.xml文件

    Mycat-server-1.6.7.6-release.jar 源码所需的pom.xml文件

    Mycat从入门到精通之Mycat源码分析.pptx

    ### Mycat从入门到精通之Mycat源码分析 #### 一、NIO源码分析 Mycat作为一个高性能的数据库中间件,在其架构设计上充分利用了Java NIO技术来提升性能。NIO(Non-blocking I/O)是非阻塞I/O的简称,通过采用非阻塞...

    mycat2.0源码

    Mycat 2.0 预览版。 基于Nio实现,有效管理线程,解决高并发问题。 前后端共享buffer,支持全透传和半透传,极致提升内核性能,稳定性和兼容性。 功能特性 支持SQL92标准。 支持单库内任意sql。 支持读写...

    mycat从入门到跑路

    命令行工具指南 第4课 Mycat分片规则详解 Mycat 几种分片规则的使用说明以及例子 第5课 Mycat跨分片问题 Mycat跨分片聚合处理、Mycat跨分片JOIN、Mycat分布式事务 第6课 Mycat性能测试 与调优 Mycat性能参数及调优 ...

    mycat修改源码扩展subTables 支持按月分表 $201701-? 配置

    基于MyCat1.6正式版的源码修改的,支持subTables的按月分表正则配置 subTables=“ tableName_$201701-?” subTableWay="BYMONTH" 表示从201701月份开始进行分表处理,?表示当前日期的月份,是动态的。只需配置开始...

Global site tag (gtag.js) - Google Analytics