创建bean
id属性:任意但必须唯一
class属性:需要实例化对象的全限定名
scope属性:有俩个值,
singleton:单例的,在加载配置文件时就被创建放到spring容器中,且只创建一次,
容器销毁对象就跟着销毁
prototype:多例的,在getBean时被创建,每次获取都会创建,容器销毁时不跟着销
毁,而是等待垃圾回收器的回收
init-method属性:指定初始化时执行的方法
destroy-method属性:指定对象销毁执行的方法
<bean id="person" class="dao.Person" scope="singleton" init-method="" destroy-method=""></bean>
bean的三种创建方式
第一种:无参构造函数创建方法
<bean id="person" class="dao.Person" ></bean>
第二种:静态工厂创建
首先需要一个工厂,工厂需要一个静态方法
<bean id="staticFactory" class="util.BeanFactory" factory-method="createPerson"></bean>
public class BeanFactory {
public static Person createPerson() {
return new Person();
}
第三种:实例工厂创建
首先需要一个工厂,工厂需要一个普通方法
<bean id="factory" class="util.BeanFactory"></bean>
<bean id="person" factory-bean="factory" factory-method="createPerson02"></bean>
public class BeanFactory {
public Person createPerson02() {
return new Person();
}
Spring的依赖注入(DI)
第一种:set方法注入
普通成员变量属性注入
<bean id="person" class="dao.Person">
<property name="name" value="李四"></property>
<property name="age" value="20"></property>
</bean>
对象类型注入
name为set方法后面的名字
ref引入其他的bean
<bean id="home" class="dao.Home"></bean>
<bean id="person" class="dao.Person">
<property name="home" ref="home"></property>
</bean>
第二种方法:复杂属性注入([],List,Map…)
<bean id="home" class="dao.Home" ></bean>
<bean id="collection" class="dao.CollectionBean">
<property name="ss">
<!--数组类型-->
<list>
<value>aaa</value>
<value>bbb</value>
<value>ccc</value>
</list>
</property>
<property name="ll">
<!--List类型-->
<list>
<value>aaa</value>
<value>bbb</value>
<!--注入对象类型-->
<ref bean="home"></ref>
</list>
</property>
<property name="mm">
<!--集合类型-->
<map>
<entry key="k1" value="哇哇哇"></entry>
<entry key="k2" value="哈哈哈"></entry>
<!--注入对象类型-->
<entry key="k3" value-ref="home"></entry>
</map>
</property>
<property name="properties">
<!--Properties类型-->
<props>
<prop key="jdbc.driver">com.mysql.jdbc.Driver</prop>
<prop key="jdbc.url">jdbc:mysql://localhost:3306</prop>
</props>
</property>
</bean>
此文章为我个人的学习笔记总结,自用