欲以@autowire,@Configuration,@Bean,@Repository在我的Spring MVC項目時,我收到此錯誤類型沒有匹配的豆發現依賴性:Spring MVC的
無法自動裝配領域:私人com.sachin.dao.StockDaoImpl com.sachin.myapp.HomeController.stockDao;
嵌套的例外是org.springframework.beans.factory.NoSuchBeanDefinitionException:com.sachin.dao.StockDaoImpl]發現依賴性沒有類型的匹配豆:
請讓我知道我在做什麼錯誤。我是Spring MVC和依賴注入的新手。
這是我的控制器代碼。我試圖在控制器中注入StockDaoImpl。
@Controller
public class HomeController {
@Autowired
private StockDaoImpl stockDao;
@RequestMapping(value = "/stockgoogle/", method = RequestMethod.GET)
public @ResponseBody Stock stockGoogle(Locale locale, Model model) {
//StockDaoImpl stockDao = new StockDaoImpl();
Stock s=stockDao.listGoogle();
model.addAttribute("s", s);
return s;
}
}
我的服務實施情況如下。我在這裏用@Repository批註與「stockDao」這是在我的控制變量名,我想注入
@Repository("stockDao")
public class StockDaoImpl implements StockDao {
@Override
public Stock listGoogle() {
Stock s = null;
try {
... //some code
String name = rs.getString("Name");
s = new Stock(name);
...
} catch (Exception e) {
}
return s;
}
}
而且我已經創建了一個配置類分開。我正在使用它來定義我的bean。我只是用它來指定bean,並沒有在代碼中的任何地方導入它。
@Configuration
public class BeanConfiguration {
@Bean
public StockDaoImpl stockDao(){
return new StockDaoImpl();
}
}
我在這裏丟失了些什麼。從查看錯誤看起來,@Bean註釋對工廠不可見。除註釋@configuration類外,還必須做其他事情嗎?
我也可能以錯誤的方式使用註釋。我可能會在我使用@Autowired或@Repository時出錯。
您能否請幫助。
由於它看起來像您正在使用Java配置,您是否指向您的配置類?如:@ComponentScan(basePackages =「com.sachin.applyuc」) –