2016-04-22 4 views
0

私の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をどうやって使っているのか間違えている可能性があります。

助けてもらえますか?

+0

Java設定を使用しているように見えるので、設定クラスを指していますか?そのようなもの:@ComponentScan(basePackages = "com.sachin.applyuc") –

答えて

2

私は、これはあなたの問題かもしれないと思う:

「また、私は別に設定クラスを作成している私は私のBeanを定義するには、このを使用しています、私は唯一のBeanを指定するには、このを使用していますし、どこでもそれをインポートしていません。コードで。 "

どこかで、SpringにBeanConfigurationを探すように指示する必要があります。次のようにあなたのapplicationContext.xmlファイル(あなたは1を持っていると仮定)でこれを行うことができます。

<context:component-scan base-package="com.sachin.config" /> 

これはBeanConfigurationはcom.sachin.configパッケージ内にあるとみなされます。

これを入れる場所が見つからない場合は、web.xmlファイルを共有すると便利です。

関連する問題