applicationContext.xml配置文件如下:<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<constructor-arg>
<ref bean="dataSource" />
</constructor-arg>
</bean>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.OracleDriver" />
<property name="url">
<value><![CDATA[jdbc:oracle:thin:@(description=(address_list=(address=(protocol=TCP)(port=1521)(host=192.168.1.201)))(connect_data=(SERVER = orcl)(SERVICE_NAME = orcl)))]]></value>
</property>
<property name="username" value="oms" />
<property name="password" value="oms" />
</bean>
<bean id="test" class="com.yi.test.Test">
<property name="template" ref="jdbcTemplate"></property>
</bean>java代码:private JdbcTemplate template;
public void work() {
//在这里包空指针异常
List<Map> list = template.queryForList("select * from OMS_ROLE_INFO");
for (Map map : list) {
System.out.println(map.get("jsmc"));
}
}
public JdbcTemplate getTemplate() {
return template;
}
public void setTemplate(JdbcTemplate template) {
this.template = template;
}public static void main(String[] args) throws SQLException {
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
new Test().work();
}求解
<constructor-arg>
<ref bean="dataSource" />
</constructor-arg>
</bean>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.OracleDriver" />
<property name="url">
<value><![CDATA[jdbc:oracle:thin:@(description=(address_list=(address=(protocol=TCP)(port=1521)(host=192.168.1.201)))(connect_data=(SERVER = orcl)(SERVICE_NAME = orcl)))]]></value>
</property>
<property name="username" value="oms" />
<property name="password" value="oms" />
</bean>
<bean id="test" class="com.yi.test.Test">
<property name="template" ref="jdbcTemplate"></property>
</bean>java代码:private JdbcTemplate template;
public void work() {
//在这里包空指针异常
List<Map> list = template.queryForList("select * from OMS_ROLE_INFO");
for (Map map : list) {
System.out.println(map.get("jsmc"));
}
}
public JdbcTemplate getTemplate() {
return template;
}
public void setTemplate(JdbcTemplate template) {
this.template = template;
}public static void main(String[] args) throws SQLException {
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
new Test().work();
}求解
解决方案 »
- SSH系统中怎样解决刷新重复提交
- 关于Eclipse中VSS插件的使用
- 急啊!!!!!,一个困扰好久的异常问题!
- jdom中调用setAttribute(Sring key,Sring value)时,如果key中带有冒号,则报错.
- java利用JAXBContext 编组xml时如何去掉 standalone="yes" 啊?
- 老问题,Hibernate连接池,在网上没找到对口的解决方案,在此求救
- struts中上传文件的时候出现以下问题!大家帮忙解决下!
- 一个关于struts的问题!!!
- 请教关于---JDOM和JAXB
- Mybatis+SpringMVC操作日志
- Java socket服务器多线程
- position还是z-index不兼容
new Test().work();
这句话有问题,既然用spring管理你的bean了,就不要自己new了,自己new的spring不会帮你注入的
应该用Test test = (Test) context.getBean("test");
test.work();
<property name="template" ref="jdbcTemplate"></property>
</bean> 楼上都正解,因为这个id为test的bean配置没有被真正用到(new方式无法触发容器初始化),尤其是其中的ref属性