作为一枚大四准备毕业的学生,最重要的事便是毕业设计,前些日子刚刚拿到毕设题目:“3D网络图:面向网络结构数据的可视化软件设计”,(⊙o⊙)…,怎么说哪,看到题目就是一头雾水(前几届不都是学生选课系统,学生教务管理系统吗-_-||,说好的套路那),望着题目,看看在公司里要学的PeopleSoft,我去,毫无关系好吗。在学校学了两年JAVA,校外实习交了一万多学习了JavaEE,找个工作去干了PeopleSoft-_-||,毕设又是可视化设计,唉,真是世事多变,人生无常啊。

好了,吐槽归吐槽,为了吃饭,为了毕业什么都得慢慢来。仔细了解了一下题目:“本题目要求学生使用webGL技术开发一个用于数据可视化呈现的web应用软件。网络结构数据的可视化表现方式一直是数据可视化领域研究的重点。采用webGL技术,可以使用现代浏览器直接在网页上呈现3D效果,为网络结构数据可视化和交互设计提供了新的可能。”突然想起在学校的日子里对那些网页上呈现3D效果代码的着迷(也就在那时学了JS,甚至决定了以后校外实习的选择),回想起那时的时光,看看现在做的PeopleSoft,理想和现实的差距还真是大o(╥﹏╥)o,大概熟悉了一下题目后和老师聊了聊,原来这次毕设和我的理想是那么的接近,那就开始做,而且要好好做,人不止是为了现实而活着,至少要向自己的理想迈出几步。

首先老师让先搭起一套框架,说实话不管是实习还是在大学,框架都没有深入理解过(实习时刚学到JS,就找到工作,也没想到会做PeopleSoft),那就从头开始,慢慢来吧!

翻开好久不动的JAVA资料,打开好久没看的JAVA视频,学着学着突然有种想哭的冲动(不要问我为什么,就是很难过),以下便是我学习Spring的过程,以后会一直更新,直到把毕设做完。

首先我了解到Spring是一个社区,也是一个很大的项目,其中包含了很多子项目,我主要用到的是其中的核心项目Spring Framework。

Spring-framework 框架是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块。这些模块分为Core Container、Data Access/Integration、Web、AOP(Aspect Oriented Programming)、Instrumentation和测试部分,其中我主要去学习的是Core Container和AOP。

一、 其中Spring中有两个重要的概念:

IOC:Inversion of Control 控制反转
spring核心容器也可以称为IOC容器,该容器主要负责管理各种对象的声明周期(对象的创建、初始化、销毁等)
IOC容器并没有实现更多的功能,但它的存在使我们不需要很多代码、不需要考虑对象间复杂的耦合关系就能从IOC容器中获取合适的对象,而且提供了各种对象的可靠的管理,极大地降低了开发的复杂性。

总结:
1.IOC意味着将你设计好的类交给了spring容器去控制,而不是在类的内部自己进行控制。
2.有IOC容器之后,剩下的工作只是在IOC容器中堆积木
3.之前项目中对象和对象之间的关系是直接写死在代码中的,而使用了IOC容器后则是在代码中并没有写对象和对象是什么关系,而是把这种关系的建立交给了IOC容器去做,并且是在代码运行的时候动态建立起来(我们可以通过配置文件进行任意改变)
4.IOC其实就是一种将调用者与被调用者分离的思想。

DI:Dependency Injection 依赖注入
DI的概念的提出是用来代替IOC的,表示让调用类对某一接口实现类的依赖关系由容器注入,以移除调用类对某一接口实现类的依赖。(思考servlet和service层接口以及service层接口实现类这三者的关系)
依赖注入 这个名词显然比 控制反转 更直接明了,并且易于理解。

二、对此有了了解后,下载Spring:

http://repo.springsource.org/libs-release-local/org/springframework/spring/3.2.4.RELEASE/spring-framework-3.2.4.RELEASE-dist.zip
直接粘到地址栏或者下载工具里,每次有更新只要改版本号就可以。

三、然后就是Spring的配置流程及需要理解的内容:

Spring IOC容器核心api(容器将来会是一个对象)
BeanFactory接口
BeanFactory是Spring中IOC容器的核心接口,主要用于处理Bean的初始化和配置,建立对象间的依赖关系

接口中主要方法如下:
//根据指定名称返回一个Bean实例
Object getBean(String name)

//判断名称为name的Bean是否是原型,即是否总是返回一个新实例(非单例)
boolean isPrototype(String name)

//判断名称为name的Bean是否是单例
boolean isSingleton(String name)

//判断容器中是否包含给定名称的Bean实例
boolean containsBean(String name)

//如果名称为name的Bean有别名则返回所以别名
String[] getAliases(String name)

ApplicationContext接口
该接口继承于BeanFactory,增强了BeanFactory,增加了事务处理AOP,国际化,事件传递等功能

所以在代码中我们一般会使用ApplicationContext接口,以及这个接口相应的实现类来创建spring的容器对象
例如:
String path = "com/briup/ioc/set/set.xml";
ApplicationContext container =
new ClassPathXmlApplicationContext(path);

Student s = (Student)container.getBean("student");

四、配置文件
Spring通过读取配置文件中的数据来对项目各个对象进行实例化,配置以及组装,通常使用XML文件来作为配置文件

XML基本结构如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd">

</beans>

注意事项:
1.这个文件的头部声明可以在下载的spring文档中的示例找到
2.这里面用到了俩个schema文件(.xsd文件),分别是spring-beans-3.2.xsd和spring-context-3.2.xsd,它们也可以在下载的spring文档中找到
3.在Eclipse中把xml文件和schema文件关联后,xml中就可以有标签代码的提示了(注意关联时别配置错了)
4.spring框架是模块化的,之后使用其他模块的时候,还可以在该xml的根元素中继续引用其他模块中相应的schema文件,然后就可以使用引入新模块中的标签代码了

测试例子:

set方式注入(必须依靠set方法):

导入jar包:

创建两个测试类,例如Student和Teacher,其中Teacher类中包含Student。

编写XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.2.xsd"><bean name="stu" class="com.briup.bean.Student"><property name="id" value="1"></property><property name="name" value="tom"></property><property name="age" value="20"></property></bean><bean name="teacher" class="com.briup.bean.Teacher"><property name="id" value="1"></property><property name="name" value="zhangsan"></property><property name="student" ref="stu"></property></bean>

  写测试方法:

public void ioc_set() {try {String[] path = {"com/briup/ioc/set/set.xml"};ApplicationContext container = new ClassPathXmlApplicationContext(path);Teacher t = (Teacher)container.getBean("teacher");System.out.println(t);System.out.println(t.getId());System.out.println(t.getName());System.out.println(t.getStudent());System.out.println("-------------");System.out.println(t.getStudent().getId());System.out.println(t.getStudent().getName());System.out.println(t.getStudent().getAge());} catch (Exception e) {e.printStackTrace();}}

  这就是一个Spring实现控制反转,依赖注入的例子。

总结(Spring):

1.降低耦合性(在一个类中运行时引入其他类,而不是直接new对象)
2.去除一些方法中重复代码(例如日志文件,权限控制,事务处理(开事务,提交事务,异常事务处理) //需要这个代码,但这个代码又不能直接写到这里)
spring可以在运行期间把代码进行动态结合
3.管理对象的生命周期
4.spring核心容器中放入对象,这些对象被称为bean(可重复使用的组件)
5.IOC:反转,主动变被动
DI:依赖(依赖的解释:例如web层依赖service层,service层依赖dao层)注入,DI的概念的提出是用来代替IOC的

转载于:https://www.cnblogs.com/wsyblog/p/8157488.html

搭建SSM框架之Spring相关推荐

  1. ssm框架搭建连接mysql_从零开始搭建SSM框架(Spring + Spring MVC + Mybatis)

    最近在回顾和总结一些技术,想到了把之前比较火的 SSM 框架重新搭建出来,作为一个小结,同时也希望本文章写出来能对大家有一些帮助和启发,因本人水平有限,难免可能会有一些不对之处,欢迎各位大神拍砖指教, ...

  2. Spring框架学习笔记09:基于XML配置方式搭建SSM框架实现用户登录

    文章目录 一.采用MVC架构 二.用户登录运行效果 三.基于XML配置方式搭建SSM框架实现用户登录 (一)创建数据库与表 - simonshop (t_user) 1.创建数据库 - simonsh ...

  3. 使用maven搭建ssm框架的javaweb项目

    目前主流的javaweb项目,常会用到ssm(Spring+Spring MVC+Mybatis)框架来搭建项目的主体框架,本篇介绍搭建SSM框架的maven项目的实施流程.记之共享! 一.SSM框架 ...

  4. eclipse + maven搭建SSM框架

    eclipse + maven搭建SSM框架 0.系统环境 1)Windows 10 企业版 2)JDK 1.8.0_131 3)Eclipse Java EE IDE for Web Develop ...

  5. 如何部署SSM框架(Spring+SpringMVC+MyBatis)到SAE(新浪云服务器)图文教程

    在学习cocos2dx手游开发的过程中,为了实现用户注册.用户登陆和世界排行榜这些模块,需要用到服务器来搭建平台.以前都是 在本地搭建服务器,在本科期间使用过IIS和Tomcat,感觉在本地搭建服务器 ...

  6. MyEclipse使用Maven创建web项目+搭建SSM框架教程

    MyEclipse使用Maven创建web项目+搭建SSM框架教程 博文中的代码:链接:http://pan.baidu.com/s/1o8tqIMI 密码:m3si 安装maven和配置 1.下载m ...

  7. 使用idea搭建SSM框架,并成功运行。

    1.搭建环境 1. 前4步跟搭建Spring项目环境是一样的,请参考本人博客的Spring框架学习01. 2.在pom.xml中引入相关依赖 相关测试依赖 <dependency>< ...

  8. 使用idea搭建ssm框架,并实现简单的CRUD和分页查询功能

    1.使用idea搭建ssm框架步骤,请参考本人博客 2.项目搭建好,创建以下目录 3.在pom.xml文件中引入依赖 <?xml version="1.0" encoding ...

  9. Eclipse中使用Maven搭建SSM框架

    Eclipse中不使用Maven搭建SSM框架:https://www.cnblogs.com/xuyiqing/p/9569459.html IDEA中使用Maven搭建SSM框架:https:// ...

最新文章

  1. Tomcat的配置及优化
  2. 我爱我家:我为什么选择AppCan?
  3. ERROR 1093 解决方法
  4. ElasticSearch远程随意代码运行漏洞(CVE-2014-3120)分析
  5. C# 搭建自己的NuGet服务器,上传自定义NuGet包
  6. 51Nod 1085 01背包
  7. 马云:希望下辈子能做个好女人,男人离开女人“啥都不是”
  8. 这些面试中经常被问到的线程池问题,你都能回答的上来吗?
  9. laravel php环境,Laravel 5框架学习之环境与配置
  10. 15个最佳jQuery的翻页书效果的例子
  11. 在计算机应用领域中媒体是指,在计算机中,媒体是指什么
  12. 一个Bug你改了两天,真有这么难吗?
  13. iptables的备份及脚本构成
  14. 离线中技术方案的场景
  15. web项目导出excel表格
  16. win7自定义html为桌面,Win7系统如何自定义个性桌面?
  17. UML与Rational Rose
  18. Handler的理解、用法以及运行机制原理
  19. 网卡,交换机和路由器
  20. 电脑桌面运维工程师考证

热门文章

  1. 服务器怎么控制忽略样式_使用JavaScript来编写你的CSS样式代码——JSS
  2. 【牛客 - 1080C】tokitsukaze and Soldier(思维,偏序问题)
  3. 距离高考出成绩,一年了、、、
  4. 详解车道线检测数据集和模型 VIL-100: A New Dataset and A Baseline Model for Video Instance Lane Detection
  5. 百度顶会论文复现(3):视频分类综述
  6. layui 折叠面板使用无效问题
  7. 如何将mysql的数据库渲染到页面_vue.js实现数据库的JSON数据输出渲染到html页面功能示例...
  8. 服务器与网页之间异步,在服务器端判断request来自Ajax请求(异步)还是传统请求(同步)...
  9. ipv4链路不通或服务器无响应,ping不通或丢包时如何进行链路测试?
  10. jeecms导入myeclipse时web-inf下html出错,我部署到myeclipse 出现问题