URL和URI
-
URI:Uniform Resource Identifier,统一资源标识符
-
URL:Uniform Resource Locator,统一资源定位符
-
URN:Uniform Resource Name,统一资源名称
但URN只是对资源的描述,而通过URL可以直接找到资源
IOC
IOC的实现方式主要有两种:一种是依赖查找,另一种是依赖注入。两者 的主要区别在于查找是主动行为,而注入是被动行为。
依赖查找会主动寻找对象所需的依赖,同时获取依赖对象的时机也是可以自行控制的;
依赖注入则会 被动地等待容器为其注入依赖对象,由容器通过类型或者名称将被依赖对象注入相应的对象中。
-
基于接口
-
基于Set方法
-
基于构造函数
-
基于注解
属性注入:
属性注入即通过setXXX( )方法注入bean的属性值或依赖对象。
Spring首先会调用bean的默认构造函数实例化bean对象,然后再通过反射的方法调用set方法来注入属性值。
<bean id="user" class="com.Kevin.bean.User"><property name="username"><value>Kevin</value></property></bean>
构造函数注入:
构造函数注入是除属性注入之外的另一种常用的注入方式,它可以保证一些必要的属性在bean实例化时就得到了设置,并在实例化后就可以使用。
使用构造函数注入的前提是: bean必须提供带参的构造函数。
对于构造函数的注入,配置文件可以有以下几种方式:
-
按类型匹配入参
-
按索引匹配入参
-
联合使用类型和索引匹配入参
-
通过自身类型反射匹配入参
工厂方法注入:
1.非静态的,必须实例化工厂类之后才能调用工厂方法。
<bean id="bookFactory" class="com.Kevin.factorybean.BookFactory"></bean><bean id="book" factory-bean="bookFactory" factory-method="buyBook"></bean></beans>
2.静态工厂方法
无需创建工厂类实例的情况下就可以调用工厂类方法
<bean id="car" class="com.Kevin.factorybean.Car" factory-method="createCar"></bean>
</beans>