初入java,使用spring時遇到一個問題,左邊是一個接口和實現。右邊是service和實現。
@Service
@Transactional(rollbackFor = Exception.class)
public class DefaultSerializeSettingManage implements SerializeSettingService {
@Autowired
SerializeSettingDAO settingdao; //部署項目時,此行代碼引發異常:&*%&(()()&*&&^%^$%$&&*&* expected single matching bean but found 2:defaultSettingDAO,serializeSettingDAO
}
當時,很疑惑,每個接口都只有一個實現,為什麼會提示:but found 2:defaultSettingDAO,serializeSettingDAO
而且提示的這兩個名稱的首字母都是小寫呢?
從網上查這個資料:http://stackoverflow.com/questions/8414287/spring-autowiring-with-unique-beans-spring-expected-single-matching-bean-but-fo
下面這個答案雖然不是正確答案,但是 提供了一個線索。
我把變量定義改成:
@Autowired
SerializeSettingDAO serializeSettingDAO;
就好了。
雖然是java新手,但是對java這種約束實在很想吐槽。呵呵
期待高手給出正解!
ps:這個答案似乎解釋了些東西: