µ±Ç°Î»ÖãºÊ×Ò³ > springMVCÏê½âÒÔ¼°×¢½â˵Ã÷
¶Ô³ÉÔ±±äÁ¿½øÐÐ×¢ÊÍ£º
Çåµ¥ 14. ¶Ô³ÉÔ±±äÁ¿Ê¹Óà @Qualifier ×¢ÊÍ public class Boss { @Autowired private Car car;
@Autowired @Qualifier(\ private Office office; ¡ }
¶Ô¹¹Ô캯ÊýÈë²Î½øÐÐ×¢ÊÍ£º
Çåµ¥ 15. ¶Ô¹¹Ô캯Êý±äÁ¿Ê¹Óà @Qualifier ×¢ÊÍ public class Boss { private Car car; private Office office; @Autowired
public Boss(Car car , @Qualifier(\ this.car = car; this.office = office ; } }
@Qualifier Ö»ÄÜºÍ @Autowired ½áºÏʹÓã¬ÊÇ¶Ô @Autowired ÓÐÒæµÄ²¹³ä¡£Ò»°ãÀ´½²£¬@Qualifier ¶Ô·½·¨Ç©ÃûÖÐÈë²Î½øÐÐ×¢ÊͻήµÍ´úÂëµÄ¿É¶ÁÐÔ£¬¶ø¶Ô³ÉÔ±±äÁ¿×¢ÊÍÔòÏà¶ÔºÃһЩ¡£
ʹÓà JSR-250 µÄ×¢ÊÍ
Spring ²»µ«Ö§³Ö×Ô¼º¶¨ÒåµÄ @Autowired µÄ×¢ÊÍ£¬»¹Ö§³Ö¼¸¸öÓÉ JSR-250 ¹æ·¶¶¨ÒåµÄ×¢ÊÍ£¬ËüÃÇ·Ö±ðÊÇ @Resource¡¢@PostConstruct ÒÔ¼° @PreDestroy¡£
@Resource
@Resource µÄ×÷ÓÃÏ൱ÓÚ @Autowired£¬Ö»²»¹ý @Autowired °´ byType ×Ô¶¯×¢Èë£¬Ãæ @Resource ĬÈϰ´ byName ×Ô¶¯×¢Èë°ÕÁË¡£@Resource ÓÐÁ½¸öÊôÐÔÊDZȽÏÖØÒªµÄ£¬·Ö±ðÊÇ name ºÍ type£¬Spring ½« @Resource ×¢Ê굀 name ÊôÐÔ½âÎöΪ Bean µÄÃû×Ö£¬¶ø type ÊôÐÔÔò½âÎöΪ Bean µÄÀàÐÍ¡£ËùÒÔÈç¹ûʹÓà name ÊôÐÔ£¬ÔòʹÓà byName µÄ×Ô¶¯×¢Èë²ßÂÔ£¬¶øÊ¹Óà type ÊôÐÔʱÔòʹÓà byType ×Ô¶¯×¢Èë²ßÂÔ¡£Èç¹û¼È²»Ö¸¶¨ name Ò²²»Ö¸¶¨ type ÊôÐÔ£¬Õâʱ½«Í¨¹ý·´Éä»úÖÆÊ¹Óà byName ×Ô¶¯×¢Èë²ßÂÔ¡£
Resource ×¢ÊÍÀàλÓÚ Spring ·¢²¼°üµÄ lib/j2ee/common-annotations.jar Àà°üÖУ¬Òò´ËÔÚʹÓÃ֮ǰ±ØÐ뽫Æä¼ÓÈëµ½ÏîÄ¿µÄÀà¿âÖС£À´¿´Ò»¸öʹÓÃ@Resource µÄÀý×Ó£º
Çåµ¥ 16. ʹÓà @Resource ×¢Ê굀 Boss.java
package com.baobaotao;
import javax.annotation.Resource; public class Boss {
// ×Ô¶¯×¢ÈëÀàÐÍΪ Car µÄ Bean @Resource private Car car;
// ×Ô¶¯×¢Èë bean Ãû³ÆÎª office µÄ Bean @Resource(name = \ private Office office; } Ò»°ãÇé¿öÏ£¬ÎÒÃÇÎÞÐèʹÓÃÀàËÆÓÚ @Resource(type=Car.class) µÄ×¢ÊÍ·½Ê½£¬ÒòΪ Bean µÄÀàÐÍÐÅÏ¢¿ÉÒÔͨ¹ý Java ·´Éä´Ó´úÂëÖлñÈ¡¡£
ÒªÈà JSR-250 µÄ×¢ÊÍÉúЧ£¬³ýÁËÔÚ Bean ÀàÖбê×¢ÕâЩעÊÍÍ⣬»¹ÐèÒªÔÚ Spring ÈÝÆ÷ÖÐ×¢²áÒ»¸ö¸ºÔð´¦ÀíÕâЩעÊ굀 BeanPostProcessor£º @PostConstruct ºÍ @PreDestroy Spring ÈÝÆ÷ÖÐµÄ Bean ÊÇÓÐÉúÃüÖÜÆÚµÄ£¬Spring ÔÊÐíÔÚ Bean ÔÚ³õʼ»¯Íê³ÉºóÒÔ¼° Bean Ïú»ÙǰִÐÐÌØ¶¨µÄ²Ù×÷£¬Äú¼È¿ÉÒÔͨ¹ýʵÏÖ InitializingBean/DisposableBean ½Ó¿ÚÀ´¶¨ÖƳõʼ»¯Ö®ºó / Ïú»Ù֮ǰµÄ²Ù×÷·½·¨£¬Ò²¿ÉÒÔͨ¹ý JSR-250 Ϊ³õʼ»¯Ö®ºó/Ïú»Ù֮ǰ·½·¨µÄÖ¸¶¨¶¨ÒåÁËÁ½¸ö×¢ÊÍÀ࣬·Ö±ðÊÇ @PostConstruct ºÍ @PreDestroy£¬ÕâÁ½¸ö×¢ÊÍÖ»ÄÜÓ¦ÓÃÓÚ·½·¨ÉÏ¡£±ê×¢ÁË @PostConstruct ×¢Ê͵ķ½·¨½«ÔÚÀàʵÀý»¯ºóµ÷Ó㬶ø±ê×¢ÁË @PreDestroy µÄ·½·¨½«ÔÚÀàÏú»Ù֮ǰµ÷ÓᣠÇåµ¥ 17. ʹÓà @PostConstruct ºÍ @PreDestroy ×¢Ê굀 Boss.java package com.baobaotao; import javax.annotation.Resource; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; public class Boss { @Resource private Car car; @Resource(name = \ private Office office; @PostConstruct public void postConstruct1(){ System.out.println(\ } @PreDestroy public void preDestroy1(){ System.out.println(\ } ¡ } ÄúÖ»ÐèÒªÔÚ·½·¨Ç°±ê×¢ @PostConstruct »ò @PreDestroy£¬ÕâЩ·½·¨¾Í»áÔÚ Bean ³õʼ»¯ºó»òÏú»Ù֮ǰ±» Spring ÈÝÆ÷Ö´ÐÐÁË¡£ ÎÒÃÇÖªµÀ£¬²»¹ÜÊÇͨ¹ýʵÏÖ InitializingBean/DisposableBean ½Ó¿Ú£¬»¹ÊÇͨ¹ý
¹²·ÖÏí92ƪÏà¹ØÎĵµ