发表于: 2017-09-21 20:54:01
1 822
今天完成的事情:
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框架作为一个核心模块轻松高效地管理所有的对象依赖。
评论