问题描述
在applicationContext.xml中定义的一个bean,通过@Autowired注解获取时为null,而通过ApplicationContext ctx = new ClassPathXmlApplicationContext("conf/spring/applicationContext.xml");ctx.getBean()这种方式却可以获取对象
相关代码
<bean id="dalClient" class="com.zhl.framework.dal.client.support.DefaultDalClient">
<property name="resources" value="classpath:sqlmapper/sqlMap_*.xml" />
<property name="defaultDataSource" ref="dataSource" />
</bean>
这是一个封装的访问sql文件的方法
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:conf/spring/spring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
这是web配置
1、是否配置的扫描,spring的注入机制可以去看看
2、是否被spring托管,是new出来的还是可以注入的,
我以前写过一个线程业务类,是不能向里面注入bean的,需要new出来
线程中要这样获取bean