2021-01-24

2021.01.24 Spring

  1. 使用基本的集合标签定义集合时, 不能将集合作为独立的 Bean 定义**,** 导致其他 Bean 无法引用该集合**,** 所以无法在不同 Bean 之间共享集合.可以使用 util schema 里的集合标签定义独立的集合 Bean. 需要注意的是, 必须在 根元素里添加 util schema 定义

    <!--共享的list,需要直接ref="shareList"即可-->
    <util:list id="shareList">
      <value>张三</value>
      <value>李四</value>
      <value>王五</value>
    </util:list>
    
  2. 在Spring IOC容器读取Bean配置创建Bean实例之前,先对容器实例化,才能从容器中取出bean实例并使用,其中容器有

    1. BeanFactory 容器的基本实现 是Spring框架的基础设施,面向Spring本身
    2. ApplicationContext(接口)提供更多高级的特性,是BeanFactory的子接口,面向使用Spring框架的开发者,建议使用ApplicationContext
    3. 注意:无论使用BeanFactory还是SpringApplicationContext,配置文件都是一样的
  3. ApplicationContext(接口)在初始上下文时候就实例化所有单例的bean

  4. 如果注入的值中包含有特殊字符(<上海>),可<!CDATA[<上海^>]]来赋值,注意结束符号

  5. 一个bean中注入其他的bean使用

    <bean id="id值" class=class全类名 ref=“其他注入bean的id”></bean>

    或者

    <bean ….><ref bean="其他注入bean的id"></ref></bean>

  6. 内部bean,只供内部使用(Person中注入Car.class)

    <bean id="id值" class=Person全类名>

    <property name= "car">

    <bean id="car" class=Car全类名>//不能被外部引用,id可以不用写

    <property name="brand" value="奥迪">

    </bean>

    </bean>

  7. 配置Properties

     <!--配置Properties-->
        <bean id="dataSource" class="DataSource">
            <property name="properties">
                <props>
                    <prop key="username">root</prop>
                    <prop key="password">1234</prop>
                    <prop key="username">jdbc:mysql://localhost:3306/test</prop>
                </props>
            </property>
        </bean>
    
  8. 一次配置(独立出来)list/map,多处使用,多个bean中共享

    <util:list id="outterList">
            <value>zhangsan</value>
            <value>lisi</value>
            <value>wangwu</value>
        </util:list>
        <bean id="listSpring1" class="CollectionInSpring.ListInSpring">
            <property name="names" ref="outterList"></property>
        </bean>
    
  9. p命名空间(先把p命名空间导入)

    <bean id="person" class="Person"
          p:name="张三"
          p:age="39"
          p:car-ref="car">
    </bean>
      
    
  10. bean之间的关系 这里的关系是指xml中配置的关系

    <bean id="address" class="beanRelation.Address">
            <property name="city" value="兴宁"/>
            <property name="street" value="中山路"/></bean>
    <bean id="address2" class="beanRelation.Address">
            <property name="city" value="兴宁"/>
            <property name="street" value="团结路"/>
    </bean>
    <!--这里两个bean之间的配置基本相同,消除重复代码-->
    <!--改进-->
    <!--父bean-->
    <!--此处的父bean既是bean实例,又是模板-->
    <!--abstract="true" 则只能是模板,无法被实例化-->
    <!--若一个bean的class没有被指定的,则其只能是模板!-->
    <!--并非模板中的所有属性都会被继承,例如abstract-->
    <bean id="address" class="beanRelation.Address">
            <property name="city" value="兴宁"/>
            <property name="street" value="中山路"/></bean>
    <!--子bean继承父bean的配置-->
    <bean id="address2"class="beanRelation.Address"parent="address">
      <property name="street" value="中山路"/>
    </bean>
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值