私のSpring MVCのプロジェクトで@autowire、@Configuration、@Bean、@Repositoryを使用しようとすると、私はこのエラーを取得しています依存関係のために見られるタイプの一致豆:Spring MVCの
フィールドをautowireできませんでした:プライベートcom.sachin.dao.StockDaoImpl com.sachin.myapp.HomeController.stockDao;
ネストされた例外はorg.springframework.beans.factory.NoSuchBeanDefinitionExceptionです:
私が作っていますどのような間違いお知らせください:タイプの一致するBeanが[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")
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;
}
}
また、私は別に設定クラスを作成しているを注入することをコントローラに私の変数名である「stockDao」とここ@Repository注釈を使用していました。私はこれを使って自分のbeanを定義しています。私はこれを使ってBeanを指定しており、コードのどこにでもインポートしていません。
@Configuration
public class BeanConfiguration {
@Bean
public StockDaoImpl stockDao(){
return new StockDaoImpl();
}
}
ここには何かがありません。エラーを見て、@Bean注釈が工場では見えないように見えます。 @configurationクラスに注釈を付ける以外に何か他のことをしなくてはなりません。
また、誤った方法で注釈を使用している可能性があります。 @Autowiredや@Repositoryをどうやって使っているのか間違えている可能性があります。
助けてもらえますか?
Java設定を使用しているように見えるので、設定クラスを指していますか?そのようなもの:@ComponentScan(basePackages = "com.sachin.applyuc") –