spring autowired 自动注入问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring autowired 自动注入问题相关的知识,希望对你有一定的参考价值。

异常信息Error creating bean with name 'loginAction' defined in file [G:\apache-tomcat-7.0.22\webapps\bishe\WEB-INF\classes\com\bishe\control\LoginAction.class]: Unsatisfied dependency expressed through constructor argument with index 0 of type [com.bishe.servce.impl.userManagerImpl]: : No matching bean of type [com.bishe.servce.impl.userManagerImpl] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: ; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.bishe.servce.impl.userManagerImpl] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations:
请大侠们贴下你们自动注入的配置文件是怎么写的?

参考技术A 看到错误提示莫非楼主使用的是byType?上面的错误明显是来自loginAction这个类的构造函数参数引起的。
其实最好的情况还是使用byName, 这样你只要确定名字不重复即可。

Spring boot下@Autowired 注入为 NULL的问题

问题描述:在springboot项目中集成quartz时,需要使用到一个import org.springframework.scheduling.quartz.SchedulerFactoryBean这个类,并需要自动注入,在测试代码时,发现无法注入到普通.class文件中,后台报错提示:空指针异常。通过断电调试,发现时SchedulerFactoryBean这个类为NULL。

问题解决方案:

1.根据springboot 框架的注入方式检查,@Autowired 注解正确,因为引用的框架本身的类,不需要在SchedulerFactoryBean类文件上加上@Component,所以本身没错。

2.采用另外的方式进行解决:

 @Autowired
 private SchedulerFactoryBean schedulerFactoryBean;
    
 private static QuartzManager quartzManager;
    
 /**
  * 通过@PostConstruct实现初始化bean之前进行的操作
  * @desc 初始化操作,得到QuartzManager实例
  * @Date 2019年1月7日
  */
 @PostConstruct 
 public void init() {  
      quartzManager = this;  
      quartzManager.schedulerFactoryBean = this.schedulerFactoryBean;        
}

其中 QuartzManager 类就是该类本身,通过“quartzManager = this;  ”可以看出来。以后使用“schedulerFactoryBean” 就直接用“quartzManager.schedulerFactoryBean”来代替。

 

这个解决方案的原理还不甚理解,但是可以获取到对象。尝试过将该种写法放在abstract class 类文件中,结果是无效的,不能解决,所以这种写法我初步认为只能解决普通类的注入问题,缘由还待深究。

以上是关于spring autowired 自动注入问题的主要内容,如果未能解决你的问题,请参考以下文章

多线程时Autowired自动注入问题

SSM-Spring-06:Spring的自动注入autowire的byName和byType

Spring源码剖析-Autowired自动注入原理

Spring自动注入有关的注解

spring统一注入问题

spring学习 十五 spring的自动注入