对spring的困惑????

09-05-09 1s2k3y4
    

自从开始学习spring看见的例子都是B/S体系的,对于IOC也没有觉得特别的难以理解。最近在C/S体系中却出现了一个不小的困惑在B/S项目中如果要在一个Action中使用一个注入好的类只要在Action中对其产生Getter/Setter
然后在applicationContext.xml文件中写
<bean name="/jsp/admin/adminquestion"
class="org.lxh.myzngt.struts.action.AdminquestionAction">
<property name="iquestiondao">
<ref bean="iquestiondaoimpl" />
</property>
</bean>
这样在 AdminquestionAction这个类中就可以使用在applicationContext.xml配置好的iquestiondaoimp这个所指向的类了。
在C/S项目中我希望可以同样的方式去使用而不用去通过
(下面的例子程序是spring.net中的)
spring.xml文件中:
<object id="ExamineroominfoDao" type="DZ.BookingSystem.KBP.DataAccess.ExamineroominfoDao">
<property name="HibernateTemplate" ref="HibernateTemplate" />
</object>
<object id="ExaminRoomInterface" type="DZ.BookingSystem.KBP.Common.ExaminRoomInterfaceImp">
<property name="ED" ref="ExamineroominfoDao" />
</object>


具体的类中:
IApplicationContext context = ContextRegistry.GetContext();
ExaminRoomInterface um = (ExaminRoomInterface)context.GetObject("ExaminRoomInterface");
来得到ExaminRoomInterface这个接口所指向的类。
请各位大虾帮帮忙,有没有什么方法能让我需要使用的时候直接就可以使用,不用在通过上面的方式来得到我所希望得到的类??请各位帮我出出主意 谢谢了

    

IceQi
2009-05-09 18:55

LZ的意思是不通过
IApplicationContext context = ContextRegistry.GetContext();
ExaminRoomInterface um = (ExaminRoomInterface)context.GetObject("ExaminRoomInterface");
的方式获取对象?

对于sping来讲没有别的方式了,除非你自己再次进行封装。

1s2k3y4
2009-05-10 11:45

我确实是那个意思,但是在BS中不是也没有通过这样的方式来直接用么?能不能告诉我在Bs中我使用的是SSH架构,在什么地方就已经把IApplicationContext context = ContextRegistry.GetContext()这样的方式封装好了?

banq
2009-05-13 09:34

因为B/S中,他们都是在一个Spring的context容器中,所以,不用IApplicationContext context = ContextRegistry.GetContext(),

但是因为你是C/S,客户端物理位置已经不在Spring的context容器了,不在同一个容器,你是分布式,分离开了。
分布式依赖可以依靠OSGI来解决。

1s2k3y4
2009-05-14 15:28

谢谢你,banq,让我慢慢融入到你们的世界里。。。
开始越来越喜欢这个地方了
我会常来的
[该贴被1s2k3y4于2009-05-14 15:29修改过]

2Go 1 2 下一页