发表于: 2018-01-14 23:16:56

1 805


今天完成的事情:

1—对Spring的理解(来源于博客:http://www.cnblogs.com/xdp-gacl/p/3707631.html )

1.1 Spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要针对javaBean的生命周期进行管理的轻量级容器,也可以和Struts框架,ibatis框架等组合使用。
1.2 Spring的IoC原理:IoC(inversion of control)是控制反转的意思,另一个名称是DI(dependency injection)依赖注入。原理是当对象A需要对象B作为输入的时候,不需要对象A自己去创建和使用对象B(在A中new一个对象B),这个任务交给IoC容器来完成,即IoC容器将一个对象B注入对象A。对象A获得依赖对象B的过程,由主动行为变为了被动行为,控制权颠倒过来了,这就是“控制反转”这个名称的由来。所谓依赖注入,就是由IoC容器在运行期间,动态地将某种依赖关系注入到对象之中。IoC容器的作用就是,利用关系注入的方式,实现对象之间的解耦。
1.3 IoC的优势:
        (1) 降低组件之间的耦合性,是的一个组件是否有故障,不会影响其他组件的运行,可维护性好,便于单元测试和故障诊断。
        (2) 每个部件可以独立开发,有利于大型项目划分为小项目进行开发。
        (3) 提高了模块的可复用性。一个模块可以在多个项目中重复使用。
        (4) 模块具有热插拔性。当需要更换掉其中一个子类的时候,只需要修改配置文件。
1.4 IoC容器的技术剖析:IoC容器中最基本的技术就是“反射(reflection)”编程,所谓反射编程就是根据给出的类名(字符串方式)来动态生成对象。
1.5 IoC的劣势:
        (1)引入了IoC容器,是的对象生成步骤变得复杂。
        (2)通过反射方式生成对象在运行效率上有一定损耗。
        (3)使用IoC框架产品需要大量配置工作,比较繁琐,对于小项目来说,增加了工作成本。
        (4)IoC框架产品本事是否成熟需要进行评估,如果引入不成熟的产品,会影响到整个项目。
2—跑通了一个Spring程序,教程地址:https://www.tutorialspoint.com/spring/index.htm
2.1 先建立一个项目,名称是MySpring,添加相应jar包,在pom.xml里边添加<dependecy>。下图是按照教程加载的jar包。其实感觉没必要加载这么多,有些jar包功能没有用到。

2.2 建立两个类,一个用来构造对象,名字:HelloSpring;另一个用来当作main函数,名字MainApp。代码如下:


2.3 建立bean配置文件。例子中创建的是xml文件,我创建的是tld文件,发现两种文件作用完全一样。

2.4 运行MainApp,结果

2.5 理解这个程序运行中体现的IoC和DI思想。运行MainApp时,第一步使用Spring框架中的ClassPathXmlApplicationContext()方法,引入beans.tld文件。第二步动态创建一个HelloSpring对象(这个对象是根据beans.tld中bean节点的信息创建的,massage = “Hello World!”);并将这个对象注入到main函数中,赋值给obj。开始不理解为何在main函数中getBean()之前有(HelloSpring),请教宁虎师兄,告知getBean()得到的对象是object对象,需要强制类型转换成需要的类型。

2.6 思考:发现这个程序跟我之前跑通的JDBCTemplate程序是一样的。原来之前就写过Spring框架的程序,只是当时不是很理解。现在终于理解了一些。


明天计划的事情:

明天继续理解Spring。继续理解什么是依赖注入。如何用标签管理bean。什么是“使用注解来构造IoC容器“。

如果有时间,可以开始学习SpringMVC。


遇到的问题:

1,不理解Spring的定义,百度百科的定义简直天书,花了一些时间感觉是在浪费。后来发现了一个好的博客,才理解Spring的一些概念。看来找到一个好的教程,能够节省很多时间。我目前找到的好教程一个是cnblog博主“孤傲苍狼”的博客,一个是https://www.tutorialspoint.com/index.htm 这个地址中的教程。

2,跑通例子程序但是不理解每部分的作用。这个以后写多了,学的多了自然很多东西就明白了。要多百度,多问师兄。


收获:

1,大致理解了Spring的IoC和DI的含义。

2,大致理解了Spring例子程序每一步的作用。


禅道:

http://task.ptteng.com/zentao/project-task-524.html


返回列表 返回列表
评论

    分享到