发表于: 2017-09-20 21:48:14
0 660
今日完成的事情:
学习spring概念按照教程实现案例
1:首先理解spring框架的核心,IoC(nversion of Control)容器概念:java程序中的每个业务逻辑至少需要两个或以上的对象来协作完成,通常每个对象在使用他的合作对象时,使用像new object()这样的语法来完成合作对象的申请工作。而IOC的思想是:Spring容器来实现这些相互依赖对象的创建、协调工作,对象只需要关系业务逻辑本身就可以了。从这方面来说,对象如何得到他的协作对象的责任被反转了。
反转概念;对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系;所有的类的创建、销毁都由 spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。
DI(Dependency Injection),依赖注入概念;比如对象A需要操作数据库,以前要在A中自己编写代码来获得一个Connection对象,有了 spring我们就只需要告诉spring,A中需要一个Connection,在系统运行时,spring会在适当的时候制造一个Connection,注射到A当中,这样就完成了对各个对象之间关系的控制。A需要依赖 Connection才能正常运行,而这个Connection是由spring注入到A中的,依赖注入的名字就这么来的。
找案例,实现;
建立maven项目,配置pom文件来将使用的库声明,创建类,测试运行;
然后实现一个Java案例,两者对比之后,似乎更能理解一部分内容;
首先,新建一个Java项目FactoryTest,然后新建一个接口Animal,放在com.inter包下:
然后分别新建两个JavaBean,即Dog类和Cat类,放在com.bean包下,并都实现了Animal这个接口:
接着新建一个工厂类Factory,放在com.factory,使得Dog类和Cat类在工厂类上关联起来,Dog类和Cat类并不直接关联:
最后,写一个Test测试类,放在com.test包下,测试:
这个案例是以工厂模式来演绎ioc原理,也就是当应用程序中甲组件需要乙组件协助时,并不是在甲组件中直接实例化乙组件对象,而是通过乙组件的工厂获取,即该工厂可以生成某一类型组件的实例对象。在这种模式下,甲组件无需与乙组件以硬编码的方式耦合在一起,而只需与乙组件的工厂耦合;这也就是类似于上一个案例的控制反转和依赖注入。
明日计划的事情:
继续学习spring,dao,jbdc,相关数据库概念,争取把内容连贯起来。
遇到的问题及解决方法:
逻辑概念理论还是硬伤,继续边走边学。
案例是实施经常会报错,不过大都是语法错误,百度错误并且对比其他代码,也可以找出来。
收获:
理解更多spring概念连带着以前模糊的内容,也逐渐有了清晰的样子。
评论