Spring 依赖注入 之 设值注入 的小问题
2015-02-07 18:23
363 查看
跟学长学做网站,照猫画虎,好多地方都不太懂。
做网站的时候,每一个页面一个单独的请求,对应一个单独的action,在applicationcontext.xml配置文件中每个方法配置一个就行,很方便,如
很方便,复制粘贴就行,需要用哪个dao就写哪个。
后来有一次不好使了,问学长,原来是那个方法里使用了两个dao,这样就需要将两个dao全部写在那个配置文件里,还是不明白为什么,只知道用哪个写哪个,就像这样:
但是这几天做微信时又遇到问题了,因为微信的所有请求都是从同一个入口进去的,然后在里面执行复杂的逻辑最后返回结果,所以当调用其它类中的方法时,如果被调用的方法中需要进行dao操作,我就不知道怎么弄了。
问学长,他说可能是注入那地方的问题,于是我开始查找关于注入的相关资料,最终明白了,是我对依赖注入的概念不理解导致的。
因为我也是刚懂,还不知道该怎么讲,所以依赖注入的基本知识在这里不做讲解,请自行查阅相关资料。
微信代码的基础部分我是用的我们老师按照柳峰老师的代码稍加改动后给我们的,老师给的微信示例代码只用到了struts框架,而我的这个系统是Struts 2 + Hibernate + Spring 整合的,Hibernate 负责对数据库操作,提供dao ,Spring 负责注入。我的理解是这样,如果有错误还请提出来。
我们来看一下老师给的微信代码入口部分,即main
再来看一下我修改后的整合进Spring框架里的
然后是对应的依赖关系设置,也就是依赖注入
main依赖于CoreService实例,CoreService实例在main中的名称为core,上面的配置文件大体就是这个意思。至于 xlzxaction 和 selSelfXlzx ,是我接下来要调用的一个方法的实例,这里不做讨论。
做网站的时候,每一个页面一个单独的请求,对应一个单独的action,在applicationcontext.xml配置文件中每个方法配置一个就行,很方便,如
<bean id="addYguser" scope="prototype" class="com.xlzx.action.YguserAction"> <property name="yguserdao"> <ref bean="YguserDAO"/> </property> </bean>
很方便,复制粘贴就行,需要用哪个dao就写哪个。
后来有一次不好使了,问学长,原来是那个方法里使用了两个dao,这样就需要将两个dao全部写在那个配置文件里,还是不明白为什么,只知道用哪个写哪个,就像这样:
<bean id="addArticle" scope="prototype" class="com.xlzx.action.ArticleAction"> <property name="articledao"> <ref bean="ArticleDAO"/> </property> <property name="typedao"> <ref bean="TypeDAO"/> </property> </bean>
但是这几天做微信时又遇到问题了,因为微信的所有请求都是从同一个入口进去的,然后在里面执行复杂的逻辑最后返回结果,所以当调用其它类中的方法时,如果被调用的方法中需要进行dao操作,我就不知道怎么弄了。
问学长,他说可能是注入那地方的问题,于是我开始查找关于注入的相关资料,最终明白了,是我对依赖注入的概念不理解导致的。
因为我也是刚懂,还不知道该怎么讲,所以依赖注入的基本知识在这里不做讲解,请自行查阅相关资料。
微信代码的基础部分我是用的我们老师按照柳峰老师的代码稍加改动后给我们的,老师给的微信示例代码只用到了struts框架,而我的这个系统是Struts 2 + Hibernate + Spring 整合的,Hibernate 负责对数据库操作,提供dao ,Spring 负责注入。我的理解是这样,如果有错误还请提出来。
我们来看一下老师给的微信代码入口部分,即main
public class CoreAction extends ActionSupport { public String main() throws Exception { ... // 调用核心业务类接收消息、处理消息 String respMessage = CoreService.processRequest(request); ... } }
再来看一下我修改后的整合进Spring框架里的
public class CoreAction extends ActionSupport { public String main() throws Exception { ... // 调用核心业务类接收消息、处理消息 String respMessage = core.processRequest(request); ... } //将核心业务类 CoreService 实例化 CoreService core = null; public CoreService getCore() { return core; } public void setCore(CoreService core) { this.core = core; } }
然后是对应的依赖关系设置,也就是依赖注入
<!-- 微信入口 --> <bean id="main" scope="prototype" class="com.xlzx.action.CoreAction"> <property name="core"> <ref bean="CoreService"/> </property> </bean> <!-- 核心业务类 --> <bean id="CoreService" scope="prototype" class="com.xlzx.wx.service.CoreService"> <property name="xlzxaction"> <ref bean="selSelfXlzx"/> </property> </bean>
main依赖于CoreService实例,CoreService实例在main中的名称为core,上面的配置文件大体就是这个意思。至于 xlzxaction 和 selSelfXlzx ,是我接下来要调用的一个方法的实例,这里不做讨论。
相关文章推荐
- Spring的依赖注入( 设值注入)
- 关于Spring的依赖注入问题
- kotlin与Spring, 默认类,方法,property为final带来的问题--依赖注入失效,NullPointerException异常
- SpringBoot集成Quartz(解决@Autowired空指针Null问题即依赖注入的属性为null)
- 在SSH整合中,关于spring依赖注入失败的问题
- spring 框架中的依赖注入(IOC--设值注入)--使用注解--的具体实例的简单实现
- spring boot项目依赖spring mvc项目注入失败问题
- 使用spring的aop对Struts2的Action拦截后出现依赖注入为空问题
- Spring boot框架整合quartz,job类中依赖注入报空指针问题
- 使用spring的aop实现拦截action后出现依赖注入为空的问题
- 关于spring容器依赖注入接口的小问题
- Spring 4.2 方法注入解决单例Bean的原型Bean依赖问题
- Spring AOP切面类依赖注入失败问题解决
- Spring的依赖注入( 设值注入)
- 使用spring的aop实现拦截action后出现依赖注入为空的问题
- spring2.5 注解依赖注入由于jdk1.8产生的问题
- spring中的依赖注入和控制反转(二)——Spring 设值注入和构造注入比较
- spring按类型进行依赖注入引起的问题
- 解决WebSocket无法依赖注入的问题(Spring)
- 对一个Spring依赖注入问题的解答