我正在尝试将数据源对象注入 servlet。我有记录器以 set 方法打印。它在预初始化时工作正常。但是当我请求 servlet 时,它给了我 nullPointerException。
关于为什么会发生这种情况的任何建议?(我认为这与我正在扩展的 servlet 无关)
这是 applicationContext.xml
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<bean id="dataServlet" class="com.mycom.util.DataServlet">
<property name="dataSource" ref="dataSource" />
<property name="test" value="dataSource" />
</bean>
小服务程序
public class DataServlet extends DataSourceServlet {
...
@Autowired
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
logger.log(Level.INFO, "Inj: datasrc");
}
@Autowired
public void setTest(String test) {
this.test = test;
logger.log(Level.INFO, "Set Test {0}", this.test);
}
}
我设置了断点@setTest,它打破了@pre-init。但是当实际对象被请求时。它不会破坏@ setTest。
为什么会这样?(单例/范围问题相关?)
请指教!提前致谢!