Spring 报错:Error creating bean with name的解决方法

12 篇文章 0 订阅
11 篇文章 1 订阅

java项目编译正常,但在tomcat中发布时,报错,错误信息如下:

严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘XXXXX’: Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: XXXXXXX; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [XXXXXX] 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)}

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

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

原因是在使用@Autowired注解时,找不到相应的类,产生上述问题是因为XXXXX的实现类中没有加相应的注解。

例如DAO层 @Repository
例如Service层 @Service

解决方法:

在Service层的类上追加代码:

@Service("XXXXX")

在service的实现类XXXXXServiceImpl.java的开始,追加@Service("XXXXX"),如下:

@Service("XXXXX")
public class XXXXXServiceImpl implements XXXXXService{
......
}

在DAO层:

@Repository
@Autowired
public @interface MyBatisDAO {


}
package com.keymen.dao;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import com.keymen.annotation.MyBatisDAO;
import com.keymen.entity.User;

@MyBatisDAO
public interface UserDao {

    @Autowired
    User selectByPrimaryKey(Integer id);
    @Autowired
    List<User> queryAllUser();
    @Autowired
    public User findUserByUsername(String username);
    @Autowired(required=true)
    public Integer getCountOfRecord();

}

代码看起来像这样。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值