首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于SSH程序的一些简单疑问,该怎么解决

2012-01-22 
关于SSH程序的一些简单疑问开始是struts2+hibernate3的程序,运行良好,现在学习spring,加入了spring,但是觉

关于SSH程序的一些简单疑问
开始是struts2+hibernate3的程序,运行良好,现在学习spring,加入了spring,但是觉得spring太抽象了,不如前面两个框架好理解,现在程序整合了spring,不太了解spring配置里的bean作坊,能解释一下下么?虽然程序可以完美运行,但是都是凭感觉结合例子各种调试改好的。。。 唯一的感觉就是 S+H 的时候, DAOImpl里的方法太复杂了,现在代码简单多了,呵呵,如:hibernateTemplate.save(user) ;

代码如下:


XML code
    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">        <constructor-arg ref="sessionFactory"/>        </bean>    <bean id="dao" class="com.dao.impl.SNewsDaoImpl">        <property name="hibernateTemplate" ref="hibernateTemplate"/>    </bean>    <bean id="service" class="com.service.impl.SNewsServiceImpl">        <property name="dao" ref="dao"/>    </bean>        <bean id="SNewsAction" class="com.action.SNewsAction">        <property name="service" ref="service" />    </bean>    



action :

Java code
 SNewsService service;        //采用模型驱动    private SNews model=new SNews();//用于封装会员属性模型    public SNews getModel() {        return model;    }        //存放会员列表数据    List<SNews> newsList;    //存放action之间的提示信息    String actionMsg ;        /** 处理浏览请求 */    public String listNews(){        if (LOG.isInfoEnabled()) {            LOG.info(CLASSNAME + "**********所有信息方法开始********");            }        newsList = service.allNews();        return SUCCESS;    }




DAOImpl:

Java code
        public List allNews() {            return hibernateTemplate.find("from SNews order by news_id" ) ;        }



还有什么 AOP , 注解 ,这些怎么用呢? 我程序里现在感觉只封装了hibernate,简化了DAOImpl的方法,。


[解决办法]
如果考虑到了系统维护和修改,可以写个通用的dao
[解决办法]
用熟了在看原理 就清晰了
[解决办法]
spring你现在用到的只是他一些简单的东西,他的核心思想是AOP
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<constructor-arg ref="sessionFactory"/>
</bean>
可以简单理解成和工厂模式差不多,不用你手动的在去new一些东西,而是通过spring,他来负责管理你的对象,你需要对象时他给你new,这里的配置就是告诉他哪个类需要他负责管理
STRUTS2负责V和C
HIBERNATE 负责m 也就是数据持久化
使项目的层级更加分明,简化了开发,但从效率上来说,比传统的mvc要慢很多
[解决办法]
我用的简单理解是 不用再CLASS里面new其他类 而是在application。xml里面配置 就能直接调用了
个人理解 仅供参考 有误请纠正
[解决办法]
我们也刚学完这几个框架 跟你有差不多的感受 spring是简化了 代码 但是我在想 这段时间给我带来的不是
春天 而是冬天了
[解决办法]
spring配置里的这bean作坊,就先理解它是在解耦吧。action、service、dao 他们之间的耦合不再是写死在你代码里的了,而是在spring里配置的。这点可能在实际的应用中,遇到项目需要各种修改的时候就会有体会了。
还有上面大侠说的aop,做一些类似拦截器的东西,你的诸多bean都不需要进行植入任何代码的。非常强大的。
可能你目前还只是了解spring如何配置,如何让程序跑起来,慢慢来吧。
[解决办法]
不需要在类里重复NEW一些DAO了。

热点排行