springMVC的一些学习

来源:互联网 发布:陕西广电网络覆盖 编辑:程序博客网 时间:2024/06/09 11:20
进项目组一周有余了,基本框架springMVC和freemarker有了一定的了解,虽然还不能独立写出代码,但模仿被人写的代码也有余力了。当初想着先学js是多么的弯路。
    实事证明,这一行一定是要实践的,必须动手打代码,动脑想代码,不为余力的修改代码。
    阅读别人的代码是一件很蛋疼的事,尤其是没有写注释的,可是自己也不想写。哈哈,可能就是ITcoder们唯一能偷懒的地方了。不过还是写注释好,养成这个习惯。

MVC框架的理解

    这是一个三层架构,M--Model 模型,V--View视图,C--Control 控制器。
最深刻的理解就是这个架构大大的改变了代码的耦合性。
   以前我所写的代码,即使是分了包,按类别来分类,还是会被一个程序的代码所弄得一塌糊涂。
程序写到后面,你就根本不知道哪个类引用了哪个类。
如果,到后面需要修改某一个类的属性或者添加一个属性或者其他什么修改,我们就不得不对每一个引用这个类的其他类做出相应的修改。这是一件很蛋疼的事。
即使只修改一个初始化的函数,一轮下来也够呛的。

    而MVC框架就解决了这个问题。我们知道每个基本类只需要编写自身所有私有属性的public setter和getter方法即可被别的类所引用。
当时MVC中,我们不需要再写引用类属性的初始化函数,而是交由一个XML文件来实现。
XML文件实现了这个类的自动初始化(autowire)的映射关系。
SPRING技术中叫做依赖注入。
也就是说,当类A拥有类B这个属性时不需要编写类B的初始化函数,在程序启动时,程序根据XML文件的映射关系自动查找类B的定义,并使用类B内的setter方法来自动初始化。参数来源一般是数据库查询所得到的。
这样子,类A和类B之间就实现了代码的隔离,也就是类B的修改不会引起类A的修改,只需要修改映射文件即可。
实体类之间的耦合性大大减低,在后期的代码维护也好,修改也好,帮助可不是一般的。

每个实体类的映射,在MVC中叫做bean,Spring利用各种bean的来组成程序的框架

      而hibernate这个和数据库打交道的技术也是利用bean来提高了代码的的重用。
想想,只要我客户端中的实体类和数据库的表一一对应,那么我在执行查询操作,或者其他数据库的DML语句,我就可以利用这个映射关系写一个或者几个函数接口即可完成这些操作。比如说我要实例化类A,那么我知道给一个实体类id给hibernate,它就知道我需要哪一个具体的例子,这样子不是很方便吗?
     这些bean的方式也叫做工厂方式,很明了,只要我给一个参数,这个工厂就可以给我生产我想要的东西。当然,前提是我们要把这个工厂配置好,也就是把映射工作做好。很多次,bean的初始化失败都是配置文件出错。
所以,以后写配置文件的时候一定要小心。
     
如果说类是把数据和数据操作分离开来的话,那么bean方式就把类分离开来。一个类的修改,只要我们也相应的修改了映射问价,我们就不用担心这个类会影响到其他类的调用。这个中间间技术用很多,比如专注于数据库层的hibernate继续,表现层的struts,spring技术等,都是利用了这个核心思想。

      bean方式把代码从耦合性中解救了出来,当时一个工程这么多组件,我们要用到MVC这个架构思想。每一层只负责该层的东西,一层调用另一层的功能。

总结一下

    Model负责数据的模型化,也就是保存数据。可以用到mencached等内存技术。
     View表现层,可以理解为数据的操作。也就是函数和html等(web中);
     Control可是整个工程的监管者,控制着,链接表现层和后台的响应。比如说表现层需要一个跳转到另一个网页,那么发出请求后,就是control把这个请求发到相应的响应函数里。可以说这也是一个servlet。
0 0
原创粉丝点击