使用@Autowired注解引入server服務(wù)層方法時(shí)報(bào)錯(cuò)的解決
@Autowired注解引入server服務(wù)層方法時(shí)報(bào)錯(cuò)
contentTypeService in com.example.demo001.controller.ContentTypeController required a bean of type 'com.example.demo001.service.ContentTypeService' that could not be found
網(wǎng)上搜的方法:還行
方式一:@Autowried(required = false)設(shè)置required屬性值為false,錯(cuò)誤消失
方式二:用@Resource注解替換@Autowried注解,錯(cuò)誤消失
JavaBean是特殊的Java類、使用Java語言書寫,并且遵守JavaBean API規(guī)范。JavaBean與其他Java類相比而言獨(dú)一無二的特征是:
1、提供一個(gè)默認(rèn)的無參構(gòu)造函數(shù)。
2、需要序列化并且實(shí)現(xiàn)了Serializable接口,
3、可能有一系列可讀性屬性,
4、可能有一系列的getter或setter方法。
JavaBean屬性
一個(gè)JavaBean對(duì)象的屬性應(yīng)該是可訪問的,這個(gè)屬性可以是任意合法的Java數(shù)據(jù)類型,包括自定義Java類。
一個(gè)JavaBean對(duì)象的屬性可以是可讀寫,或只讀,或只寫。JavaBean對(duì)象的屬性通過JavaBean實(shí)現(xiàn)類中提供的兩個(gè)方法來訪問
方法
getPropertyName()
:舉例來說,如果屬性的名稱為myName,那么這個(gè)方法的名字就要寫成getMyName()來讀取這個(gè)屬性。這個(gè)方法也被稱為訪問器。setPropertyName()
:舉例來說,如果屬性的名稱為myName,那么這個(gè)方法的名字就要寫成setMyName()來寫入這個(gè)屬性。這個(gè)方法也被稱為寫入器。
一個(gè)只讀的屬性只提供getPropertyName()方法,一個(gè)只寫的屬性只提供setPropertyName()方法。
@Autowried的作用是什么?
@Autowried是一個(gè)注釋,它可以對(duì)類成員變量、方法及構(gòu)造函數(shù)進(jìn)行標(biāo)注、讓spring完成bean自動(dòng)裝配的工作。
@Autowried默認(rèn)是按照類去匹配,配合@Qualifier指定按照名稱去裝配bean
錯(cuò)誤真正原因是在serveImpl中并未導(dǎo)入
問題得到解決,附上網(wǎng)上解決問題的網(wǎng)址,以上哪兩種方法也能用暫不清楚是怎么回事
只是導(dǎo)讀
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="..." class="..."> <!-- collaborators and configuration for this bean go here --> </bean> <bean id="..." class="..."> <!-- collaborators and configuration for this bean go here --> </bean> <!-- more bean definitions go here --> </beans>
上述是原始的xml文件,如果此時(shí)的 <bean id=" " class=" "></bean>就相當(dāng)于注釋的 @Component而 @Service是@Component衍生,而autowire在xml是bean的屬性,所以只有@Component存在@Autowire才有效
<!-- byName會(huì)自動(dòng)再容器上下文中查找,何自己對(duì)象set方法后面的值是對(duì)立的beanid --> <!-- byType必須保證類型全局唯一會(huì)自動(dòng)再容器上下文中查找,和自己對(duì)象set方法后面的值是對(duì)立的bean --> <bean id="people" class="com.chen.pojo.People" autowire="byType"> <property name="name" value="天明"></property> <property name="dog" ref="dog"></property> <property name="cat" ref="cat"></property> </bean>
關(guān)于@Autowired 注解時(shí)發(fā)生的錯(cuò)誤
1. Field injetion is not recommended
2. spring boot自動(dòng)注入出現(xiàn)Consider defining a bean of type ‘xxx' in your configuration問題
1.解決
原來代碼
@Autowired private final AccountDao accountDao;
報(bào)錯(cuò):Field injetion is not recommended
改為
//final 非必要 private final AccountDao accountDao; @Autowired public AccountController(AccountDao accountDao) { this.accountDao = accountDao; }
錯(cuò)誤消失
注:還是警告的話,直接將@Autowired注解改為@Resource注解可以消除警告(不影響注入)
2.解決
原來將account 也就是entity 和dao 放在了controller的上層目錄里
報(bào)錯(cuò):Consider defining a bean of type ‘xxx' in your configuration
把entity和dao放在controler同級(jí)目錄或者我放在了同級(jí)目錄所在account包里
如下圖所示
重新啟動(dòng),錯(cuò)誤消失~
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家.
相關(guān)文章
Spring MVC的國(guó)際化實(shí)現(xiàn)代碼
本篇文章主要介紹了Spring MVC的國(guó)際化實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08mybatis定義sql語句標(biāo)簽之delete標(biāo)簽解析
這篇文章主要介紹了mybatis定義sql語句標(biāo)簽之delete標(biāo)簽解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03Mybatis中攔截器的簡(jiǎn)單實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于Mybatis中攔截器的簡(jiǎn)單實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Mybatis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Java中Final關(guān)鍵字的使用技巧及其性能優(yōu)勢(shì)詳解
這篇文章主要介紹了Java中Final關(guān)鍵字的使用技巧及其性能優(yōu)勢(shì)詳解,Java中的final關(guān)鍵字用于修飾變量、方法和類,可以讓它們?cè)诙x后不可更改,從而提高程序的穩(wěn)定性和可靠性,此外,final關(guān)鍵字還有一些使用技巧和性能優(yōu)勢(shì),需要的朋友可以參考下2023-10-10- 在Java中,生成隨機(jī)數(shù)有兩種方法。1是使用Random類。2是使用Math類中的random方法??聪旅娴睦邮褂冒?/div> 2013-11-11
JAVA實(shí)現(xiàn)空間索引編碼——GeoHash的示例
本篇文章主要介紹了JAVA實(shí)現(xiàn)空間索引編碼——GeoHash的示例,如何從眾多的位置信息中查找到離自己最近的位置,有興趣的朋友可以了解一下2016-10-10關(guān)于jd-gui啟動(dòng)報(bào)This?program?requires?Java?1.8+的錯(cuò)誤問題及解決方法
最近,在Mac使用上JD-GUI啟動(dòng)時(shí)總是報(bào)錯(cuò),接下來通過本文給大家介紹關(guān)于jd-gui啟動(dòng)報(bào)this?program?requires?Java?1.8+的錯(cuò)誤問題及解決方法,需要的朋友可以參考下2022-05-05最新評(píng)論