java - spring boot @Autowired
問(wèn)題描述
如何在一個(gè)沒(méi)有注解的類中加入一個(gè)已經(jīng)注解的@Autowired?
classA 沒(méi)有添加xml也沒(méi)有注解到spring中
classB @Component 已經(jīng)加入注解
如何在classA 中用@Autowired 注解classB?
如果classA也 @Component了,classB可用,但是不注解就會(huì)報(bào)錯(cuò)。
問(wèn)題解答
回答1:做個(gè)SpringContextHolder
回答2:@Component 是spring的一個(gè)bean類型的注解,添加有這個(gè)注解之后才會(huì)將該bean由spring管理,如果不加這個(gè)注解的話,spring就無(wú)法識(shí)別這個(gè)類,所以就會(huì)報(bào)錯(cuò),如果加上這個(gè)注解之后spring就知道這兩個(gè)類是spring中的兩個(gè)bean,可以相互進(jìn)行自動(dòng)注入。 對(duì)spring的理解還不夠深刻,說(shuō)的可能有問(wèn)題,僅僅是個(gè)人見(jiàn)解
回答3:從 applicationContext 中用 service 名獲取。
回答4:@Autowired是表示注入, 要使用注入, 你的類必須交給spring管理, 意思就是你的class B必須是是一個(gè)spring的bean, class A也必須是一個(gè)spring的bean, 你報(bào)錯(cuò)就是因?yàn)槟愕腸lass A不是一個(gè)spring的bean, spring無(wú)法幫你注入class B.如果要在不是spring bean的class A中使用class B只能手動(dòng)把class Bset進(jìn)去.
相關(guān)文章:
1. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””2. 數(shù)組按鍵值封裝!3. docker不顯示端口映射呢?4. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問(wèn)題5. java - 阿里的開(kāi)發(fā)手冊(cè)中為什么禁用map來(lái)作為查詢的接受類?6. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.7. python - flask _sqlalchemy 能否用中文作為索引條件8. 跟蹤器怎么開(kāi)啟無(wú)反應(yīng)9. macos - mac下docker如何設(shè)置代理10. android - 百度地圖加載完成監(jiān)聽(tīng)
