框架:
1是什么:框架就是一套规范。既然是规范,你使用这个框架就要遵守这个框架所规定的约束。在Java开发中,框架是用一套规则+一群jar包来表示的。
2为什么:我们为什么要使用框架?
(1)原因:就好比盖房子,有10个人一起合作盖,此时,框架就好比图纸。如果没有盖房子的图纸,那么每个人都有自己的想法,那么盖出的房子一定不是房主想要的。而有了图纸,就可以约束每个人要怎么盖我们的房子,砌砖的要切成什么样子,方向的门要超南朝北等都被约束了。这样便于团队的合作与开发。放在我们的开发中,如果一个类的名字,A同学起名字叫A.java B同学起名教B.java,可是其实这两个类的功能是一样的,但是就是因为没有规范,所以造成了混乱,不利于团队合作与开发,如果使用了框架,框架就会对类的名字有约束,比如Struts,控制类我们都起名字叫**Action 这样很容易让人看明白功能。
(2)意义:框架不仅仅只完成这些简单的约束,更重要的是,框架为我们封装好了一些冗余,且重用率低的代码。并且使用反射与动态代理机制,将代码实现了通用性。比如如果你说servlet开发,你需要在servlet获取表单的参数,每次都要获取很麻烦,而struts底层就使用反射机制和拦截器机制帮助我们获取表单的值,我们就不用每次都手写那些代码了,简化了开发,当然你必须遵守一些规定来配置。还有比如hibernate,它提供了一些通用性很强的对数据库的增删改差,如果你使用jdbc每次做一些简单的crud的时候都必须写sql,但使用hibernate就不需要这么麻烦了,直接save,update就可以了。。。当然,你还是要遵循其一些规范而配置。同理spring也是如此。
3怎么使用 刚才说了,框架在java中是通过jar体现的。如果使用这个是学习的东西,我也没法讲,但首先你需要把jar导入,才可以使用其“规定”。先写个helloworld。。。慢慢学习。。。
补充-框架的好处和缺点:框架的好处已经说了很多了,便于团队开发,提供了一些现成的机制,简化开发难度,还有些框架可以解耦等,比如spring。缺点就是效率上没有servlet开发高,但是随着硬件的提高,这些也不是什么问题。差异不大,其实如果要求效率的话,servlet+jdbc是最好的,但多方面考虑的话,使用框架更好。
Java里面的框架主要都是web开发用的比较多,以下举例也是这方面的。
我觉得最大的作用体现在两方面:
1)分层。
MVC你应该听说过吧,Struts 1, Struts 2就是MVC思想的代表,把页面跳转控制的代码、逻辑代码分离,从jsp页面上分离出来,代码结构比较清楚,而且大家都遵循同样的规范,看别人代码也比较容易理解。
2)提高效率
注入,IoC, 拦截器这些你不一定用过,但听说过吧,利用它可以封装成一些工具类,处理一些常用的操作,比如输入验证、页面传值、日志输出、国际化等等,Struts2, Spring都用到了很多这样的技术,不用很麻烦的写很多重复代码,这样开发起来效率就高了。 当然效率提高是你先得会这些框架,学习的代价也是一部分。
另外破除一个比较扯的说法,web开发非要用框架,SSH这些框架大多是服务器端的,其实很多时候servlet/jsp完全可以解决所有问题,最多加上常用的el/jstl标记语言,分层的思想要有,但不一定非用框架,学的目的是为了不用它,一开始可以把它先当工具,当你学会了其原理,会发现它有很多弊端,可以试着自己去改进它。
框架就是一套规范。既然是规范,你使用这个框架就要遵守这个框架所规定的约束。在Java开发中,框架是用一套规则+一群jar包来表示的。ssh一般指的是三大框架:Spring、Struts、Hibernate。这三个框架可以到动力节点去学习,我给你讲的这些就是教程里学的一些皮毛。
帮助开发用的,减少冗余代码量,提高开发效率,有的好框架可以使我们只专注业务逻辑代码。
多种多样的框架正是Java世界吸引人的地方。不像C世界中当你需要编写一个应用程序的时候绝大部分工作都需要你自己一点一点来实现。在Java世界中很多的人将有可能重复用到的的东西编写成一组API让你来方便的使用。
那么说道框架(Framework)实际上也是这样的API。它还有一个特点是以“容器”的方式来提供功能。什么是“容器”呢?就拿Struts来说,我们知道一个Java程序的入口是main函数。而一个StrutsAction是没有main函数的,也就是说它不能被直接执行。而是需要通过Struts框架来执行,按照Struts框架的规范execute方法是它的入口。那么我们成Struts框架是运行StrutsAction的容器。实际上JRE也是运行带有main函数的java class的容器。
不同的框架具有不同的用处。Struts框架是MVC容器(具体请参阅MVC概念),Spring框架是IOC容器。而Habernate框架是ORMapping的容器。