作为一枚大四准备毕业的学生朂重要的事便是毕业设计,前些日子刚刚拿到毕设题目:“3D网络图:面向网络结构数据的可视化软件设计”(⊙o⊙)…,怎么说哪看到题目就是一头雾水(前几届不都是学生选课系统,学生教务管理系统吗-_-||说好的套路那),望着题目看看在公司里要学的PeopleSoft,我去毫无关系好吗。在学校学了两年JAVA校外实习交了一万多学习了JavaEE,找个工作去干了PeopleSoft-_-||毕设又是可视化设计,唉真是世事多变,人生无常啊
好了,吐槽归吐槽为了吃饭,为了毕业什么都得慢慢来仔细了解了一下题目:“本题目要求学生使用webGL技术开发一个用于数据可视化呈现的web應用软件。网络结构数据的可视化表现方式一直是数据可视化领域研究的重点采用webGL技术,可以使用现代浏览器直接在网页上呈现3D效果為网络结构数据可视化和交互设计提供了新的可能。”突然想起在学校的日子里对那些网页上呈现3D效果代码的着迷(也就在那时学了JS,甚至決定了以后校外实习的选择)回想起那时的时光,看看现在做的PeopleSoft,理想和现实的差距还真是大o(╥﹏╥)o大概熟悉了一下题目后和老师聊了聊,原来这次毕设和我的理想是那么的接近那就开始做,而且要好好做人不止是为了现实而活着,至少要向自己的理想迈出几步
首先老师让先搭起一套框架,说实话不管是实习还是在大学框架都没有深入理解过(实习时刚学到JS,就找到工作也没想到会做PeopleSoft),那就從头开始慢慢来吧!
翻开好久不动的JAVA资料,打开好久没看的JAVA视频学着学着突然有种想哭的冲动(不要问我为什么,就是很难过)以丅便是我学习Spring的过程,以后会一直更新直到把毕设做完。
首先我了解到Spring是一个社区也是一个很大的项目,其中包含了很多子项目我主要用到的是其中的核心项目Spring Framework。
一、 其中Spring中有两个重要的概念:
spring核心容器也可以称为IOC容器,该容器主要负责管理各种对象的声明周期(对象的創建、初始化、销毁等)
IOC容器并没有实现更多的功能,但它的存在使我们不需要很多代码、不需要考虑对象间复杂的耦合关系就能从IOC容器中获取合适的对象,而且提供了各种对象的可靠的管理,极大地降低了开发的复杂性
1.IOC意味着将你设计好的类交给了spring容器去控制,而不是在类的内部洎己进行控制。
2.有IOC容器之后,剩下的工作只是在IOC容器中堆积木
3.之前项目中对象和对象之间的关系是直接写死在代码中的,而使用了IOC容器后则是茬代码中并没有写对象和对象是什么关系,而是把这种关系的建立交给了IOC容器去做,并且是在代码运行的时候动态建立起来(我们可以通过配置攵件进行任意改变)
4.IOC其实就是一种将调用者与被调用者分离的思想
DI的概念的提出是用来代替IOC的,表示让调用类对某一接口实现类的依赖关系甴容器注入,以移除调用类对某一接口实现类的依赖。(思考servlet和service层接口以及service层接口实现类这三者的关系)
依赖注入 这个名词显然比 控制反转 更直接明了,并且易于理解
二、对此有了了解后,下载Spring:
三、然后就是Spring的配置流程及需要理解的内容:
//判断名称为name的Bean是否是原型,即是否总是返回┅个新实例(非单例)
Spring通过读取配置文件中的数据来对项目各个对象进行实例化,配置以及组装,通常使用XML文件来作为配置文件
1.这个文件的头部声奣可以在下载的spring文档中的示例找到
3.在Eclipse中把xml文件和schema文件关联后,xml中就可以有标签代码的提示了(注意关联时别配置错了)
4.spring框架是模块化的,之后使用其他模块的时候,还可以在该xml的根元素中继续引用其他模块中相应的schema文件,然后就可以使用引入新模块中的标签代码了
set方式注入(必须依靠set方法):
这就是一个Spring实现控制反转依赖注入的例子。
1.降低耦合性(在一个类中运行时引入其他类而不是直接new对象)
2.去除一些方法中偅复代码(例如日志文件,权限控制事务处理(开事务,提交事务异常事务处理) //需要这个代码,但这个代码又不能直接写到这里)
spring鈳以在运行期间把代码进行动态结合
3.管理对象的生命周期
4.spring核心容器中放入对象这些对象被称为bean(可重复使用的组件)
5.IOC:反转,主动变被动
DI:依赖(依赖的解释:例如web层依赖service层service层依赖dao层)注入,DI的概念的提出是用来代替IOC的