该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2006-02-15
Tin 写道 不好意思,先看看robbin推荐的文章。
不过,我想问一下: 我使用了Spring的HibernateDaoSupport,如果不给bean配置一个transaction就会报Not able to obtain connection错误: http://forums.hibernate.org/viewtopic.php?t=945337&highlight=&sid=cff435dde0e8b0287c67ff436d894445 因为我们现在在做的Web项目没有service层,所以如果不把transaction配置到action,则只能配置到DAO了,这样似乎也没有意义。因为Hibernate已经有了transaction控制了。 而且,除了这两个地方,没有用到Spring AOP的地方了么? Acegi我倒是不在乎,因为Webwork有Inteceptor,方便作security。 还是必须有Service层的,DAO层倒不是必须的。 Spring AOP老实说我没有在应用项目中使用,不过考虑到AJAX Web Remoting,会跨过webwork直接调用spring bean,这时候spring AOP就派上用场了。 |
|
返回顶楼 | |
发表时间:2006-02-15
robbin 写道 引用 robbin的意思是设置了webwork.objectFactory=spring后,webwork的action不要交给spring 的 bean容器管理就可以拿到service了? 也就是所有的action还是直接在xwork.xml里面定义?还是我理解上面的偏差呢?
对的,不需要在spring里面做任何配置。action直接定义在xwork.xml里面照旧,只要加一句webwork.objectFactory=spring,Service就自己来啦~ 晚上回来试了一下,确实可以。不过下午在公司没有注意想到一个问题,就是静态注入一个属性不知道xwork里面怎么配置实现? 比如说 在我的action里面有一个属性叫functionID 有一个对应的setFunctionID() 方法,我现在想在配置文件里面静态的织入functionID的值,我应该怎么样设置呢?还是再次回到spring里面去配置呢? |
|
返回顶楼 | |
发表时间:2006-02-16
lingcm 写道 比如说 在我的action里面有一个属性叫functionID 有一个对应的setFunctionID() 方法,我现在想在配置文件里面静态的织入functionID的值,我应该怎么样设置呢?还是再次回到spring里面去配置呢? <action name="blah" class="com.blah.blahAction"> <param name="functionId">110</param> ...... |
|
返回顶楼 | |
发表时间:2006-02-16
<action ......>
...... <param name="functionID">xxx</param> </action> 声明functionID为action的一个属性,给一个set方法就拿到了。 |
|
返回顶楼 | |
发表时间:2006-02-16
robbin 写道 还是必须有Service层的,DAO层倒不是必须的。 Spring AOP老实说我没有在应用项目中使用,不过考虑到AJAX Web Remoting,会跨过webwork直接调用spring bean,这时候spring AOP就派上用场了。 我们封装一个不错的BaseDAO实现,所以DAO层实现的比较容易。如此我们这个小项目里面Service倒是不全部有的,只有需要的时候才有。但是如此使用HibernateDAOSupport时的事务封装就只能转到DAO层了,没有意义呀。 AJAX Web Remoting的security不容易搞吧。如果用url的方式倒是还好,如果用XMLHttpRequest就难了吧,是不是只能用Container的security了? 还有SpringProxyableObjectFactory如何配置到Webwork呢?这个性能似乎不错。 帖子里面有些结论上下文没有强调,所以结论倾向性不太对,我修改一下 |
|
返回顶楼 | |
发表时间:2006-02-16
Tin 写道 还有SpringProxyableObjectFactory如何配置到Webwork呢?这个性能似乎不错。 改一下WebWorkSpringObjectFactory类的继承关系,重新打包! 其它配置不变! WebWorkSpringObjectFactory extends SpringObjectFactory implements ObjectFactoryInitializable WebWorkSpringObjectFactory extends SpringProxyableObjectFactory implements ObjectFactoryInitializable |
|
返回顶楼 | |
发表时间:2006-02-16
哈哈,居然又发现Trasaction配置方式:
<bean id="autoProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator" dependency-check="none"> <property name="proxyTargetClass"> <value>true</value> </property> <property name="interceptorNames"> <list> <value>transactionInterceptor</value> </list> </property> <property name="beanNames"> <list> <value>com.wqh.action.XinfangNewsAction</value> </list> </property> </bean> 直接用完整类名进行AOP。这样不需要在Spring中配置XinfangNewsAction的bean也可以使用声明性事务。 我不是不同意robbin的不要给Action配transaction的建议。只是发现其实webwork autowire以后其还是可以使用Spring AOP进行声明性事务,哈哈。 |
|
返回顶楼 | |
发表时间:2006-02-18
对于ww和spring 的问题,我看最理想的状态就是ww扩展一个ww自己专用的 spring xmlHandler,在spring的xml中:
<ww:action name="XXXX" class="asdasd"> <bean XXXXX/> </ww:action> |
|
返回顶楼 | |
发表时间:2007-07-06
robbin 写道 lingcm 写道 robbin 写道 为什么要用spring去配置webwork的action呢? 使用spring配置webwork的action可以很方便的将action里面要用到的service直接注入进去。 就这一点就可以让我换成spring管理action了,不知道robbin现在是怎样在action里面获取service的呢? 看来你还不知道有更简单的用法: 在webwork.properties中加入如下配置内容 webwork.objectFactory=spring 然后就OK了! Action需要什么Service,定义一个set方法,就自动拿到了。 我现在就是这么做的,很方便,但我还有一点不清楚,那我的service中,如果要注入dao,该怎么配啊? |
|
返回顶楼 | |