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. thinkphp5.1學(xué)習(xí)時(shí)遇到session問(wèn)題2. docker網(wǎng)絡(luò)端口映射,沒(méi)有方便點(diǎn)的操作方法么?3. docker容器呢SSH為什么連不通呢?4. angular.js - angular內(nèi)容過(guò)長(zhǎng)展開(kāi)收起效果5. nignx - docker內(nèi)nginx 80端口被占用6. docker綁定了nginx端口 外部訪問(wèn)不到7. docker images顯示的鏡像過(guò)多,狗眼被亮瞎了,怎么辦?8. javascript - iframe 為什么加載網(wǎng)頁(yè)的時(shí)候滾動(dòng)條這樣顯示?9. 前端 - ng-view不能加載進(jìn)模板10. php - 第三方支付平臺(tái)在很短時(shí)間內(nèi)多次異步通知,訂單多次確認(rèn)收款
