spring的核心容器

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的引用。

  1. byName
<!--通过bean的属性名字进行装配--!>
autowire="byName"
  1. 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的集合注入

  1. 数组注入
    //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>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值