zoukankan      html  css  js  c++  java
  • autowire异常的三个情况

    1. 2010-3-11 16:06:00 net.sf.ehcache.config.ConfigurationFactory parseConfiguration  
    2. 警告: No configuration found. Configuring ehcache from ehcache-failsafe.xml  found in the classpath: jar:file:/E:/kenny/%e9%a1%b9%e7%9b%ae/shops/webapp/WEB-INF/lib/ehcache-1.6.1.jar!/ehcache-failsafe.xml  
    3. 2010-03-11 16:06:02,734 [main] ERROR [org.springframework.test.context.TestContextManager] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@1292d12] to prepare test instance [com.zzh.entity.product.BrandServiceImplTest@4e32c8]  
    4. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.zzh.entity.product.BrandServiceImplTest': Autowiring of fields failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.zzh.service.product.impl.BrandServiceImpl com.zzh.entity.product.BrandServiceImplTest.brandServiceImpl; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'brandServiceImpl': Autowiring of fields failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.zzh.dao.product.BrandDao com.zzh.service.product.impl.BrandServiceImpl.brandDao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.zzh.dao.product.BrandDao] is defined: Unsatisfied dependency of type [class com.zzh.dao.product.BrandDao]: expected at least 1 matching bean  
    5.     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessAfterInstantiation(AutowiredAnnotationBeanPostProcessor.java:243)  
    6.     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:959)  
    7.     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBeanProperties(AbstractAutowireCapableBeanFactory.java:329)  
    8.     at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:110)  
    9.     at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:75)  
    10.     at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:255)  
    11.     at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:111)  
    12.     at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.invokeTestMethod(SpringJUnit4ClassRunner.java:148)  
    13.     at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)  
    14.     at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)  
    15.     at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)  
    16.     at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)  
    17.     at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)  
    18.     at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:97)  
    19.     at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)  
    20.     at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)  
    21.     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)  
    22.     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)  
    23.     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)  
    24.     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)  
    25. Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.zzh.service.product.impl.BrandServiceImpl com.zzh.entity.product.BrandServiceImplTest.brandServiceImpl; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'brandServiceImpl': Autowiring of fields failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.zzh.dao.product.BrandDao com.zzh.service.product.impl.BrandServiceImpl.brandDao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.zzh.dao.product.BrandDao] is defined: Unsatisfied dependency of type [class com.zzh.dao.product.BrandDao]: expected at least 1 matching bean  
    26.     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:435)  
    27.     at org.springframework.beans.factory.annotation.InjectionMetadata.injectFields(InjectionMetadata.java:105)  
    28.     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessAfterInstantiation(AutowiredAnnotationBeanPostProcessor.java:240)  
    29.     ... 19 more  
    30. Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'brandServiceImpl': Autowiring of fields failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.zzh.dao.product.BrandDao com.zzh.service.product.impl.BrandServiceImpl.brandDao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.zzh.dao.product.BrandDao] is defined: Unsatisfied dependency of type [class com.zzh.dao.product.BrandDao]: expected at least 1 matching bean  
    31.     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessAfterInstantiation(AutowiredAnnotationBeanPostProcessor.java:243)  
    32.     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:959)  
    33.     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)  
    34.     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)  
    35.     at java.security.AccessController.doPrivileged(Native Method)  
    36.     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)  
    37.     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)  
    38.     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)  
    39.     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)  
    40.     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)  
    41.     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)  
    42.     at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:671)  
    43.     at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:610)  
    44.     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:412)  
    45.     ... 21 more  
    46. Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.zzh.dao.product.BrandDao com.zzh.service.product.impl.BrandServiceImpl.brandDao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.zzh.dao.product.BrandDao] is defined: Unsatisfied dependency of type [class com.zzh.dao.product.BrandDao]: expected at least 1 matching bean  
    47.     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:435)  
    48.     at org.springframework.beans.factory.annotation.InjectionMetadata.injectFields(InjectionMetadata.java:105)  
    49.     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessAfterInstantiation(AutowiredAnnotationBeanPostProcessor.java:240)  
    50.     ... 34 more  
    51. Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.zzh.dao.product.BrandDao] is defined: Unsatisfied dependency of type [class com.zzh.dao.product.BrandDao]: expected at least 1 matching bean  
    52.     at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:613)  
    53.     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:412)  
    54.     ... 36 more  

     autowire异常主要由三个情况发生的

    像上面的情况是BrandDao没有注入,


    1。你的BrandServiceImpl必须以@Service或@Component注解才行。

    2。自动写入的时候把接口写成实现类了 
    @Autowired 
    private BrandServiceImpl      brandServiceImpl; 
    应该是 
    @Autowired 
    private BrandService    brandService ;

    3.在BrandDao 类上加上@Repository注解

    package com.biber.yxyz.service.impl.leave;

    import oracle.sql.DATE;

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import org.springframework.transaction.annotation.Transactional;

    import com.biber.yxyz.service.leave.TbLeaveRegisterServiceI;
    import com.biber.yxyz.service.student.TbStudentServiceI;

    import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
    import org.jeecgframework.web.system.service.SystemService;

    import com.biber.yxyz.entity.leave.TbLeaveRegisterEntity;
    import com.biber.yxyz.entity.student.TbStudentEntity;

    import java.util.Date;
    import java.util.List;
    import java.util.UUID;
    import java.io.Serializable;

    @Service("tbLeaveRegisterService")
    @Transactional
    public class TbLeaveRegisterServiceImpl extends CommonServiceImpl implements TbLeaveRegisterServiceI {


    @Autowired
    private SystemService systemService;

    //@autowired(如果你不小心在这里加了这个,会出现autowired异常,因为这个类已经存在了 不需要注入)

    private TbLeaveRegisterServiceI tbLeaveRegisterService;
    @Autowired
    private TbStudentServiceI tbStudentService;

    public <T> void delete(T entity) {
    super.delete(entity);
    //执行删除操作配置的sql增强
    this.doDelSql((TbLeaveRegisterEntity)entity);
    }

    public <T> Serializable save(T entity) {
    Serializable t = super.save(entity);
    //执行新增操作配置的sql增强
    this.doAddSql((TbLeaveRegisterEntity)entity);
    return t;
    }

    public <T> void saveOrUpdate(T entity) {
    super.saveOrUpdate(entity);
    //执行更新操作配置的sql增强
    this.doUpdateSql((TbLeaveRegisterEntity)entity);
    }

    /**
    * 默认按钮-sql增强-新增操作
    * @param id
    * @return
    */
    public boolean doAddSql(TbLeaveRegisterEntity t){
    return true;
    }
    /**
    * 默认按钮-sql增强-更新操作
    * @param id
    * @return
    */
    public boolean doUpdateSql(TbLeaveRegisterEntity t){
    return true;
    }
    /**
    * 默认按钮-sql增强-删除操作
    * @param id
    * @return
    */
    public boolean doDelSql(TbLeaveRegisterEntity t){
    return true;
    }
    /**
    * 生成迟到信息
    * @param
    * @return
    */
    public void beforeCount(){
    List<TbLeaveRegisterEntity> tList=systemService.findByProperty(TbLeaveRegisterEntity.class, "type", "1");
    Date date=new Date();
    for(TbLeaveRegisterEntity a:tList){
    if(date.after(a.getEndtime())){
    a.setType("0");
    tbLeaveRegisterService.saveOrUpdate(a);
    TbStudentEntity tS=systemService.getEntity(TbStudentEntity.class, a.getStudent().getId());
    tS.setMatter("0");
    tS.setLeave(null);
    tbStudentService.saveOrUpdate(tS);
    }
    }

    }
    /**
    * 针对考勤报表时间内的处理
    * @param
    * @return
    */
    public void afterCount(){
    List<TbLeaveRegisterEntity> tList=systemService.findByProperty(TbLeaveRegisterEntity.class, "type", "1");
    Date date=new Date();
    for(TbLeaveRegisterEntity a:tList){
    if(date.before(a.getEndtime())&&date.after(a.getCreatetime())){
    a.setType("8");
    tbLeaveRegisterService.saveOrUpdate(a);
    TbStudentEntity tS=systemService.getEntity(TbStudentEntity.class, a.getStudent().getId());
    tS.setMatter("1");
    tbStudentService.saveOrUpdate(tS);
    }
    }

    }
    /**
    * 替换sql中的变量
    * @param sql
    * @return
    */
    public String replaceVal(String sql,TbLeaveRegisterEntity t){
    sql = sql.replace("#{id}",String.valueOf(t.getId()));
    sql = sql.replace("#{begintime}",String.valueOf(t.getBegintime()));
    sql = sql.replace("#{endtime}",String.valueOf(t.getEndtime()));
    sql = sql.replace("#{type}",String.valueOf(t.getType()));
    sql = sql.replace("#{earlyafter}",String.valueOf(t.getEarlyafter()));
    // sql = sql.replace("#{departid}",String.valueOf(t.getDepart().getId()));
    //sql = sql.replace("#{studentid}",String.valueOf(t.getStudent().getId()));
    sql = sql.replace("#{createtime}",String.valueOf(t.getCreatetime()));
    sql = sql.replace("#{updatetime}",String.valueOf(t.getUpdatetime()));
    sql = sql.replace("#{status}",String.valueOf(t.getStatus()));
    sql = sql.replace("#{createuser}",String.valueOf(t.getCreateuser()));
    sql = sql.replace("#{shuoming}",String.valueOf(t.getShuoming()));
    sql = sql.replace("#{name}",String.valueOf(t.getName()));
    sql = sql.replace("#{banji}",String.valueOf(t.getBanji()));
    sql = sql.replace("#{UUID}",UUID.randomUUID().toString());
    return sql;
    }
    }

  • 相关阅读:
    单点登录场景中的CAS协议和OAuth2.0协议对比
    https的URL参数传递中文乱码问题
    Goby
    Burp_suite安装及使用教程(专业版)
    IIS下配置php运行环境。
    iis强制使用https
    IIS-详解IIS中URL重写工具的规则条件(Rule conditions)
    树莓派鼓捣记
    树莓派鼓捣记
    WSL1 升级为 WSL2
  • 原文地址:https://www.cnblogs.com/mrdoor/p/4690389.html
Copyright © 2011-2022 走看看