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

使用Spring的WebApp找不到bean

赵明亮
2023-03-14

我正在使用Intellij Ultimate Edition+Tomcat,我试图制作一个小的web应用程序,但在启动Tomcat服务器时遇到以下错误:

 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'ticketServiceImpl': Unsatisfied dependency expressed through field 'repository'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.testing.repositories.TicketRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.testing.repositories.TicketRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

这是我的代码:

控制器:

package com.testing.controllers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class IndexController {

@RequestMapping
public String showIndex(){

    return "index";

}
}
import javax.persistence.*;
import java.io.Serializable;

@Entity
@Table(name="tickets")
public class Ticket implements Serializable {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(nullable = false)
private Long id;

@Column(nullable = false)
private Long event_id;

@Column(length = 50, nullable = false)
private String type;

@Column(nullable = false)
private Long price;

@Column(nullable = false)
private Long ticketsleft;

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public Long getEvent_id() {
    return event_id;
}

public void setEvent_id(Long event_id) {
    this.event_id = event_id;
}

public String getType() {
    return type;
}

public void setType(String type) {
    this.type = type;
}

public Long getPrice() {
    return price;
}

public void setPrice(Long price) {
    this.price = price;
}

public Long getTicketsleft() {
    return ticketsleft;
}

public void setTicketsleft(Long ticketsleft) {
    this.ticketsleft = ticketsleft;
}
}
package com.testing.repositories;

import com.testing.models.Ticket;
import org.springframework.data.jpa.repository.JpaRepository;

public interface TicketRepository extends JpaRepository<Ticket,Long> {

}
package com.testing.services;


import com.testing.models.Ticket;

public interface TicketService extends CrudService<Ticket>{

}


//////

import com.testing.models.Ticket;
import com.testing.repositories.TicketRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class TicketServiceImpl implements TicketService {

@Autowired
private TicketRepository repository;

@Override
public Ticket save(Ticket entity) {
    return this.repository.save(entity);
}

@Override
public List<Ticket> getAll() {
    return this.repository.findAll();
}

@Override
public Ticket getById(Long id) {
    return this.repository.findOne(id);
}

@Override
public void delete(Long id) {
    this.repository.delete(id);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
   xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc.xsd
    http://www.springframework.org/schema/data/jpa
    http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">

<!-- Step 3: Add support for component scanning -->
<context:component-scan base-package="com.testing" />
<jpa:repositories base-package="com.testing.repositories" />
<!-- Step 4: Add support for conversion, formatting and validation support -->
<mvc:annotation-driven/>


<!-- Step 5: Define Spring MVC view resolver -->
<bean

class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/view/" />
    <property name="suffix" value=".jsp" />
</bean>

</beans>

后期编辑:添加了jpa,但现在我得到了相同的错误和更多,关于entitymanagerfactory的一些东西没有找到。

共有1个答案

元嘉木
2023-03-14
<jpa:repositories base-package="com.testing.repositories" />
<beans 
...
    xmlns:jpa="http://www.springframework.org/schema/data/jpa"
...
        http://www.springframework.org/schema/data/jpa
        http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
...
 类似资料:
  • 我在尝试用标记化启动Spring Boot应用程序时遇到问题。这是我的服务课: 这是我的配置类: 当我尝试运行我的应用程序时,我会出现以下错误: 我不明白为什么我会犯这个错误。

  • 我有一个spring boot web应用程序。正在尝试自定义日志记录。我理解slf4j和Log4J的区别。在本例中,我需要使用log4j。在很大程度上它是按我的意愿运作的。 我还不知道jboss或hibernate是如何配置的。我是新手,所以如果您能提供一个合理的详细描述,说明如何实现您建议的解决方案,我将非常感激。 更新:有人问,是的,我正在使用Maven。我按照Spring Boot页面上的

  • 我最近刚从EC2迁移到OpenShift,因为OpenShift有一些应用程序,只需点击一下就可以很快安装(他们称之为cartridges),但我现在使用这个MySql Cartridge有一个问题。 我的spring webapp部署在OpenShift中,硬编码mysql服务器的数据库URL、用户名和密码都不工作。大多数论坛建议使用环境变量来指向数据库url、用户、密码,但仍然不起作用。但我关

  • 我正在使用和。 但是,每当我向HotelRepository添加依赖项时,编译器会在com.demo.hotelController中给出错误 为了解决这个错误,我从我的角度检查了所有方面,但都是徒劳的。我研发的东西。 对于将提供一个现成的默认实现。根据Spring文档 我已经用注释了接口,因此不需要将 使用注释从spring上下文添加依赖项,因此它应该从spring上下文中选择已创建的bean。

  • 问题内容: 我从阅读了以下文档,但它说,但是当我将index.html文件放在 字符串下时,才呈现出来。目前在下,我 正在使用。 MvcConfiguration Restful Service for index page 在我的IDE控制台上,我确实看到了 从打印的内容 ,并且在Chrome开发工具中的网络下面看到了该内容,但我只能 看到。 index.html 问题答案: Spring Bo

  • 你好,我正在学习Spring Boot,我正在做一个简单的项目。我在尝试执行测试时遇到了这个问题。请告诉我我做错了什么:( 我的项目Github在这里:https://github.com/emicovi/GildedRose_SpringBoot 应用程序无法启动 描述: __________: 字段中的字段项存储库在 com.镀金玫瑰.DBLoader 需要一个类型为“com.镀金玫瑰.镀金玫