发表于: 2017-09-21 20:54:01

1 821


今天完成的事情:

1、学习了JUnit注解和断言

2、学习了Spring,并了解IoC的基础知识和原理以及Spring的松耦合

明天计划的事情:

1、学习更多关于spring的知识

2、看一些关于spring的教学视频

3、进一步学习代码的编写

遇到的问题:

遇到的问题是,看到的很容易忘记,没有实例的记不住,记住的记不清,没有整体的结构框架。

收获:

1、jUnit注释

@Test

public void method():测试注释指示该公共无效方法它所附着可以作为一个测试用例。

@Before
public void method():Before注释表示,该方法必须在类中的每个测试之前执行,以便执行测试某些必要的先决条件。

@BeforeClass
public static void method():BeforeClass注释指出这是附着在静态方法必须执行一次并在类的所有测试之前。发生这种情况时一般是测试计算共享配置方法(如连接到数据库)。

@After
public void method():After 注释指示,该方法在执行每项测试后执行(如执行每一个测试后重置某些变量,删除临时变量等)。

@AfterClass
public static void method():当需要执行所有的测试在JUnit测试用例类后执行,AfterClass注解可以使用以清理建立方法,(从数据库如断开连接)。注意:附有此批注(类似于BeforeClass)的方法必须定义为静态。

@Ignore
public static void method():当想暂时禁用特定的测试执行可以使用忽略注释。每个被注解为@Ignore的方法将不被执行。(
根据网上的经验,看懂个大概,暂时不是很理解

2、大致理解了Spring框架中loC(控制反转)的原理

loC:IoC是Inversion of Control的缩写,有的翻译成“控制反转”,还有翻译成为“控制反向”或者“控制倒置”。在采用面向对象方法设计的软件系统中,底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。即软件系统中对象之间的耦合,对象A和对象B之间有关联,对象B又和对象C有依赖关系,这样对象和对象之间有着复杂的依赖关系,所以才有了控制反转这个理论。

            

                                        IoC解耦过程                                                                             去掉Ioc容器之后的系统

      

— 软件系统在没有引入IoC容器之前,对象A依赖对象B,那么A对象在实例化或者运行到某一点的时候,自己必须主动创建对象B或者使用已经创建好的对象B,其中不管是创建还是使用已创建的对象B,控制权都在我们自己手上。

— 如果软件系统引入了Ioc容器之后,对象A和对象B之间失去了直接联系,所以,当对象A实例化和运行时,如果需要对象B的话,IoC容器会主动创建一个对象B注入到对象A所需要的地方。

— 通过前面的对比,可以看到对象A获得依赖对象B的过程,由主动行为变成了被动行为,即把创建对象交给了IoC容器处理,控制权颠倒过来了,这就是控制反转的由来!

实例:实现目录如下图


首先,新建一个Java项目FactoryTest,然后新建一个接口Animal,放在com.inter包下:

Animal.java文件代码如下:

    

然后分别新建两个JavaBean,即Dog类和Cat类,放在com.bean包下,并都实现了Animal这个接口:

Dog.java文件代码如下:

Cat.java文件代码如下:

     

接着新建一个工厂类Factory,放在com.factory,使得Dog类和Cat类在工厂类上关联起来,Dog类和Cat类并不直接关联:

Factory.java文件代码如下:

   

最后,写一个Test测试类,放在com.test包下,代码如下:

  

最后的运行效果是:

在上面的实例中起到核心是Factory.java,它就相当于Spring中的IoC,将两个不相关联的Dog,Cat相关联。

因此,面向对象的概念,是一个很好的设计来打破系统进入一个组可重用的对象。然而,当系统变大,尤其是在Java项目,庞大的对象依赖关系将一直紧密耦合引起对象难以管理或修改。在这种情况下,可以使用Spring框架作为一个核心模块轻松高效地管理所有的对象依赖。

 


返回列表 返回列表
评论

    分享到