java - spring boot @Autowired
問題描述
如何在一個(gè)沒有注解的類中加入一個(gè)已經(jīng)注解的@Autowired?
classA 沒有添加xml也沒有注解到spring中
classB @Component 已經(jīng)加入注解
如何在classA 中用@Autowired 注解classB?
如果classA也 @Component了,classB可用,但是不注解就會(huì)報(bào)錯(cuò)。
問題解答
回答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ō)的可能有問題,僅僅是個(gè)人見解
回答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. mysql優(yōu)化 - mysql count(id)查詢速度如何優(yōu)化?2. mysql主從 - 請(qǐng)教下mysql 主動(dòng)-被動(dòng)模式的雙主配置 和 主從配置在應(yīng)用上有什么區(qū)別?3. angular.js - angularjs 用ng-reapt渲染的dom 怎么獲取上面的屬性4. 主從備份 - 跪求mysql 高可用主從方案5. css3 - [CSS] 動(dòng)畫效果 3D翻轉(zhuǎn)bug6. node.js - node_moduls太多了7. angular.js - Angular路由和express路由的組合使用問題8. python如何不改動(dòng)文件的情況下修改文件的 修改日期9. python - django 里自定義的 login 方法,如何使用 login_required()10. angular.js - 不適用其他構(gòu)建工具,怎么搭建angular1項(xiàng)目
![css3 - [CSS] 動(dòng)畫效果 3D翻轉(zhuǎn)bug](http://www.aoyou183.cn/attached/image/news/202304/110831f073.png)