当前位置: 首页 > 知识库问答 >
问题:

找不到依赖项类型为[com.sachin.dao.StockDao]的匹配bean

连成益
2023-03-14

当我试图在SpringMVC中使用依赖注入时,我遇到了这个错误。

没有匹配的类型[com.sachin.dao.斯托克道]的bean找到依赖项:预计至少有1 bean有资格作为该依赖项的自动连接候选。依赖注释:{};嵌套异常是org.springframework.beans.factory.NoSuchBean定义异常:没有找到类型[com.sachin.dao.Stock道]的匹配bean的依赖项:预期至少有1 bean有资格作为该依赖项的自动连接候选。依赖项注释:{}

我想我在注释中犯了一些错误。我基本上是想把StockDaoImpl注入我的掌上电脑。

这是我的控制文件HomeController。JAVA

@Controller
public class HomeController {

private final StockDao dao;

@Autowired 
public HomeController(StockDao dao){
    this.dao = dao;
}

@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {        
    return "home";
}

@RequestMapping(value = "/stockgoogle/", method = RequestMethod.GET)
public @ResponseBody Stock stockGoogle(Locale locale, Model model) {    
    //StockDaoImpl si = new StockDaoImpl();
    Stock s=dao.listGoogle();
    System.out.println("reached here");
    model.addAttribute("s", s );        
    return s;
}

我已经创建了一个配置文件BeanConfiguration,并使用它来创建bean

@Configuration
public class BeanConfiguration {
@Bean
public StockDao stockDao(){
  return new StockDaoImpl();
}
}

我有StockDaoImpl来实现我的数据检索。

public class StockDaoImpl implements StockDao {    
@Override
public Stock listGoogle() {
    Connection con = null;
    Stock s = null;
    try {
        Class.forName("org.postgresql.Driver");
        con = DriverManager
           .getConnection("jdbc:postgresql://localhost:5432/webapp",
           "postgres", "sachin");             
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery( "SELECT * FROM \"public\".\"Historical\" " );            

        rs.next();
        String  name = rs.getString("Name");
        s = new Stock(name);                
        rs.close();
        stmt.close();
        con.close();             
    } catch (Exception e) {
        e.printStackTrace();
    }
    return s;
}
}

以上是实现以下接口:

public interface StockDao {
public Stock listGoogle();
}

我错过了什么吗。还有没有其他的注释需要我写。或者在别的地方。我不确定是否正确创建了配置类。你能帮忙吗?

共有1个答案

盖马鲁
2023-03-14

您需要指向您的配置类。要从另一个Java配置类(例如,在BeanConfiguration类中)执行此操作,请添加

@ComponentScan(basePackages="com.sachin")
 类似资料:
  • 问题内容: 经过几天的尝试并在springsource论坛上等待答案,我将在这里尝试。运行我的应用程序会导致以下异常: 这是相关的代码 应用程序上下文: com.example.my.entities.user: 服务: 问题答案: 可能有多种原因导致这种情况,我没有费心检查你的整个存储库,因此在这里我不知所措。 首先,如果你使用注释进行配置,则可能会从实现中丢失注释(@Service或@Comp

  • 当我试图在Spring MVC项目中使用@autowire,@配置,@bean,@Repository时,我得到了这个错误 无法自动关联字段:专用com。萨钦。刀。斯托克道尔公司。萨钦。我的应用程序。家庭控制器。斯托克道; 嵌套的异常是org。springframework。豆。工厂NoSuchBeanDefinitionException:找不到依赖项类型为[com.sachin.dao.Sto

  • 我正在运行一个JUnit测试,嗯,我的Spring启动项目,我是这样写的: 找到依赖项[com.br.suppcomm.ocp.dao.logindao]得[com.br.suppcomm.ocp.dao.logindao]:需要至少1个具有此依赖项自动候选资格得bean.依赖项注释:{@org.SpringFramework.Beans.Factory.Annotation.AutoWired(

  • 我正在尝试运行批处理,但无法将batchservice注入其中。 BatchApplication.java LeaveAllocationJobConfiguration.java 我该如何解决这个问题?

  • 我有测试Spring Data JPA的示例测试程序,但看起来存储库没有生成。 我的配置: 用户实体:

  • 我和我的朋友正在做一个Java maven项目,它的设置和我们从Git得到的项目是一样的。在我的设置中,Maven正确地导入了所有依赖项,但对于我的朋友,它找不到任何依赖项。 我们尝试过的事情: 右键单击project,单击maven并单击Reimport。 我们都可以上网,所以这也不是问题。而且,Maven在IntelliJ中设置为自动导入。