å ³äºç±»ææéæåéèå¼åçé®é¢ææ¥
é®é¢æè¿°
é²è¯å°åï¼å ä¸ä»£ç ã
public function main() {
Util util = new Util();
util.print();
}
public class Util {
public static provider = new Provider();
public Util() {
# do sth
}
public void print() {
# print sth
}
}
public function Provider() {
public Provider() {
loadData();
}
private void loadData() {
# load data
}
}
大æ¦ä½¿ç¨é»è¾æ¯è¿æ ·ï¼å¨è°ç¨å ¥å£ï¼å®ä¾åUtil对象并è°ç¨ä»çprintæ¹æ³ã è¿ä¸ªæ¶åï¼è·åå°äºä¸ä¸ªruntime exceptionï¼class Util not definedã
ç±»ææå°±æå¨é£éï¼ä¸ºä»ä¹ä¼æ¥å¼å¸¸å¢ï¼ 大家妿äºè§£äºç±»éææååéçåå§åè¿ç¨ï¼å°±ä¸ç¼çåºæ¥é®é¢ã
é¦å ï¼provideræ¯å¨Util类被å è½½çæ¶ååå§åçï¼è¦æ©äºUtilçå®ä¾åã
å ¶æ¬¡ï¼å¦æprovideråå§å失败ï¼ä¼å¯¼è´Utilç±»å 载失败ï¼å¨å®ä¾åçæ¶å就伿å¼å¸¸ã
é®é¢çç´æ¥åå æ¯å¨Providerçæé è¿ç¨ï¼ç±äºæé 彿°æ§è¡äºloadDataçå¨ä½ï¼è¿éå°±åå¨ä¸äºä¸ç¡®å®å ç´ ï¼ä¼å¯¼è´é误çåçï¼ä»èå½±åå°äºUtilçå è½½ã
æ¹è¿æè·¯
ç²¾ç®ç±»åå§åçè¿ç¨ï¼ä¼å ä¿è¯å¯¹è±¡è½å®ä¾åæåï¼ä»èåæ§è¡æ°æ®å è½½çé»è¾ãå¯ä»¥å©ç¨SpringçPostConstruct注解æ¥å®ç°å®ä¾ååæ°æ®å è½½å¨ä½çå离ã
public function main() {
Util util = new Util();
util.print();
}
public class Util {
@Resource
public Provider provider;
public Util() {
# do sth
}
public void print() {
# print sth
}
}
@Component
public function Provider() {
@PostConstruct
private void loadData() {
# load data
}
}
è¿æ ·ï¼å°±å°é®é¢æ´é²å¨è¿è¡æ¶ï¼å°±ä¸ä¼å°é®é¢éèçé£ä¹æ·±äºã
æ»ç»ä¸ä¸ï¼
第ä¸ï¼å°½éä¸è¦å¨æé 彿°éæ§è¡å¤ªå¤çä¸å¡é»è¾ï¼ä»¥åæ°æ®åå§åçå¨ä½ã
第äºï¼å¯¹è±¡ç¤ºä¾è°¨æ ææéææ°æ®ã
