日期:2014-05-19  浏览次数:20654 次

采用SSH框架进行web开发的问题
使用MyEclipse进行开发,对数据库表采用hibernate的逆向工程生成DAO文件,并且在applicationContext.xml中的配置自动生成。 创建一个Service类操作DAO进行具体业务的操作, 又创建Control类进行控制,并且在其中调用Service类,最后就是Action调用该Control。  我想问的是我必须要在applicationContext.xml中挨个配置Service, Contorl , Action 吗?也就是说action中要使用依赖注入,也必须交由Spring托管,而不能在中间程序中实例化Control,进而在Control后面再使用依赖注入进行操作。   

表述的很不地道,就能说这么清楚了,还请大侠耐心的给看看。

另外采用了SSH框架后,对多线程操作有特殊的要求吗?
Struts Spring Hibernate SSH 多线程

------解决方案--------------------
因为你的Service里面的属性userDAO没有实力化,所以需要在spring的配置文件中去配置bean
<bean id="service" class="Service" ...>
  <property name="userDAO" class="UserDao"/>
</bean>
这样的话,只要保证其它的地方不出错,是不会报空指针

还有既然楼主要用依赖注入,那么最好所有的地方都用依赖注入,否则spring还有什么意义呢。如果楼主一定要用配置文件的方式来注入的话,action,control,service,dao层都要在配置文件中进行配置。这样比较麻烦,建议楼主可以用一下spring的注解功能annotation。这样配置bean就简单多了,只需要在需要配置的类上面添加一个注解,和在需要注入的属性上面添加一个注解就搞定了,楼主可以去学习一下。
------解决方案--------------------
你所谓的“在中间程序中实例化Control,进而在Control后面再使用依赖注入进行操作”前半句可以,至于后半句,人家已经把Service注入到了你配置文件里声明的Control里,而不是你自己new出来的Control里。

你要想用一半的注入,就自己去找到Spring的文件,在Control里创建Spring的工厂类,自己getBean,直接使用。