IT-KIMI_SHI\SINOIT.KIMI
2018-06-12 f45b113c68408a0a58a78ffb2716ba7e6b90ccde
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
Êþº¾2î0me/kafeitu/modules/web/servlet/PropertiesServletjavax/servlet/http/HttpServletserialVersionUIDJ ConstantValueloggerLorg/slf4j/Logger;<init>()VCode
 
java/lang/Object getClass()Ljava/lang/Class;
org/slf4j/LoggerFactory     getLogger%(Ljava/lang/Class;)Lorg/slf4j/Logger;    
LineNumberTableLocalVariableTablethis2Lme/kafeitu/modules/web/servlet/PropertiesServlet;init (Ljavax/servlet/ServletConfig;)V
Exceptions'javax/servlet/ServletException)profile +-,javax/servlet/ServletConfig ./getInitParameter&(Ljava/lang/String;)Ljava/lang/String;    132.me/kafeitu/demo/activiti/util/PropertyFileUtil 45 INITIALIZEDZ74---- å·²åˆå§‹åŒ–,忽略本次初始化操作 ---- 9;:org/slf4j/Logger <=info(Ljava/lang/String;)V +? @AgetServletContext ()Ljavax/servlet/ServletContext;
C DEsetParameterToServerContext!(Ljavax/servlet/ServletContext;)V
GIH$org/apache/commons/lang3/StringUtils JK
isNotBlank(Ljava/lang/CharSequence;)ZMjava/lang/StringBuilderO启用特定Profile=
LQ =
LS TUappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;
LW XYtoString()Ljava/lang/String;
1[ #=
1] # _启用默认Profilea?++++ åˆå§‹åŒ–[classpath下面的属性配置文件]完成 ++++c*初始化classpath下的属性文件失败 9e fgerror*(Ljava/lang/String;Ljava/lang/Throwable;)Vijava/io/IOExceptionconfigLjavax/servlet/ServletConfig;Ljava/lang/String;eLjava/io/IOException; StackMapTableqjava/lang/Stringsprop
1u vwgetKeyValueMap()Ljava/util/Map; y{zjavax/servlet/ServletContext |} setAttribute'(Ljava/lang/String;Ljava/lang/Object;)VservletContextLjavax/servlet/ServletContext;doGetR(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V
ƒ „doPostreq'Ljavax/servlet/http/HttpServletRequest;resp(Ljavax/servlet/http/HttpServletResponse;Šaction ŒŽ%javax/servlet/http/HttpServletRequest / getParameter
G‘ ’/ defaultString”text/plain;charset=UTF-8 –˜—&javax/servlet/http/HttpServletResponse ™=setContentType›reload
p žŸequals(Ljava/lang/Object;)Z
1¡ ¢Y
getProfile
G¤ ’¥8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;§#重载配置,使用特定Profile= Œ© ª«
getSession"()Ljavax/servlet/http/HttpSession; ­?®javax/servlet/http/HttpSession°;++++ å·²å®Œæˆå±žæ€§é…ç½®æ–‡ä»¶é‡è½½ä»»åŠ¡ ++++,{IP={}} Œ² ³Y getRemoteAddr 9µ <} –· ¸¹    getWriter()Ljava/io/PrintWriter;»'<b>属性文件重载成功!</b><br/>
½¿¾java/io/PrintWriter À=print
 ÃÄwriteProperties+(Ljavax/servlet/http/HttpServletResponse;)VÆ重载属性文件失败ÈgetpropÊkey
1Ì Í/get
ÏÑÐ$org/apache/commons/lang3/ObjectUtils XÒ&(Ljava/lang/Object;)Ljava/lang/String;Ôlist-allÖ
list-split
Ø ÙÄwritePropertiesBySplitÛfiles
Ý ÞÄwriteActiveFilesàsaveâ parameterNameäparameterValue
æ çè saveParameterO(Ljava/lang/String;Ljava/lang/String;Ljavax/servlet/http/HttpServletResponse;)Vêdeleteì parameterKey
î ïðdeleteParameter=(Ljava/lang/String;Ljavax/servlet/http/HttpServletResponse;)V
ò ówriteNav
õ÷öjava/lang/Thread øù currentThread()Ljava/lang/Thread;
õû üýgetContextClassLoader()Ljava/lang/ClassLoader;ÿapplication-files.properties
java/lang/ClassLoader getResourceAsStream)(Ljava/lang/String;)Ljava/io/InputStream;java/util/Properties
 
 
  load(Ljava/io/InputStream;)VC
 / getProperty:
p split'(Ljava/lang/String;)[Ljava/lang/String; java/io/File
Q
  getParentFile()Ljava/io/File;
  !"exists()Z
$ %"mkdirs
' (" createNewFile*java/io/FileInputStream
), -(Ljava/io/File;)V/java/io/FileOutputStream
.Q
2 34 setProperty8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;6Update:'8' value:
: ;<store+(Ljava/io/OutputStream;Ljava/lang/String;)V
>@?java/io/OutputStream A flush
>C D close
FCGjava/io/InputStreamIsuccessK新增/修改属性:Merror:
OQPjava/lang/Exception RY
getMessage inputStreamLjava/io/InputStream; cInputStreamoutLjava/io/OutputStream;loaderLjava/lang/ClassLoader;propsLjava/util/Properties;    cFilePathfileLjava/io/File;cPropsLjava/lang/Exception;bjava/lang/Throwable
d efremove&(Ljava/lang/Object;)Ljava/lang/Object;hdelete:'j"删除本地配置文件的属性:
1l mngetKeys()Ljava/util/Set;
L qsr java/util/Set tuiterator()Ljava/util/Iterator; wyxjava/util/Iterator z{next()Ljava/lang/Object;
p} ~ÒvalueOf€2<span style='color:red;font-weight:bold;'>=</span>‚<br/> w„ …"hasNext‡    text/html‰ <html><body>‹</body></html>keysLjava/util/Set;sbLjava/lang/StringBuilder;LocalVariableTypeTable#Ljava/util/Set<Ljava/lang/String;>;“.me/kafeitu/demo/activiti/util/LinkedProperties
’
– —nkeySet™读取文件:key={}, value={}
W 9œ ždebug9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V *<span style='color:red;font-weight:bold;'>¢ </span><br/>¤file:
p¦ §¨
startsWith(Ljava/lang/String;)Z
ª Íf
L¬ T­-(Ljava/lang/Object;)Ljava/lang/StringBuilder;
fileKeySetobjLjava/lang/Object; cFileKeySetcObj#Ljava/util/Set<Ljava/lang/Object;>;
1µ ¶·getActivePropertyFiles()Ljava/util/Properties;
¹ Œº()Ljava/util/Enumeration; ¼¾½java/util/Enumeration ¿{ nextElement ¼Á Â"hasMoreElementsÄ9<html><body><h4>依次读取以下配置文件(Profile=Æ ):</h4>activePropertyFilesLjava/util/Enumeration;+Ljava/util/Enumeration<Ljava/lang/Object;>; ŒË ÌYgetContextPathÎ <li><a href='Ð</servlet/properties?action=%1s' target='_blank'>%2s</a></li>Ò<ul>
½Ô Õ=println×属性文件列表
pÙ ÚÛformat9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;Ý属性列表(全部)ß属性列表(分文件)á 重新加载ãgetprop&key=sampleå 获取属性ç</ul> contextPathpwLjava/io/PrintWriter; elementformat
SourceFilePropertiesServlet.java!
 B*·**¶¸µ±"#  !"#$%&1€+(¹*M²0™*´6¹8*+¹>·B±,¸F™#*´»LYN·P,¶R¶V¹8,¸Z§¸\*´^¹8*+¹>·B*´`¹8§M*´b,¹d±$rh%orh>*    +,-$.%0,1E2L4O5Z7d8r9s:< *€!"€jk    i)ls mnoü%p& ÿ+h DED +r¸t¹x±
D E  !" ~€%&hI*+,¶‚±
IJ  !"…†‡ˆ„%&h€L+‰¹‹¸N,“¹•š-¶œ™+(¹‹¸ ¸£:¸F™*´»LY¦·P¶R¶V¹8¸Z*+¹¨¹¬·B*´¯+¹±¹´,¹¶º¶¼*,¶Á§Ç:*´Å¹d§µÇ-¶œ™$+ɹ‹¸:,¹¶¸Ë¸Î¶¼§‹Ó-¶œ™ *,¶Á§zÕ-¶œ™ *,¶×§iÚ-¶œ™ *,¶Ü§Xß-¶œ™)+ṋ¸:+㹋¸:*,¶å§)é-¶œ™+빋¸:*,¶í§    *+,¶ñ±„‡h~N OPR-S5TOVTXcYtZ[‡\‰]™_¢`¯aÃbÌcÔdÝeåfîgöhÿi jk%l.m;nEpKr f
L!"L…†L‡ˆ @Šl-Z)l‰ mn¯Êl âl äl;
ìlo* ýOppÿ7Œ–ph).çè%&h† x:::¸ô¶ú:þ¶:»Y·:¶     ¶¶2:    »Y    ·:
 
¶Æ
¶¶š 
¶¶#W
¶š    
¶&W»Y·: »)Y
·+: ¶    ».Y    ·0: +,¶1W »LY5·P+¶R7¶R,¶R¶V¶9¶=¶B¶E¶E¸\-¹¶H¶¼§u:*´J¹d-¹¶»LYL·P¶N¶R¶V¶¼Æ¶EƶEÆL¶B§D: ƶEƶEƶB ¿Æ¶EƶEƶB±    äçO    6Æ1~€    ‚ƒ„#…*†<ˆG‰ZŠcŒkqz…‘Œ’—“Ÿ”Á•Ɩ˗Иՙؚç›éœ÷Ÿ ¢$£)¥.¦6ž8Ÿ= B¢G£L¥Q¦V¨YŸ^ c¢h£m¥r¦w© „ x!"xâlxälx‡ˆuSTrUT    oVWÖXY#ÄZ[<«\l    G ]^
zm_[ é,m`o–ÿc pp–FF>p ÿupp–FF>O7        Baÿ pp–FF>a        ÿpp–FF>            ïð%&h[ cN::¸ô¶ú:þ¶N»Y·:-¶     ¶¶2:»Y·:        ¶Æ    ¶¶š     ¶¶#W    ¶š        ¶&W»Y·:
»)Y    ·+:
¶    
+¶cW».Y·0:
»LYg·P+¶R¶V¶9¶=¶B¶E-¶E¸\,¹¶H¶¼§q:*´i¹d,¹¶»LYL·P¶N¶R¶V¶¼-Æ-¶EƶEÆH¶B§@: -Æ-¶EƶEƶB ¿-Æ-¶EƶEƶB±ÕØO%Æ1´µ¶¸¹º!»'¼9¾D¿WÀ`ÂhÃnÅwƂljȐɛʳ˸̽ÍÂÎÆÏÉÐØÑÚÒèÓÕ
ÖØÙÛÜ%Ô'Õ+Ö/Ø4Ù9Û>ÜCÞFÕJÖNØSÙXÛ]Übß z c!"cìlc‡ˆaST^UT[VWÈXY!·Z[9Ÿ\lD”]^    wa_[
Ú,m`oŠÿ`
p–FF>p ÿip–FF>O5        Baÿ     p–FF>a        ÿp–FF>        ÃÄ%h"‚¸kM»LY·oN,¹p:§7¹vÀp:-»LY¸|·P¶R¸Ë¶R¶R¶V¶RW¹ƒšÿÅ+†¹•+¹¶»LYˆ·P-¶V¶RжR¶V¶¼±"èé ê#ëKêUí^îï 4‚!"‚‡ˆ~Œ vŽ#(Êl ~Œ‘oÿ–qLw3ÙÄ%&hšMN»LY·o:¸ô¶ú:þ¶M»’Y·”:,¶    ¶•:¹p:    §     ¹v:*´˜¶š¶¹›»LYŸ·P¶š¶¶R¡¶R¶V¶RW¶š¶£¶¥™L»Y¶š¶¶2·:
 
¶Æ
¶¶š§•
¶š§Š»)Y
·+N§¶š¶¶N»’Y·”:
 
-¶    
¶•:  ¹p: §= ¹v: »LY ¶š¸|·P¶R
 ¶š¶©¶«¶R¶V¶RW ¹ƒšÿ¿-¶E    ¹ƒšþÜ,¶E+†¹•+¹¶»LYˆ·P¶V¶RжR¶V¶¼§Y:*´i¹d+¹¶»LYL·P¶N¶R¶V¶¼,Æ,¶E-Æ/-¶E§(:,Æ,¶E-Æ-¶E¿,Æ,¶E-Æ-¶E± —šO ÈÛÂ0ùúû ýþÿ&,3H`†™´ÇÊ
Ò Õ âòûNX\fjsšœªÈ!Ì"Ð$Ô%Û Ý!á"å$é%í'ð!ô"ø$ü%( Ž!"‡ˆÿSTýUT ôŽ…XY&tZ[3g®H¯°´.]^
ûa_[
T± 1²° œ,m`3g®³T±³ oÿÿ?
–FFLqwÿŠ –FFLqw
ú ÿ!–FFLqwqw9ÿ
–FFLqwÿ=–FFLO5Baÿ    –FFLaÿ–FFLÞÄ%h4¸´M,¶¸N»LY·o:§8-¹»¶š:»LY¸|·P¶R,¶©¶«¶R¶V¶RW-¹ÀšÿÅ+†¹•+¹¶»LY÷P¸ ¶RŶR¶V¶RжR¶V¶¼±*
12    345 6J4S8\9Œ: >!"‡ˆ‰Ç[    „ŒÈ{Ž *Êl     „ŒÉoþ¼L4ó%hHÀ,†¹•+¹ÊN,¹¶:»LYÍ·P-¶R϶R¶V:ѶÓ½YÚSYÖS¸ضÓ½YÓSYÜS¸ضÓ½YÕSYÞS¸ضÓ½YšSYàS¸ضÓ½YâSYäS¸ضÓæ¶Ó±2 =    >?@1A9BRCkD„EF·G¿H >À!"À…†À‡ˆ°èl¨éê1ëlìí