类型没有匹配的豆发现依赖性:Spring MVC的

问题描述:

欲以@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时出错。

您能否请帮助。

+0

由于它看起来像您正在使用Java配置,您是否指向您的配置类?如:@ComponentScan(basePackages =“com.sachin.applyuc”) –

我认为这可能是您的问题:。

“此外,我已创建单独的配置类我使用这种方法来定义我的豆我只使用这个指定的bean,并没有任何地方进口它在代码中“。

某处你需要告诉Spring寻找BeanConfiguration。您可以在applicationContext.xml文件做到这一点(假设你有一个),如下所示:

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

这是假设BeanConfiguration是在com.sachin.config包。

如果您无法找到放置该位置的信息,那么共享您的web.xml文件可能会有帮助。