在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ spring注解@Autowired與@Resource

spring注解@Autowired與@Resource

@Autowired
private StringRedisTemplate stringRedisTemplate;

@Resource(name="stringRedisTemplate")
private ValueOperations<String,String> valOpsStr;

@Autowired
private RedisTemplate<Object, Object> redisTemplate;

@Resource(name="redisTemplate")
private ValueOperations<Object,Object> valOps;

在看書時(shí)發(fā)現(xiàn)了這樣的一段代碼,就是想問的是,【@Autowired自動(dòng)注解StringRedisTemplate,但是為什么@Resource注解是利用name屬性指定名稱時(shí),可以指定stringRedisTemplate】這是什么原理呢,這樣的話不就會(huì)導(dǎo)致創(chuàng)建相同名稱的bean了嗎?

回答
編輯回答
凹凸曼

@Autowired 如字面意思是自動(dòng)注入,而@Resource,需要注入一個(gè)命名的bean,它們的查找機(jī)制不同,@Autowired需要掃描項(xiàng)目,查找相關(guān)Bean自動(dòng)注入,是自動(dòng)的,無須操心怎么注入。而@Resource需要手動(dòng)指定一個(gè)Bean,如果是spring boot項(xiàng)目,需要配置一個(gè)配置文件,用@Bean('xxx')返回命名Bean,如果不是spring boot,那么需要在xml配置。一個(gè)自動(dòng)一個(gè)手動(dòng),不會(huì)產(chǎn)生沖突。

2017年11月19日 11:20