zoukankan      html  css  js  c++  java
  • 装配Bean—通过XML装配Bean

    通过XML装配Bean:

    尽管我们在生成Bean的过程中可以用到很多方法,但我们依然需要Spring的XML配置来完善更多的需求,下面就来介绍下XML装配Bean的过程是怎样的.

    创建XML配置规范:

    <?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:mvc="http://www.springframework.org/schema/mvc"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:aop="http://www.springframework.org/schema/aop"  xmlns:c="http://www.springframework.org/schema/c"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
                http://www.springframework.org/schema/mvc
                http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
                 http://www.springframework.org/schema/aop
                 http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
                http://www.springframework.org/schema/context
                http://www.springframework.org/schema/context/spring-context-4.3.xsd">
    </beans>

    1.先前提过的@Bean的注解实现效果和如下的配置一样

    <bean id="quest" class="QuestImpl"/>

    2.借助构造器初始化Bean,有如下两种方式可以实现:

    • <constructor-arg >元素名
    • 使用Spring3.0所引入的c-命名空间

    如下:

    <bean id="braveKnight" class="BraveKnight" >
        <constructor-arg ref="quest"/>
       </bean>
    <bean id="braveKnight" class="BraveKnight" c:quest-ref="quest"/>

    装配集合,当我们需要往构造器中传入相应的多个参数的时候,我们可以使用集合来装相应的参数值,如下:

     
    <!--注入BraveKnight-->
        <bean id="braveKnight" class="BraveKnight" ref="quest">
            <constructor-arg>
                <list>
                    <value>sgt</value>
                    <value>Twinkle, twinkle, little start</value>
                </list>
            </constructor-arg>
         </bean>

    我们也可以用<ref>元素代替<value>,实现bean的列表装配:

    <!--注入BraveKnight-->
        <bean id="braveKnight" class="BraveKnight" ref="quest">
           <constructor-arg >
                <list>
                   <ref bean="quest"/>
                   <ref bean="minstrel"/>
                </list>
            </constructor-arg>
         </bean>

    当然我们也可以用同样的方式使用<Set>去装配

    设置属性:

     到目前为止,我们都是通过构造器来注入相关的成员变量的,没有使用属性的Setter方法,接下来我们就看下Spring XML如何实现属性注入:

    <bean id="SgtPeppers" class="com.CDDemo.SgtPeppers">
            <property name="title" value="sgt"/>
            <property name="song" value="Twinkle, twinkle, little start"/>
        </bean>

    我们也可以使用p-命名空间的方式装配Bean:

    <bean id="SgtPeppers" class="com.CDDemo.SgtPeppers" p:title="sgt" p:song="Twinkle, twinkle, little start"/>

    ​ 我们还可以用<list>来盛装更多的被集合List包裹的参数值:

    <property name="titleList">
                <list>
                    <value>Twinkle</value>
                    <value>twinkle</value>
                    <value>little start</value>
                </list>
            </property>

    混合配置

    当我们需要把几个类组合在一起的时候可以用@Import注解的方式:

    @Component
    @Import(CDPlayerConfig.class)
    public class SgtPeppers implements CompactDisc {
    
        private String title = "sgt";
        private String song = "Twinkle, twinkle, little start";
    
        public void play() {
            System.out.println("title:" + title + "song:" + song);
        }
    }
    @Component
    @Import({CDPlayerConfig.class,CDTest.class})
    public class SgtPeppers implements CompactDisc {
    
        private String title = "sgt";
        private String song = "Twinkle, twinkle, little start";
    
        public void play() {
            System.out.println("title:" + title + "song:" + song);
        }
    }

    如果需要引入配置中的Bean,则可以@ImportResource()中加入相应为配置文件的地址:

    @Component
    @Import({CDPlayerConfig.class,CDTest.class})
    @ImportResource("classpath:application.xml")
    public class SgtPeppers implements CompactDisc {
        private String title = "sgt";
        private String song = "Twinkle, twinkle, little start";
        public void play() {
            System.out.println("title:" + title + "song:" + song);
        }
    }

    如果我们需要在一个XML中引入另一个XML的配置,可以使用<import resource>引入相关的配置文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    
        <!--将application.xml引入进来-->
        <import resource="application.xml"/>
    
    </beans>
  • 相关阅读:
    【iCore2双核心板视频教程】 AD模块(iM_AD_GP和iM_AD_SYNC)介绍及数据采集实验二
    【液晶模块系列基础视频】4.1.X-GUI图形界面库-画线画圆等函数简介
    【贴图】网友 snoopy 用《iHMI43 液晶模块》做的界面给大家看看
    【开放源代码】【谐波数据生成器】【上位机软件】(版本:0.00)
    【iCore2双核心板视频教程】 AD模块(iM_AD_GP和iM_AD_SYNC)介绍及数据采集实验一
    【新产品发布】【GK101 10MHz任意波发生器】
    【液晶模块系列基础视频】2.虚拟U盘
    【液晶模块系列基础视频】1.3.iM_TFT30模块简介
    【液晶模块系列基础视频】1.2.iM_RGB模块介绍
    【液晶模块系列基础视频】1.1.iHMI43模块介绍
  • 原文地址:https://www.cnblogs.com/socketqiang/p/11321796.html
Copyright © 2011-2022 走看看