http://shiyangxt.cnblogs.com
最近搞了一下SSH,首先是因为SSH还不熟,只是大一暑假时搭建过一次,后来就一直没有搞,暑假那次还是在视频的指导,
和其他人的指点下完成的。原理和思想也不清楚。毕竟当时J2EE刚入门,再加上我们中心的一贯作风,“不求甚解,实现至尚”的原
则。所以一说起SSH,自己就非常心虚。毕竟自己不懂原理,只会搭个壳,也没搞过项目,没有实践的积累。终于在手头的助学网后台
功能全部over而页面一直没有音讯的情况下,抽出了时间把SSH着实巩固了一番。咳~~~还觉得基础还是不够好。一个框架都搞不透。
经过连续几天断断续续的吐血下,终于算是征服了SSH。
******************************************************************
切入正题,SSH就是struts1.0与Hibernate由spring解耦合。
SSH分三层,web层(struts),业务逻辑层,数据库操作层(Hibernate)。SSH是J2EE中应用最为广泛的系统级开发框架。
因为它的易于维护和拓展,使得SSH得到广泛的应用。
SSH的精髓在于spring的管理。
******************************************************************
常见的SSH层一般分为7层:
dao层(数据库接口),daoimpl层(数据库操作实现类),vo层(POJO类,数据库实体类),service层(业务逻辑层接口),
serviceimpl层(业务逻辑实现层),action层(web逻辑处理层),form(表单处理层)。
struts开发项目由来已久,可以说是实现MVC的最早的完善框架。但是技术一直在发展与进步,以至于现在渐渐的已经被更实用的
框架取代,例如struts2(webwook+struts的结合),JSF......之类,这些框架会更好使,更加合理,开发会更easy。但是如果说发展的
成熟度,其实这些新兴框架,也足够完善。起码struts2已经可以很好的开发。从而也就有了我之前的随笔《struts2+spring+Hibernate搭建全解》
。其实前段用哪个框架也不是固定的。
Hibernate是数据库持久化的框架,是我们从以往的操作数据库转变为操作对象。更利于面向对象编程。而且也对数据库操作进行了封装。
优化了sql语句,异常抛出,开闭连接等等。可以说是非常完善的底层框架。spring对Hibernate注入的操作和方法。也更加方便了操作。但是我并
不主张,让spring过多的注入Hibernate,因为spring的诞生就是解耦的。使web层,与数据库底层操作分离。这样把业务逻辑分离出来。便于扩展
新功能或删除不用的功能,或着移植代码。是在MVC模式把美工(UI设计)和后台编程分离来后的又一大革新。使程序员面向接口编程。把后台的
开发也完美的分离。对于小型的项目来说也许并不意味着什么。但是对于中大型项目来说,节省了大把的开发成本。
spring就是SSH的画龙点睛之处。spring的精华在于反射机制。偶不得不赞叹
spring的两个核心AOP(面向切面编程),IOC(依赖注入)十分的帅。这两个思想,体现在spring的XML配置文件之中。 其中的依赖注入
是由Bean实现,从而实现面向切面编程,事务的管理。ACEGI(security)(权限验证框架,有待偶的进一步研究)框架中体现就明显。
******************************************************************
废话也不想多说,直接说SSH思想和特点:
1.除了实例化POJO对象需要new对象以外实现impl不再需要new对象,一切都是getBean读取配置文件spring配置文件。
2. 解耦web层与数据库操作层。
3. 利用反射动态获取所有类信息。
4. 对数据库的操作对象化,除了取出单独字段和查询外,尽量使用数据库实例化对象,尽量不使用HQL语句。
******************************************************************
我在刚开始SSH搭建的过程中总是遇到空指针。这就是由于我的思想还停留在struts+Hibernate层面,没有理解SSH的思想。
这样的话,我的这路实现操作与spring根本不同路,而Hibernate又是通过spring配置的。所以当然数据库操作会报空指针的错。
这个困扰我很久。然后就是什么样的分层才是最帅的最合理的。
最终借鉴网上的一些思想和师兄的开发心得,我终于有了自己的实现分层思路。
******************************************************************
最初是打算一个DAO包括所有数据库操作接口。一共20个接口:这套接口是非常成熟且实用的。包括:
增删改查,动态查询,高级搜索,分页实现,动态分页。 这是传说中的BaseDao(当然你也可以叫别的名)。
然后一个BaseDaoImpl实现类。接着是业务逻辑层,和web层。除了这个基类Dao外不再有其他的数据库操作类。
这样业务逻辑层就变得臃肿。其中既有HQL,又有对象的实例化。但是我的想法是本着分离两层,以后功能扩展修改
直接通过修改业务逻辑层一个层和web层。这样就可以少维护一个层。但是后来师兄的心得使我改变了想法。
******************************************************************
师兄的项目是除了BaseDao接口外又新建了其他的数据库操作接口。然后全部实例化操作。让这些子接口继承BaseDao接口,
,但是这样就和我一开始的想法有点冲突。但是实事证明,这样有好处。就是HQL,对象实例化都在DaoImpl里,业务层专注实现
业务,根本不考虑底层操作。也没有乱七八糟的HQL语句。如果修改业务,那么DaoImpl也不用动。毕竟这些方法也不会占几百MB
代码的项目多大地儿。留着呗,说不好以后有用呢。感觉这个方法就是我假期做东西的思路。
******************************************************************
最终我决定使用一个折中的方案,一个BaseDao,多个DaoImpl实现类。因为Dao子接口基本和service层接口一致,所以如果
再写一遍,总觉得是多余。所以就不写了,这套DaoImpl注入BaseDao的实现类方法,并且自己也继承HibernateDaoSupport,
以方便使用泛型或者更灵活的操作数据库对象。一个BaseAction封装并重用getBean等spring与struts的action整合的类。
一个BaseService接口当然也不是必须的,负责业务实现中的对象创建与获取,一个BaseServiceImpl也不是必须的,实例化BaseService
接口。
******************************************************************
分享到:
相关推荐
在日常的开发和使用中,我们经常需要借助各种小工具来提高工作效率,例如快速启动常用的应用程序、管理文件等。一个简单但功能强大的集成工具箱可以帮助用户快速访问、启动并管理程序。今天,我们将以Python为基础,结合Tkinter和Win32API,开发一个类似Windows快捷方式的工具箱应用,能够让你轻松集成各种常用程序并一键启动
django自建博客app
《基于YOLOv8的智慧校园实验室高压灭菌锅安全联锁系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
用于hifi测序数据的基因组组装程序
Microsoft Access 2010 数据库引擎可再发行程序包AccessDatabaseEngine-X64解压后的文件AceRedist
从大模型、智能体到复杂AI应用系统的构建——以产业大脑为例
自然语言处理之TF-IDF算法与TextRank算法的缠绵_textrank,tf-idf和两者的组合-CSDN博客.html
内容概要:2023版《科学智能 (AI4S)全球发展观察与展望》阐述了AI for Science(AI4S)在全球范围内的最新进展及其对科学和工业的深远影响。文章首先回顾了AI4S在过去一年中的快速发展,特别是在药物研发、材料科学、地质学、污染治理等多个领域的应用实例。AI4S通过结合深度学习、机器学习和其他AI技术,加速了从基础研究到实际应用的转化过程。例如,在药物研发中,AI4S帮助科学家克服了“反摩尔定律”的挑战,提高了新药研发的成功率;在材料科学中,AI4S实现了复杂材料的高效模拟,如人造钻石、石墨烯、碳纳米管等;在地质学中,AI4S通过模拟地球内部结构和物理过程,为地震学研究提供了新视角。此外,文章还探讨了大语言模型(LLMs)与科学方法的结合,指出LLMs不仅能辅助科学研究,还能生成新的科学假设并进行逻辑推理。 适合人群:具备一定科研背景或对AI技术感兴趣的科研人员、工程师、政策制定者及高校师生。
这个数据集包含了日常步数统计、睡眠时长、活跃分钟数以及消耗的卡路里,是个人健康与健身追踪的一部分。 该数据集非常适合用于以下实践: 数据清洗:现实世界中的数据往往包含缺失值、异常值或不一致之处。例如,某些天的步数可能缺失,或者存在不切实际的数值(如10,000小时的睡眠或负数的卡路里消耗)。通过处理这些问题,可以学习如何清理和准备数据进行分析。 探索性分析(发现日常习惯中的模式):可以通过分析找出日常生活中的模式和趋势,比如一周中哪一天人们通常走得最多,或是睡眠时间与活跃程度之间的关系等。 构建可视化图表(步数趋势、睡眠与活动对比图):将数据转换成易于理解的图形形式,有助于更直观地看出数据的趋势和关联。例如,绘制步数随时间变化的趋势图,或是比较睡眠时间和活动量之间的关系图。 数据叙事(将个人风格的追踪转化为可操作的见解):通过讲述故事的方式,把从数据中得到的洞察变成具体的行动建议。例如,根据某人特定时间段内的活动水平和睡眠质量,提供改善健康状况的具体建议。
框架结构天城商业办公楼5200平米(建筑图 结构图 计算书 开题报告 任务书 文献翻.zip
柴油机连杆加工工艺及夹具设计.zip
读书网首页的HTML信息
文字渐变颜色代码生成器:让文字绽放多彩魅力,演示:在信息交流日益丰富的今天,个性化的文字展示成为吸引目光的关键。这款文字渐变颜色代码生成器,便是为满足这一需求而生的绿色软件,无需安装,便捷实用。 它的操作极为简便。用户只需在软件界面中输入想要转换的文字内容,接着从丰富的色彩选项里挑选心仪的起始颜色与结束颜色,随后轻轻按下 “转换按钮”,神奇的事情就此发生 —— 适用于论坛、网页、QQ 空间等多种平台,以及自定义格式的渐变颜色代码便会即刻生成。不仅如此,生成的代码还能自动复制到剪切板,极大地节省了用户手动复制的时间。当你在论坛回帖、更新网页内容或是装扮 QQ 空间时,只需轻松粘贴代码,原本单调的文字瞬间就能拥有绚丽的渐变色彩,瞬间脱颖而出,为你的表达增添独特魅力,让文字不再平凡,轻松成为视觉焦点。 一款可以轻松把一段文字生成渐变颜色代码的绿色软件,当你在软件中输入完要转换的文字后,只需要挑选自己喜欢的起始颜色、结束颜色后,按一下―转换按钮即可生成相应的论坛/网页/QQ空间以及自定义格式代码,并且代码可以自动复制到剪切板中,回帖时直接粘贴代码即可不错得文字代码生成器,让你得文字更加漂亮.
1.【锂电池剩余寿命预测】Transformer锂电池剩余寿命预测(Matlab完整源码和数据) 2.数据集:NASA数据集,已经处理好,B0005电池训练、B0006测试; 3.环境准备:Matlab2023b,可读性强; 4.模型描述:Transformer在各种各样的问题上表现非常出色,现在被广泛使用。 5.领域描述:近年来,随着锂离子电池的能量密度、功率密度逐渐提升,其安全性能与剩余使用寿命预测变得愈发重要。本代码实现了Transformer在该领域的应用。 6.作者介绍:机器学习之心,博客专家认证,机器学习领域创作者,2023博客之星TOP50,主做机器学习和深度学习时序、回归、分类、聚类和降维等程序设计和案例分析,文章底部有博主联系方式。从事Matlab、Python算法仿真工作8年,更多仿真源码、数据集定制私信。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
Android项目原生java语言课程设计,包含LW+ppt
配套文章:https://blog.csdn.net/gust2013/article/details/146909670?spm=1001.2014.3001.5502
《基于YOLOv8的智慧社区儿童游乐设施安全监测系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计