初生牛犊之spring(一)
作为三大架构之一的spring,鄙人怀着无比激动的心情,学习了一下这神奇的架构,顺便总结一下今天学习的spring各知识点。
1.spring基本配置文件:
<!--Bean的配置文档-->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<!-- id用来唯一标识Bean,class用来表示该Bean的来源-->
<bean id="HelloWorld" class="cn.Test.Helloworld"> <!--或者这样 <bean name="HelloWorld" class="cn.Test.Helloworld"> 但id属性符合XML ID规定-->
<!-- 将其word属性通过依赖注入值为Spring-->
<property name="word">
<value>Spring</value>
</property>
</bean>
<beans>
配置文件中的其他简单属性:
1)singleton , non-singleton
如 <bean id="HelloWorld" class="cn.Test.Helloworld" singleton="true" > // 该属性规定客户端每次向BeanFactory请求时,只返回一个实例,即单例模式。spring默认为singleton模式
<bean id="HelloWorld" class="cn.Test.Helloworld" non-singleton="true" > //该模式下,对这个Bean的每次请求都会创建一个新的Bean实例
2)可以在<property>中直接定义<bean>
如:<property name="date">
<bean id="date" class="java.util.Date">
</property>
3)对于null处理:有两种:
如:1.<property name="date">
<value>null</value>
</property>
2.<property name="date">
<null/>
</property>
4)depends-on属性
Beand depends-on属性可以用来在初始化使用这个Bean之前,强制执行一个或者多个Bean的初始化。
如:<bean id="HelloWorld" class="cn.Spring.HelloTest.HelloWorld" depends-on="date"> <!--date为一个Bean-->
2.依赖注入的3种实现方式:
1)接口注入(通过java动态机制,不需要配置。省略)
2)Set方法注入
条件:java类当中提供setXxx方法。
配置:如1.spring配置文件,就是实现set方法注入
3)构造注入
如: HelloWorld类
public class HelloWorld{
public String name=null;
//添加构造方法
public Helloworld(String name){
this.name=name;
}
}
配置文件:
<bean id="HelloWorld" class="cn.Test.Helloworld">
<construtctor-arg index="0"> <!--construtctor用来表示是通过构造方式来注入参数的 index="0" 表示构造方法中的第一个参数,如果只有一个参数,则可以不用设置 -->
<value>HelloWorld</value>
</construtctor-arg>
</bean>