关于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了。