手动配置bean主要与web中的一个配置目录相关
<
context-param
>
<
param-name
>
contextConfigLocation
</
param-name
>
<
param-value
>
classpath:spring-mybatis.xml
</
param-value
>
</
context-param
>
上面配置的作用是:<!-- 指定Spring Bean的配置文件所在目录。默认配置在WEB-INF目录下 -->
<
param-value
>的内容可以是1个,也可以是多个,中间用逗号隔开
之所以自己在
spring-mvc.xml中配置bean一直无法正常注入,就是因为这里的
<
param-value
>中没有
spring-mvc.xml,自己尝试在spring-mybatis.xml中配置,可正常注入,因此就翻看web.xml的配置。
尝试修改SpringMVC的开启顺序,
<
load-on-startup
>
1
</
load-on-startup
>,将1改为0,还是不行。
然后尝试,将
spring-mvc.xml也加入到contextConfigLocation配置中,就可以正常注入了。
如下
<
context-param
>
<
param-name
>
contextConfigLocation
</
param-name
>
<
param-value
>
classpath:spring-mybatis.xml, classpath:spring-mvc.xml
</
param-value
>
</
context-param
>
报错信息如下:
ERROR] [org.springframework.web.context.ContextLoader] Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'taskJob': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency [pubinfo.controller.TestCons]: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@javax.annotation.Resource(mappedName=, shareable=true, description=, name=, type=class java.lang.Object, authenticationType=CONTAINER, lookup=)}
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'taskJob': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency [pubinfo.controller.TestCons]: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@javax.annotation.Resource(mappedName=, shareable=true, description=, name=, type=class java.lang.Object, authenticationType=CONTAINER, lookup=)}