spring IOC的问题
刚学spring ,看着说springIOC等于不需要自己new对象,由spring来管理,所以自己做了一个小实验,结果总是失败,在此请教朋友们解答疑虑! 项目采用springmvc+ibatis
----------spring里面的部分配置------------
<bean id="sqlMap"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation"
value="WEB-INF/SqlMapConfig.xml" />
<property name="dataSource" ref="dataSource"></property>
</bean>
<bean id="dao" class="com.bh.common.dao.CommonDao">
<property name="sqlMapClient" ref="sqlMap" />
</bean>
<bean class="com.bh.common.dao.CommonDaoUtils">
<property name="dao" ref="dao" />
</bean>
-----------------------------------------------------------
package com.bh.common.dao;
public class CommonDaoUtils {
private static CommonDao dao ;
public static CommonDao getDao() {
return dao ;
}
public void setDao(CommonDao dao) {
CommonDaoUtils.dao = dao;
}
}
-------------------------------------------------------------
按照我的理解是这样的,通过spring的配置将CommonDao类注入给CommonDaoUtils,上面的这样配置程序没有问题。
问题是我将 <bean class="com.bh.common.dao.CommonDaoUtils">
<property name="dao" ref="dao" />
</bean>这段代码注释掉,不用spring的配置,而是自己在CommonDaoUtils类里面使用new,private static CommonDao dao = new CommonDao();改成这样后程序出现java.lang.NullPointerException异常,不知道是什么原因,spring里面的bean不就是不用自己new对象,由spring来完成吗,而我现在不用spring来完成,自己new却出现异常,请问是什么原因
----------spring里面的部分配置------------
<bean id="sqlMap"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation"
value="WEB-INF/SqlMapConfig.xml" />
<property name="dataSource" ref="dataSource"></property>
</bean>
<bean id="dao" class="com.bh.common.dao.CommonDao">
<property name="sqlMapClient" ref="sqlMap" />
</bean>
<bean class="com.bh.common.dao.CommonDaoUtils">
<property name="dao" ref="dao" />
</bean>
-----------------------------------------------------------
package com.bh.common.dao;
public class CommonDaoUtils {
private static CommonDao dao ;
public static CommonDao getDao() {
return dao ;
}
public void setDao(CommonDao dao) {
CommonDaoUtils.dao = dao;
}
}
-------------------------------------------------------------
按照我的理解是这样的,通过spring的配置将CommonDao类注入给CommonDaoUtils,上面的这样配置程序没有问题。
问题是我将 <bean class="com.bh.common.dao.CommonDaoUtils">
<property name="dao" ref="dao" />
</bean>这段代码注释掉,不用spring的配置,而是自己在CommonDaoUtils类里面使用new,private static CommonDao dao = new CommonDao();改成这样后程序出现java.lang.NullPointerException异常,不知道是什么原因,spring里面的bean不就是不用自己new对象,由spring来完成吗,而我现在不用spring来完成,自己new却出现异常,请问是什么原因
...全文
相关推荐
针对大厂面试,模仿Spring写的简易版IOC小框架,完美解释三级缓存解决属性注入循环依赖的问题
IOC是一种设计模式,它将对象的创建和管理责任从应用代码中分离出来,交给一个专门的容器来处理。在Java世界中,Spring框架就是IOC的一个典型实现。
fizzbuzz-spring:Spring IOC框架的演示应用程序
总的来说,"FizzBuzz-spring"项目通过Spring框架展示了如何优雅地解决复杂问题,它利用setter注入将FizzBuzz问题分解为易于管理和测试的组件,体现了Spring的DI和IOC
Spring IOC原理详解
Spring IOC 原理是 Spring 框架的核心概念,它解决了对象之间的耦合问题,实现了松耦合编程。
spring ioc
这将帮助我们成为 Spring 框架的专家,更有效地利用其功能来解决实际开发中的问题。总的来说,Spring 的 IOC 机制使得我们可以编写更加简洁、可测试的代码,降低了组件间的耦合度。
Spring的IOC原理
**四、Spring的IOC实现**Spring框架是实现IOC的一个典型例子。在Spring中,IOC容器(ApplicationContext)负责管理对象的生命周期和装配。


Web 开发
