spring的核心容器IoC
bean的基础知识
bean的标识
id/name表示bean的唯一标识
class指明bean的来源,即bean的唯一完整路径
singleton
如果bean被定义为singleton,只有一个共享实例存在,所有对这个bean的请求都会返回这个唯一的实例,默认情况是singleton
bean的生命周期
bean的使用
//非IOC模式
Hello bean = new Hello();
bean.setName("JIANG,");
bean.setMsg("hello");
System.out.println(bean.getName()+bean.getMsg());
//首先创建beanfactory工厂对象加载配置文件
BeanFactory factory = new XmlBeanFactory(
new ClassPathResource("bean.xml"));
//从容器获取对象
Hello hello=(Hello)factory.getBean("obj");
System.out.println(hello);
//使用ApplicationContext
ApplicationContext context=
new ClassPathXmlApplicationContext("bean.xml");
Hello bean =(Hello)context.getBean("obj");
bean自动装配的五种模式
自动装配:在定义一个bean的时候,自动给某一些属性注入基本数据类型的值或者其他bean的引用。
- byName
<!--通过bean的属性名字进行装配--!>
autowire="byName"
- byType
<!--如果xml中正好有一个同属性类型的bean,就自动装配这个属性--!>
autowire="byType"
3.constructor
<!--根据构造函数的参数进行自动装配-->
autowire="constructor"
4.atuodetect
<!--根据检查类的内部来选择constructor或者byName>
autowire="autodetect"
5.no
<!--不使用自动装配--!>
atuowire="no"
bean依赖检查的四种模式
每个属性是否都设定完成
dependecy-check=””
1. simple 基本数据类型,集合,字符串
2. object 对依赖的对象进行检查
3. all对所有的属性进行检查
4. no不进行依赖检查
bean的集合注入
- 数组注入
//bean里面定义一个数组
//数组
private Employee[] emArr;
//xml配置文件中
<!-- 数组注入 -->
<property name="emArr">
<array>
<ref bean="em1"/>
<ref bean="em2"/>
<ref bean="em3"/>
</array>
</property>
2.list注入
//list列表
private List<Employee> emList;
<!-- list注入 -->
<property name="emList">
<list>
<ref bean="em1"/>
<ref bean="em2"/>
<ref bean="em3"/>
</list>
</property>
3.
//Set
private Set<Employee> emSet;
<property name="emSet">
<set>
<ref bean="em1"/>
<ref bean="em2"/>
<ref bean="em3"/>
</set>
</property>
4.
//Map
private Map<Integer,Employee>emMap;
<!-- MAP注入 -->
<property name="emMap">
<map>
<entry key ="1" value-ref="em1"/>
<entry key ="2" value-ref="em2"/>
<entry key ="3" value-ref="em3"/>
</map>
</property>
5.
//properties
private Properties pp;
<!-- property 注入 -->
<property name="pp">
<props>
<prop key="user">root</prop>
<prop key="pwd">123456</prop>
</props>
</property>