ssh学习心得体会.docx

上传人:b****5 文档编号:6807208 上传时间:2023-01-10 格式:DOCX 页数:6 大小:22.42KB
下载 相关 举报
ssh学习心得体会.docx_第1页
第1页 / 共6页
ssh学习心得体会.docx_第2页
第2页 / 共6页
ssh学习心得体会.docx_第3页
第3页 / 共6页
ssh学习心得体会.docx_第4页
第4页 / 共6页
ssh学习心得体会.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

ssh学习心得体会.docx

《ssh学习心得体会.docx》由会员分享,可在线阅读,更多相关《ssh学习心得体会.docx(6页珍藏版)》请在冰豆网上搜索。

ssh学习心得体会.docx

ssh学习心得体会

ssh学习心得体会

  篇一:

在SSH框架中使用Spring的好处(面试总结)

  在SSH框架中spring充当了管理容器的角色。

我们都知道Hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语句。

Struts是用来做应用层的,他它负责调用业务逻辑serivce层。

所以SSH框架的流程大致是:

Jsp页面----Struts------Service(业务逻辑处理类)---Hibernate(左到右)

  struts负责控制Service(业务逻辑处理类),从而控制了Service的生命周期,这样层与层之间的依赖很强,属于耦合。

这时,使用spring框架就起到了控制Action对象(Strus中的)和Service类的作用,两者之间的关系就松散了,Spring的Ioc机制(控制反转和依赖注入)正是用在此处。

  Spring的Ioc(控制反转和依赖注入)

  控制反转:

就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控依赖注入:

组件之间的依赖关系由容器在运行期决定,由容器动态的将某种依赖关系注入到组件之中。

  从上面我们不难看出:

从头到尾Action仅仅是充当了Service的控制工具,这些具体的业务方法是怎样实现的,他根本就不会管,也不会问,他只要知道这些业务实现类所提供的方法接口就可以了。

而在以往单独使用Struts框架的时候,所有的业务方法类的生命周期,甚至是一些业务流程都是由Action来控制的。

层与层之间耦合性太紧密了,既降低了数据访问的效率又使业务逻辑看起来很复杂,代码量也很多。

,Spring容器控制所有Action对象和业务逻辑类的生命周期,由于上层不再控制下层的生命周期,层与层之间实现了完全脱耦,使程序运行起来效率更高,维护起来也方便。

  使用Spring的第二个好处(AOP应用):

  事务的处理:

  在以往的JDBCTemplate中事务提交成功,异常处理都是通过Try/Catch来完成,而在Spring中。

Spring容器集成了TransactionTemplate,她封装了所有对事务处理的功能,包括异常时事务回滚,操作成功时数据提交等复杂业务功能。

这都是由Spring容器来管理,大大减少了程序员的代码量,也对事务有了(来自:

小龙文档网:

ssh学习心得体会)很好的管理控制。

Hibernate中也有对事务的管理,hibernate中事务管理是通过SessionFactory创建和维护Session来完成。

而Spring对SessionFactory配置也进行了整合,不需要在通过

  来对SessionaFactory进行设定。

这样的话就可以很好的利用Sping对事务管理强大功能。

避免了每次对数据操作都要现获得Session实例来启动事务/提交/回滚事务还有繁琐的Try/Catch操作。

这些也就是Spring中的AOP(面向切面编程)机制很好的应用。

一方面使开发业务逻辑更清晰、专业分工更加容易进行。

另一方面就是应用SpirngAOP隔离降低了程序的耦合性使我们可以在不同的应用中将各个切面结合起来使用大大提高了代码重用度

  篇二:

JAVA学习心得

  我也搞了几年JAVA了,由于一向懒惰,没有成为大牛,只是一普通程序猿,不爱玩社交网站,不爱玩微博,唯独喜欢XX贴吧,潜水很久了,手痒来给新人分享下从新手成长为老鸟的已见,也刷刷存在感,应该不比曝照差吧。

  首先初识语法的阶段,必须要学会怎么操作对象,操作if和for,操作listsetmap,然后是线程、IO和jdbc什么的,其余的,若是一时不理解,可以后边需要时再学。

  这阶段完了,你可以写些能在控制台打印出来的小程序,锻炼下逻辑思维。

也就是号称JAVASE毕业了,其实不过是入门而已,如果要往WEB方向发展,这些倒是基本足够了。

  接下来要学HTMLJSPSERVLET数据库JAVASCRIPTTOMCAT,目标,写出第一个动态网站,也许只是个登陆功能,只能展示下个人资料,但这是很重要的一步,你要弄清楚的是,一个用户的点击产生的请求,是从哪里发起,哪里接收,哪里处理,哪里返回,你得理解浏览器和服务器的关系和分工,cookie和session,request和response。

这个是个WEB开发的学习初级阶段,这都是些JAVA诞生以来最原始的最官方的WEB开发技术,当然现在真正的项目很少直接采用这些技术了,为了不断提高技术的易用性、开发效率和可维护性、可扩展性,无数开源项目都是在这些原始技术的基础上封装、改进。

所以这个阶段不要盲目乐观地跑去找工作或者对实习挑三拣四,你会被打击到的。

  好,初始阶段完成,开始进入WEB开发的正题,首先是传说中的三大框架,strutshibernatespring成为熟练的增删改查程序员是必须的,在这个阶段你还要理解为什么要用这仨而不是那些JSPSERVLETJDBC,你要体会到写MVC、三层架构的好处。

这个阶段不要轻易质疑三大框架的价值,也许刚开始你会觉得麻烦,觉得他们有时候是多此一举,一两年后回过头来你会觉得少了这些框架你已经很难干活了。

这个阶段还要避免的心态是能熟练地增删改查了,就认为写程序不过如此,然后往简历上填个精通,这也是新手面试被批得体无完肤的原因之一。

如果你学得好,这会应该能熟练地写个博客啊,小论坛啊之类的WEB项目了,也就是达到了就业的基本要求。

  接下来就没有固定模式了,你的第一家企业对你的影响会很大,我见识过烂企业是如何毁新人的,用着设计恶劣的架构,老掉牙的技术,不断地耽误新人的成长,有的员工在这种企业一呆数年,思维已经完全被错误观点定型,深陷于公司业务和老系统中疲于奔命,看似能解

  决问题,却无法给公司带来真正的进步,就像一个用了数年砍刀的人,就算再熟练,刀法再好,也打不过用枪的。

如果离开了这个公司,恐怕很难在这个行业再立足。

记得有个说法很好,一个人用10年的时间重复做头一两年做的事,你的真实工作经验其实还是一两年。

烂公司的老员工就是如此。

在这头一年里,定个标准吧,你应该能做到的有:

  1、把一些常用的琐碎技术学会了,比如xml的作用和实际运用,如何操作文件,如何运用日志,如何简化封装常用的工具类,比如日期操作、编码处理、分页模块等等,这些小东西会占用你大量的时间去处理摸索。

  2、把数据库用好。

数据库不是会增删改查就可以了的,你要关注事务设置是否合理,是否有可能产生脏数据,是否要动用乐观锁悲观锁等等,重要数据出了错,无论是技术上还是业务上都是很麻烦的事。

  3、懂得什么是集群,什么是分布式,懂得怎么向别的系统发请求,交换数据,webservice。

  4、如果你也写页面,你要会用JAVASCRIPT,不一定要很深入,你可以用JQUERY代替,做到无刷新的页面操作以及AJAX请求。

  第一年能达到这个程度,你绝对已经在平均水准之上了。

在我达到这个水平时,我有种似乎一切网站开发都不在话下的感觉,当然后来我很快就发现了我还差得太远太远....这个阶段想面个高薪的工作还是很难的,只能说达到温饱线了,不用为柴米油盐发愁。

  下一个阶段,你应该考虑你的代码质量了。

  1、多线程和异步、并发的概念会忽然变得很重要,因为在一个对性能有要求的系统里,是不会允许你把各种琐事都排着队一件件去办的,你不能老写些a方法调b方法再调c方法再调d方法然后返回的代码。

你开始想起有队列这种东西,有runable这种东西,你开始觉得自己的代码高端起来了,和当年的增删改查程序员有天壤之别。

但同时麻烦也来了,你开始遇到线程安全问题,尤其是当你的程序跑在一个多机环境而不是单机环境里的时候,你会对这些很头痛。

对于这些问题,Jms技术是个很有代表性的东西,当然并不像ssh那么常用。

  2、你会发现数据库性能实在不行,出于不甘现状,或者赶时髦,你该去了解nosql了,memcachedredismongodb,眼花缭乱,没关系,试着用用,能很好地缓解mysql之类关系数据库的压力。

  3、出于公司某些业务需要,你可能会钻研一个特定技术领域,比如全文搜索技术,

  lucene\solr,比如工作流jbpm,比如权限系统,单点登陆之类的,又或者某些特定业务领域的算法研究,这些是你的加分项。

  4、你开始发现你的代码很乱,久了以后自己都看不懂,重复的,难以重用的代码堆积如山,不想维护,BUG百出。

于是你要开始重视设计模式,合理地改造下自己的代码习惯,不再被僵化的SSH,MVC三层架构束缚住。

  5、Google和各种资料是你进步的动力,极少再遇到必须请教别人才能解决的问题,如果你这个阶段还老是问别人,你的技术生涯也就快到头了。

  这个阶段,如果你的交际和自我推销能力不是太差,你的收入将是白领水平,至少接近了。

  我觉得多数程序员在工作多年之后都能达到这个水平,有的人只需要两年,有的人却要用上五六年,在这个阶段落伍的人,有的是出于天赋和思维所限,有的是出于对技术缺乏热情,有的是出于工作内容的制约。

等到年近中年,再也拼不过年轻人,被淘汰出局,只能在自嘲为屌丝和码农的无奈中黯然转行。

  这是个很重要的分水龄,你能不能继续进步,能不能在30岁以后继续从事技术工作,能不能在公司里独当一面,我觉得就看你能不能超越这个阶段了。

我前面提到的烂公司里的工作数年的项目经理,连这个层次都还没达到...

  接下来又是个全新的阶段。

  1、你要读读优秀开源项目的源码,你要搞懂一些当年不懂的基础知识,你开始理解thinkinginjava的精髓,你能写一些底层的代码,有时还会觉得自己封装的比某些开源工具更好用更简单。

  2、WEB的难点和重点永远都在于性能、负载能力上,而现在网络的发达造成了数据量和操作密度的大大上升,硬件却没有相应的进步,你得试着更好地运用更多的服务器来协同工作,从WEB端到服务端到数据库,全都需要集群,需要分布式,需要合理的控制数据的流向,掌握好网站上下,一大堆机器的平衡,找出性能的瓶颈,找出稳定性和安全性的瓶颈,硬件出现故障,第三方技术出现错误,将被当成家常便饭融入到你的系统和代码里仔细考虑。

  3、开始觉得方案无比地重要,一将无能累死千军将不断应验,一个不好的设计,一个不好的方案,会让一群优秀的程序员工作成果大打折扣。

你要关注架构知识,不能再满足于SSH三层架构到底。

领域驱动设计,面向事件开发,敏捷开发等等一系列的思想在关键时刻能决定你项目的生死,这个阶段不再有标准范例让你照抄,你只知道思想和原理,实践却需要自己不断尝试和改进。

  4、多关注各种杂七杂八的开源技术,有些你可能前面已经接触过了,和通信有关的,和集成开发环境有关的,和架构有关的,各个领域你都应该能信口说上几个主流技术,虽然你可能只是听说过,了解,但关键时刻你得知道如何去选择技术,并快速掌握它。

你还会去考虑尝试下别的语言,这里不是说转向什么C++C#之类的,那和JAVA程序员不相干,我说的是一些运行于JVM之上的语言,比如scala和groovy,初识他们时你会觉得java真的老了。

但当你回到一个综合性的大型项目中,又会觉得java积累下来的整个体系技术是如此完善,就像一个工业化标准一样。

  你能把这个阶段实践好,胜任项目经理,乃至中小公司的技术总监都是可以的。

  不知不觉写了这么多了,以上是我个人眼里的一般向JAVAEE发展线路,限于篇辐也不全面,实际个人成长路线可能因为工作内容的不同差异会很大,有的人偏向了底层研究,有的人偏向了业务需求设计,有的带有浓重的行业色彩,而且技术之外,还有很多知识也很重要.w做JAVA没有轻松的方向,但一个对技术抱有兴趣的人,走到这一步时,仍然会对开发抱有

  热情,想要写出好的项目。

纯为了生计而工作的程序猿是走不到这一步的。

  暂且收手,希望以上能让J8的新人们了解将来要面对的大致状况,同时也抱着打击下小朋友们幼小心灵的邪恶心理就此按下发表按钮。

  能完整看完的同学,在此表示钦佩,我想当年的我也未必能看完这种又臭又长的叙述...

  1、对象的初始化

  

(1)非静态对象的初始化

  在创建对象时,对象所在类的所有数据成员会首先进行初始化。

  基本类型:

int型,初始化为0。

  如果为对象:

这些对象会按顺序初始化。

  ※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。

  构造方法的作用就是初始化。

  

(2)静态对象的初始化

  程序中主类的静态变量会在main方法执行前初始化。

  不仅第一次创建对象时,类中的所有静态变量都初始化,并且第一次访问某类(注意此时未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化。

  2、继承时,对象的初始化过程

  

(1)主类的超类由高到低按顺序初始化静态成员,无论静态成员是否为private。

  

(2)主类静态成员的初始化。

  (3)主类的超类由高到低进行默认构造方法的调用。

注意,在调用每一个超类的默认构造方法前,先进行对此超类进行非静态对象的初始化。

  (4)主类非静态成员的初始化。

  (5)调用主类的构造方法。

  3、关于构造方法

  

(1)类可以没有构造方法,但如果有多个构造方法,就应该要有默认的构造方法,否则在继承此类时,需要在子类中显式调用父类的某一个非默认的构造方法了。

  

(2)在一个构造方法中,只能调用一次其他的构造方法,并且调用构造方法的语句必须是

  第一条语句。

  4、有关public、private和protected

  

(1)无public修饰的类,可以被其他类访问的条件是:

a.两个类在同一文件中,b.两个类在同一文件夹中,c.两个类在同一软件包中。

  

(2)protected:

继承类和同一软件包的类可访问。

  (3)如果构造方法为private,那么在其他类中不能创建该类的对象。

  5、抽象类

  

(1)抽象类不能创建对象。

  

(2)如果一个类中一个方法为抽象方法,则这个类必须为abstract抽象类。

  (3)继承抽象类的类在类中必须实现抽象类中的抽象方法。

  (4)抽象类中可以有抽象方法,也可有非抽象方法。

抽象方法不能为private。

  (5)间接继承抽象类的类可以不给出抽象方法的定义。

  6、final关键字

  

(1)一个对象是常量,不代表不能转变对象的成员,仍可以其成员进行操作。

  

(2)常量在使用前必须赋值,但除了在声明的同时初始化外,就只能在构造方法中初始化。

  篇三:

SSH框架学习--经典

  1开发环境

  ?

  ?

JDK

  ?

JavaEE

  ?

  ?

  ?

  ?

  2为ssh做好准备

  下载包

  ?

包下载:

  p>  ?

  oFullDistribution:

(110mb)[PGP][MD5]

  ?

包下载:

  

  ?

下载:

  /retype/zoom/cdc8aef8c8d376eeafaa3107?

pn=2&x=0&y=0&raww=444&rawh=446&o=png_6_0_0_191_337_499_502__&type=pic&aimh=446&md5sum=1d1c9adad4dc2056dca2090ff0424077&sign=655d9c8188&zoom=&png=0-39528&jpg=0-0"target="_blank">点此查看

  javaee

  点击Finish完成,建好的工程如图:

  如果你的myeclipse还没有配置一个web服务器,那就进行下面的步骤,这里以tomcat6为例:

  打开MyEclipse?

Preferences

  窗口,展开目录树如下图:

  设置好你的tomcat6的路径即可,前提你要先安装好tomcat哦。

还有需要注意的一点是,看到目录树下面的JDK了吗?

点击它,也要把tomcat的JDK设为才行,以与myeclipse一致。

  好了,工程已经建好了,下面就开始配置struts吧。

配置之前先把struts的包下载下来哦,下载地址上面已经给出了。

  3配置

  基础配置

  1)引入Struts必需的五个jar包。

下载解压后,\lib目录下是struts所有的相关jar包。

这么多jar包并不是struts必须得,使用struts只需要把下面五个引入即可,以后用到什么jar包,再引入。

  ?

  ?

  ?

  ?

  ?

  2)修改WEB-INF下的文件,增加struts2的配置。

增加代码如下:

这些配置代码对于struts2是不变的,直接复制到即可。

    >

  struts2

  

  

  

  

  struts2

  /*

  

  

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1