SpringIOC和依赖注入的基本配置

创建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>

​​​​​​​此文章为我个人的学习笔记总结,自用

发布了29 篇原创文章 · 获赞 3 · 访问量 890

猜你喜欢

转载自blog.csdn.net/weixin_44616792/article/details/95909483