JAVA
BugAngel233
学生
GitHub https://github.com/BugAngel
展开
-
自定义类加载器加载Spring
spring根本不会去管自己被放在哪里,它统统使用TCCL来加载类,而TCCL默认设置为了WebAppClassLoader,也就是说哪个WebApp应用调用了spring,spring就去取该应用自己的WebAppClassLoader来加载bean。这在真正理解线程上下文类加载器(多案例分析)中已有详细描述。因此,为了使spring使用自定义的类加载器进行加载,需要开一个线程,将这个线程的类加载器设置为自定义类加载器。 public String test(){ try{原创 2021-02-08 23:25:57 · 1349 阅读 · 0 评论 -
Java读取Zip/JAR文件中的内容
在从JAR包中读取指定类的字节码中,使用JarFile读取Jar包,有的XML文件无法被读取到。因此,使用读取Zip的方式读取XML文件。 public int readZipFile(String zipFilePath, String sourcePath, String targetPath) { try { int byte_sum = 0; int byte_read = 0; byte[] buffe原创 2021-02-08 22:53:13 · 454 阅读 · 1 评论 -
从JAR包中读取指定类的字节码
private byte[] getClassData(String name) { try { name = name.replace('.', '/'); name = name + ".class"; System.out.println("类路径为: " + name); byte[] buffer = new byte[1024]; ...原创 2021-02-06 17:51:08 · 444 阅读 · 0 评论 -
JAVA 被执行JAR包下载自身所在JAR
项目中,有时需要JAR包中被执行方法自身下载自己所在的JAR包。示例代码如下 String url_head = "localhost"; //域名 // JAR 包所在路径 String url_path = url_head + this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); try { File targe原创 2021-02-06 17:38:27 · 90 阅读 · 13 评论 -
MAVEN shade 插件解决JAR包冲突
在团队间使用 guava 时,经常出现因新旧版本不兼容导致的 NoSuchMethodFound 错误。为了解决这个问题,可以在打包时对它进行 shade 处理,改变包名。maven 对 shade 插件的处理如下,各个字段的含义见代码注释。 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</group原创 2021-01-23 20:14:21 · 1873 阅读 · 0 评论 -
JAVA 类隔离加载解决JAR包冲突
JAVA通过类加载器名称、包名、类名、方法名唯一确定一个方法,因此JAR包冲突可以通过改变类加载器实现。JAVA8及以下版本破坏双亲委派机制,实现JAVA类隔离加载依赖 loadClass()方法实现。JAVA9开始模块化后,加载器之间的关系不再是双亲委派模型的树状结构,自然可以隔离不同类的加载。建立maven工程,在 com.example 包下有TestA和TestB两个类。TestA调用了TestB中的方法。现希望将TestA与其所有的引用,也就是TestB类使用同一个自定义类加载器加载。代码如下。原创 2021-01-23 18:15:40 · 1621 阅读 · 0 评论 -
PostConstruct 注解:main 调用 spring 注入 service
实际作用@PostContruct 是spring框架的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。@PostConstruct 是 Servlet 的注解,可以用来解决 main 方法调用 spring 注入的 service 类问题。实例代码如下:@Autowiredprivate Dao dao;public static void main(String[] args){ SpringApplication.run原创 2020-12-27 19:48:49 · 1058 阅读 · 0 评论 -
URL ClassLoader 类加载器
URL ClassLoader 是 Java 用来加载远程类的类加载器。在 flink 中,启动时使用 -C 参数可以向集群中所有节点上的每个用户代码类加载器添加一个URL,这依靠的就是 URL ClassLoader 。ClassLoader 只能加载 classpath 下面的类,而 URL ClassLoader 可以加载任意路径下的类。它继承自 SecureClassLoader,SecureClassLoader 继承自 ClassLoader 。URL ClassLoader 可以从下面三个方原创 2020-12-27 18:38:10 · 738 阅读 · 0 评论 -
java面试题整理
一、什么是HashMapHashMap是Map接口的一个实现类,特点如下:无序,允许为null,非同步底层由散列表(哈希表)实现初始容量和装载因子对HashMap影响挺大的装载因子*初始容量小于散列表元素时,该散列表会再散列,扩容2倍!并不是桶子上有8位元素的时候它就能变成红黑树,它得同时满足我们的散列表容量大于64才行的HashMap并不是直接拿key的哈希值来用的,它会将key的哈希值的高16位进行异或操作,使得我们将元素放入哈希表的时候增加了一定的随机性。二、字符串转哈希值publi原创 2020-05-31 16:52:26 · 280 阅读 · 0 评论 -
Java中带包(创建及引用)的类的编译
原网址Java中带包(创建及引用)的类的编译只有一个文件时编译:javac A.java一个包的文件都在时编译:javac -d . *.java运行:编译之后会自己生成文件夹,不要进入这个文件夹,直接运行java -cp /home/test test.Run,其中源文件在test文件夹中,包名为test,启动文件为Run.java...转载 2018-07-15 22:06:55 · 658 阅读 · 0 评论 -
MySql8.0.11的JAVA JDBC连接
官网上Windows下载选择操作系统为Platform Independent注意事项1、最新官方支持将com.mysql.jdbc.Driver改为com.mysql.cj.jdbc.Driver2、mysql8.0是不需要建立ssl连接的,你需要显示关闭,即url中useSSL=false3、时区不设置会报错连接数据库代码如下package test;import java.sql.Con...原创 2018-07-12 10:37:59 · 2087 阅读 · 5 评论