找不到匹配的类型…的Bean依赖项

经过几天的尝试并在springsource论坛上等待答案,我将在这里尝试。运行我的应用程序会导致以下异常:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.example.my.services.user.UserService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:924)

org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:793)

org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:707)

org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:478)

org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)

org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:284)

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)

org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)

org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)

org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)

org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)

org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)

org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)

org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:631)

org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:588)

org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:645)

org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:508)

org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:449)

org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133)

javax.servlet.GenericServlet.init(GenericServlet.java:212)

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)

org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)

org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)

org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

java.lang.Thread.run(Thread.java:662)

这是相关的代码

应用程序上下文:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

<property name="driverClassName" value="org.postgresql.Driver" />

<property name="url" value="jdbc:postgresql://localhost:5432/test" />

<property name="username" value="test" />

<property name="password" value="test" />

</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<property name="dataSource" ref="dataSource" />

<property name="packagesToScan" value="com.example.my.entities.*" />

<property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" />

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>

<prop key="hibernate.show_sql">true</prop>

</props>

</property>

</bean>

<tx:annotation-driven />

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

<property name="sessionFactory" ref="sessionFactory" />

</bean>

com.example.my.entities.user:

@Entity

@Table( name = "tbl_users" )

public class User

{

@Id

@Column( name = "id" )

@GeneratedValue

private int id;

@Column( name = "username" )

private String username;

@Column( name = "password" )

private String password;

public void setId( int id )

{

this.id = id;

}

public int getId()

{

return id;

}

public void setUsername( String username )

{

this.username = username;

}

public String getUsername()

{

return username;

}

public void setPassword( String password )

{

this.password = password;

}

public String getPassword()

{

return password;

}

}

服务:

@Service

public class UserServiceImpl implements UserService

{

@Autowired

private UserDAO userDAO;

@Override

@Transactional

public void addUser( User user )

{

userDAO.addUser( user );

}

@Override

@Transactional

public List<User> listUsers()

{

return userDAO.listUsers();

}

@Override

@Transactional

public void removeUser( int id )

{

userDAO.removeUser( id );

}

}

回答:

可能有多种原因导致这种情况,我没有费心检查您的整个存储库,因此在这里我不知所措。

首先com.example.my.services.user.UserService,如果您使用注释进行配置,则可能会从实现中丢失注释(@Service或@Component)。如果仅使用xml,则可能缺少<bean>UserService实现的-

definition。

如果您使用的是注释并且正确注释了实现,请检查是否扫描了实现所在的包(检查您的<context:component-scan base-

package=-value)。

以上是 找不到匹配的类型…的Bean依赖项 的全部内容, 来源链接: utcz.com/qa/401382.html

回到顶部