<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- <context:component-scan base-package="com.chinasofti.bean"></context:component-scan> --> <!-- 构造器方式 --> <bean id="dog" class="day1.Dog"> <!-- 有参的类: constructor-arg 标签代表有参构造,index对应第几个参数,value是值 --> <constructor-arg index="0" value="杀魔爷"></constructor-arg> <constructor-arg index="1" value="888"></constructor-arg> </bean> <!-- 静态工厂方式 --> <bean id="product" class="beans.staticFactorys" factory-method="getProduct"></bean> <!-- 非公共类 --> <bean id="div" class="beans.Div"></bean> <!-- 普通类的方法 返回的对象 --> <bean id="factory" class="beans.Factory" ></bean> <bean id="product2" factory-bean="factory" factory-method="getProduct"></bean> <!-- 导入其他的配置文件--> <import resource="ac.xml"/> <!-- 默认情况下每个bean 的scope的值是 singleton 即 单例模式,该模式下容器只存在一个bean 在单例模式下属性 lazy-init 可以决定bean的创建事件,默认:false 时随着IOC 容器的创建而创建 (ApplicationContext ac=new ClassPathXmlApplicationContext("ac.xml");) 该值为true 时 ,则第一场获取对象 (getBean()) 是创建对象 scope 的值是 prototype 时 即 多例模式 其 lazy-init 的值就只能是 true init-method: 初始化方法 destory-method: 销毁方法 --> <bean id="dog" class="day1.Dog" scope="singleton" init-method="setName" destroy-method="destory"/> <!-- property 标签 可以给初始化成员变量 --> <!-- 1.Boy boy=new Boy(); 2.boy.setName(小明) boy.setDog(new Dog()); --> <bean id="boy" class="beans.Boy" > <!-- 基本类型注入 --> <property name="name" value="小明"></property> <!-- Spring 组件类型注入 ref --> <!-- 依赖参数的内部写法,外部的其他键无法访问 --> <property name="dog" > <bean id="dog" class="day1.Dog"> <property name="name" value="吃鸡"></property> <property name="age" value="55"></property> </bean> </property> </bean> <!-- 依赖参数的外部注入写法 --> <bean id="boy1" class="beans.Boy"> <property name="name" value="小明"></property> <property name="dog" ref="dog"></property> </bean> <bean id="dog" class="day1.Dog"></bean> </beans> <!-- 集合 类型注入: list set Map list 注入:一个value 标签代表一个元素 --> <bean id="setList" class="beans.setList"> <property name="lists"> <list> <value type="java.lang.String">天下第一</value> <value type="java.lang.String">天下第二</value> </list> </property> <property name="dlist"> <!-- 组件注入集合的方式 --> <!-- <list> <ref bean="date"></ref> <ref bean="date"></ref> <null></null> </list> --> <set> <ref bean="date"></ref> <null></null> <ref bean="date"></ref> </set> </property> </bean> <bean id="date" class="java.util.Date"></bean> <!-- 注入map 集合 --> <bean id="setMap" class="beans.setMap"> <property name="map"> <map> <entry key-ref="date" value-ref="setList"></entry> <!-- key 和 value 是其他bean时 --> <!-- key 和 value 是字符串或者基本类型时 --> <entry key="aa" value="vv"></entry> </map> </property> </bean> <bean id="user" class="beans.User"> <property name="ps"> <props> <prop key="userName">username</prop> <prop key="passWord">password</prop> </props> </property> </bean> </beans>