public class org.springframework.core.io.DefaultResourceLoader implements org.springframework.core.io.ResourceLoader
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.core.io.DefaultResourceLoader
super_class: java.lang.Object
{
private java.lang.ClassLoader classLoader;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private final java.util.Set<org.springframework.core.io.ProtocolResolver> protocolResolvers;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Lorg/springframework/core/io/ProtocolResolver;>;
private final java.util.Map<java.lang.Class<?>, java.util.Map<org.springframework.core.io.Resource, ?>> resourceCaches;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/Map<Lorg/springframework/core/io/Resource;*>;>;
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.LinkedHashSet
dup
iconst_4
invokespecial java.util.LinkedHashSet.<init>:(I)V
putfield org.springframework.core.io.DefaultResourceLoader.protocolResolvers:Ljava/util/Set;
2: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
iconst_4
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
putfield org.springframework.core.io.DefaultResourceLoader.resourceCaches:Ljava/util/Map;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/core/io/DefaultResourceLoader;
public void <init>(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.LinkedHashSet
dup
iconst_4
invokespecial java.util.LinkedHashSet.<init>:(I)V
putfield org.springframework.core.io.DefaultResourceLoader.protocolResolvers:Ljava/util/Set;
2: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
iconst_4
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
putfield org.springframework.core.io.DefaultResourceLoader.resourceCaches:Ljava/util/Map;
3: aload 0
aload 1
putfield org.springframework.core.io.DefaultResourceLoader.classLoader:Ljava/lang/ClassLoader;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/core/io/DefaultResourceLoader;
0 5 1 classLoader Ljava/lang/ClassLoader;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
classLoader
public void setClassLoader(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.core.io.DefaultResourceLoader.classLoader:Ljava/lang/ClassLoader;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/core/io/DefaultResourceLoader;
0 2 1 classLoader Ljava/lang/ClassLoader;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
classLoader
public java.lang.ClassLoader getClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.core.io.DefaultResourceLoader.classLoader:Ljava/lang/ClassLoader;
ifnull 1
aload 0
getfield org.springframework.core.io.DefaultResourceLoader.classLoader:Ljava/lang/ClassLoader;
goto 2
StackMap locals:
StackMap stack:
1: invokestatic org.springframework.util.ClassUtils.getDefaultClassLoader:()Ljava/lang/ClassLoader;
StackMap locals:
StackMap stack: java.lang.ClassLoader
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/core/io/DefaultResourceLoader;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void addProtocolResolver(org.springframework.core.io.ProtocolResolver);
descriptor: (Lorg/springframework/core/io/ProtocolResolver;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "ProtocolResolver must not be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
1: aload 0
getfield org.springframework.core.io.DefaultResourceLoader.protocolResolvers:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/core/io/DefaultResourceLoader;
0 3 1 resolver Lorg/springframework/core/io/ProtocolResolver;
MethodParameters:
Name Flags
resolver
public java.util.Collection<org.springframework.core.io.ProtocolResolver> getProtocolResolvers();
descriptor: ()Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.core.io.DefaultResourceLoader.protocolResolvers:Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/core/io/DefaultResourceLoader;
Signature: ()Ljava/util/Collection<Lorg/springframework/core/io/ProtocolResolver;>;
public <T> java.util.Map<org.springframework.core.io.Resource, T> getResourceCache(java.lang.Class<T>);
descriptor: (Ljava/lang/Class;)Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.core.io.DefaultResourceLoader.resourceCaches:Ljava/util/Map;
aload 1
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/springframework/core/io/DefaultResourceLoader.lambda$0(Ljava/lang/Class;)Ljava/util/Map; (6)
(Ljava/lang/Class;)Ljava/util/Map;
invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
checkcast java.util.Map
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/core/io/DefaultResourceLoader;
0 1 1 valueType Ljava/lang/Class<TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Ljava/util/Map<Lorg/springframework/core/io/Resource;TT;>;
MethodParameters:
Name Flags
valueType
public void clearResourceCaches();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.core.io.DefaultResourceLoader.resourceCaches:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/core/io/DefaultResourceLoader;
public org.springframework.core.io.Resource getResource(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/springframework/core/io/Resource;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
ldc "Location must not be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
1: aload 0
invokevirtual org.springframework.core.io.DefaultResourceLoader.getProtocolResolvers:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 6
StackMap locals: org.springframework.core.io.DefaultResourceLoader java.lang.String top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.core.io.ProtocolResolver
astore 2
start local 2 3: aload 2
aload 1
aload 0
invokeinterface org.springframework.core.io.ProtocolResolver.resolve:(Ljava/lang/String;Lorg/springframework/core/io/ResourceLoader;)Lorg/springframework/core/io/Resource;
astore 4
start local 4 4: aload 4
ifnull 6
5: aload 4
areturn
end local 4 end local 2 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
7: aload 1
ldc "/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 9
8: aload 0
aload 1
invokevirtual org.springframework.core.io.DefaultResourceLoader.getResourceByPath:(Ljava/lang/String;)Lorg/springframework/core/io/Resource;
areturn
9: StackMap locals: org.springframework.core.io.DefaultResourceLoader java.lang.String
StackMap stack:
aload 1
ldc "classpath:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 11
10: new org.springframework.core.io.ClassPathResource
dup
aload 1
ldc "classpath:"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
aload 0
invokevirtual org.springframework.core.io.DefaultResourceLoader.getClassLoader:()Ljava/lang/ClassLoader;
invokespecial org.springframework.core.io.ClassPathResource.<init>:(Ljava/lang/String;Ljava/lang/ClassLoader;)V
areturn
11: StackMap locals:
StackMap stack:
new java.net.URL
dup
aload 1
invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
astore 2
start local 2 12: aload 2
invokestatic org.springframework.util.ResourceUtils.isFileURL:(Ljava/net/URL;)Z
ifeq 13
new org.springframework.core.io.FileUrlResource
dup
aload 2
invokespecial org.springframework.core.io.FileUrlResource.<init>:(Ljava/net/URL;)V
goto 14
StackMap locals: java.net.URL
StackMap stack:
13: new org.springframework.core.io.UrlResource
dup
aload 2
invokespecial org.springframework.core.io.UrlResource.<init>:(Ljava/net/URL;)V
StackMap locals:
StackMap stack: org.springframework.core.io.UrlResource
14: areturn
end local 2 15: StackMap locals: org.springframework.core.io.DefaultResourceLoader java.lang.String
StackMap stack: java.net.MalformedURLException
pop
16: aload 0
aload 1
invokevirtual org.springframework.core.io.DefaultResourceLoader.getResourceByPath:(Ljava/lang/String;)Lorg/springframework/core/io/Resource;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/springframework/core/io/DefaultResourceLoader;
0 17 1 location Ljava/lang/String;
3 6 2 protocolResolver Lorg/springframework/core/io/ProtocolResolver;
4 6 4 resource Lorg/springframework/core/io/Resource;
12 15 2 url Ljava/net/URL;
Exception table:
from to target type
11 14 15 Class java.net.MalformedURLException
MethodParameters:
Name Flags
location
protected org.springframework.core.io.Resource getResourceByPath(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/springframework/core/io/Resource;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new org.springframework.core.io.DefaultResourceLoader$ClassPathContextResource
dup
aload 1
aload 0
invokevirtual org.springframework.core.io.DefaultResourceLoader.getClassLoader:()Ljava/lang/ClassLoader;
invokespecial org.springframework.core.io.DefaultResourceLoader$ClassPathContextResource.<init>:(Ljava/lang/String;Ljava/lang/ClassLoader;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/core/io/DefaultResourceLoader;
0 1 1 path Ljava/lang/String;
MethodParameters:
Name Flags
path
private static java.util.Map lambda$0(java.lang.Class);
descriptor: (Ljava/lang/Class;)Ljava/util/Map;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 key Ljava/lang/Class<*>;
}
SourceFile: "DefaultResourceLoader.java"
NestMembers:
org.springframework.core.io.DefaultResourceLoader$ClassPathContextResource
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
protected ClassPathContextResource = org.springframework.core.io.DefaultResourceLoader$ClassPathContextResource of org.springframework.core.io.DefaultResourceLoader