今天对Spring的基础理解又加深了一丢丢。
1 首先Spring的基础配置文件中,主要由以下几个配置文件,
1 <beans xmlns:xsi="http://w3.org/2001/XMLSchema-instance" 2 xmlns="http://www.springframework.org/schema/beans" 3 xsi:schemaLocation="http://www.springframework.org/schema/beans 4 http://www.springframework.org/schema/beans/spring-beans-4.0.xsd>
beans文件的根节点
xmlns:xsi ——是指xml文件遵守xml规范 xml schema instance
xmlns的意思是 XML namespace
xsi:schemationLocation:是指具体用到的schema资源.
2 Spring中的核心机制是依赖注入,那么谈依赖注入,必首先需要知道什么是依赖注入,A调用B,表明的是A与B之间有依赖关系,注入是表示在使用时注入B的实列。
那么为什么会用这些呢?
我们首先需要回忆下,对于对象A与对象B,A要调用对象B,有那几种实现方式、
(1) 通过 new 构造器
(2) 通过工厂模式
(3) 通过Spring方式
new方式最简单粗暴,如果调用对象很多,代码直接耦合度会非常高。第二个就会稍微简单一些,简单理解就是工厂把B搞好,我们找工厂就行。第三种方式就是在工厂的模式上进一步简单,把B造好,B主动送上来。
第三种方式中,通常通过IOC容器来控制B送上门来。这就回到我们的主题,如何依赖注入,依赖注入通常有两种方式。
设值注入:IOC容器通过成员变量的setter方法来注入被依赖对象。那么问题来了,Spring通过什么知道实例之间的依赖关系呢。答案是XML配置文件,即是XML Schema来定义配置文件约束
<bean id="chinese" class="org.crazy.app.service.impl.chinese"> <property name ="axe" ref="stoneAxe"/> bean>
id是该Bean的唯一标识,程序通过id属性来访问该Bean实列
class:指定该Bean的实现类,注意此处不能用接口,必须是实现类。
其中如果
Spring框架中只要出现
简单的来概况一下设值注入就是通过setter方法位目标注入依赖关系。
构造注入:在构造实例时已经完成了依赖关系的初始化化,这种利用构造器来设值依赖关系的方式,称为构造注入。通俗来说,就是驱动Spring在底层以反射方式执行带指定参数的构造器,当执行带参数的构造器时,就可以利用构造器参数对成员变量执行初始化。
此时出现问题,Spring默认是无参数的构造器来创建对象。
2 Getter和Setter方法的好处
首先Getter和Setter两个方法是什么?这两个方法其实是读与写两个操作,getter是外部读取操作,函数必须有返回值,且函数名是内部变量名,对成员变量进行取值操作。setter是内部写入操作,对成员变量进行赋值,相当于写入操作。
二者的好处:1 我的感触是提供了代码的封装,外部不会轻易改变内部代码的值。(别人概括的经典话是:内部储存与外部表现不同) 2 在对外部接口不变的情况下,修改内部储存方式和逻辑 3 可以有不同的访问级别
3Junit 测试
Junit测试是什么?怎么用?
Junit是一个Java语言单元测试框架,有点类似于白盒测试,此时程序员清楚知道程序的内部逻辑结构,程序员知道完成什么样的逻辑功能与完成后会怎么样?
怎么用?需要导入Junit包,结合项目进一步使用。(明天继续补充)