项目包结构:

src/main/java

com.bonc.pojo--|-CompactDisc.java (接口)

|-SgtPeppers.java     (实现类 实现 CompactDisc)

|-BlankDisc.java        (实现类 实现 CompactDisc)

|-MediaPlayer.java     (接口)

|-CDPlayer.java          (实现类 实现 MediaPlayer)

src/main/resources

spring.xml (Spring应用上下文配置信息)

接口 CompactDisc.java

package com.bonc.pojo;

public interface CompactDisc {
    void  play();
}

实现类 SgtPeppers.java

package com.bonc.pojo;

public class SgtPeppers implements CompactDisc {

    private String title = "Sgt. Pepper's Lonely Hearts Club Band";
    private String artist = "The Beatles";
    public void play() {
            System.out.println("Playing "+title+"by"+artist);
    }
    public SgtPeppers() {
        super();
    }
    //自定义带参构造器
    public SgtPeppers(String title, String artist) {
        super();
        this.title = title;
        this.artist = artist;
    }

}

实现类 BlankDisc.java

package com.bonc.pojo;

import java.util.List;

public class BlankDisc implements CompactDisc {

    private String title;
    private String artist;
    private List<String> tracks;
    public void play() {
        System.out.println("Playing "+title+" by "+artist);
        for(String track:tracks){
            System.out.println("-Track: "+track);
        }
    }
    //自定义带参构造器
    public BlankDisc(String title, String artist, List<String> tracks) {
        super();
        this.title = title;
        this.artist = artist;
        this.tracks = tracks;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getArtist() {
        return artist;
    }
    public void setArtist(String artist) {
        this.artist = artist;
    }
    public List<String> getTracks() {
        return tracks;
    }
    public void setTracks(List<String> tracks) {
        this.tracks = tracks;
    }

}

接口 MediaPlayer.java

package com.bonc.pojo;

public interface MediaPlayer {
    void play();
}

实现类CDPlayer.java

package com.bonc.pojo;

public class CDPlayer implements MediaPlayer{

    private CompactDisc cd;

    public CDPlayer(){
        super();
    }

    public CDPlayer(CompactDisc cd){
        this.cd = cd;
    }
    public void play() {
        cd.play();
    }

    public void setCd(CompactDisc cd) {
        this.cd = cd;
    }

}

Spring.xml配置信息

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:c="http://www.springframework.org/schema/c"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:util="http://www.springframework.org/schema/util"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
     http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
     http://www.springframework.org/schema/tx
     http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
     http://www.springframework.org/schema/aop
     http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
     http://www.springframework.org/schema/context
     http://www.springframework.org/schema/context/spring-context-4.0.xsd
     http://www.springframework.org/schema/util
     http://www.springframework.org/schema/util/spring-util.xsd">

<!--
     一、XML配置说明:
    在Spring刚刚出现的时候,XML是描述配置的主要方式。
    尽管Spring长期以来确实与XML有着关联,但需要说明的是,XML不再是配置Spring的唯一方案。
    鉴于已经存在那么多基于XML的Spring配置,所以理解如何在Spring中配置XML还是很重要的。
    本篇文章在于帮助你维护已有的XML配置,在完成新的Spring工作时,希望你使用自动化配置和JavaConfig     

    如果不给出ID属性,这个bean会根据全限定类名来进行命名
    本例中为 com.bonc.pojo.SgtPeppers#0 #0是一个计数的形式,用来区分其他相同类型的bean
 -->
    <bean id="compactDisc" class="com.bonc.pojo.SgtPeppers"/>

<!--
    二、借助构造器初始化bean有两种方案:
    1. <constructor-arg>元素
    2. 使用Spring3.0所引入的c-命名空间
-->
     <bean id="cdPlayer" class="com.bonc.pojo.CDPlayer">
         <constructor-arg  ref="compactDisc"/>
     </bean>
<!--
    c:cd-ref
    c(命名空间的前缀)-构造器的参数名-ref(告诉Spring 正在装配的是一个bean的引用)

    也可以使用参数在参数列表中的位置信息
    c:_0-ref="compactDisc"
-->
     <bean id="cdPlayer2" class="com.bonc.pojo.CDPlayer" c:cd-ref="compactDisc"/>

<!--
      装配字面量
-->
     <bean id="compactDisc" class="com.bonc.pojo.SgtPeppers">
         <constructor-arg value="Sgt. Pepper's Lonely Hearts Club Band"/>
         <constructor-arg value="The Beatles"/>
     </bean>
     <bean id="compactDisc" class="com.bonc.pojo.SgtPeppers"
         c:_title="gt. Pepper's Lonely Hearts Club Band"
         c:_artist="The Beatles"/>
     <bean id="compactDisc" class="com.bonc.pojo.SgtPeppers"
         c:_0="gt. Pepper's Lonely Hearts Club Band"
         c:_1="The Beatles"/>
<!--
    装配list
-->
     <bean id="compactDisc" class="com.bonc.pojo.BlankDisc">
         <constructor-arg  value="Sgt. Pepper's Lonely Hearts Club Band"/>
         <constructor-arg  value="The Beatles"/>
         <constructor-arg>
             <list>
                 <value>Sgt.Pepper's warm heart</value>
                 <value>With a little help from My Friends</value>
                 <value>in the Sky with Diamonds</value>
                 <value>Getting Better</value>
                 <value>Fixing A Hole</value>
             </list>
         </constructor-arg>
     </bean>
<!-- 装配set -->
    <bean id="compactDisc" class="com.bonc.pojo.BlankDisc">
         <constructor-arg  value="Sgt. Pepper's Lonely Hearts Club Band"/>
         <constructor-arg  value="The Beatles"/>
         <constructor-arg>
             <set>
                 <value>Sgt.Pepper's warm heart</value>
                 <value>With a little help from My Friends</value>
                 <value>in the Sky with Diamonds</value>
                 <value>Getting Better</value>
                 <value>Fixing A Hole</value>
             </set>
         </constructor-arg>
     </bean>

<!--
    三、属性初始化bean
-->
    <bean id="compactDisc" class="com.bonc.pojo.BlankDisc">
        <property name="title" value="Sgt. Pepper's Lonely Hearts Club Band"/>
        <property name="artist"value="The Beatles"/>
        <property name="tracks">
            <list>
                <value>Sgt.Pepper's warm heart</value>
                 <value>With a little help from My Friends</value>
                 <value>in the Sky with Diamonds</value>
                 <value>Getting Better</value>
                 <value>Fixing A Hole</value>
            </list>
        </property>
    </bean>
<!--
    四、使用Spring util-命名空间简化bean配置
        首先需要在XML中声明util-命名空间及其模式
        util:list只是util-命名空间中的多个元素之一
 -->
     <util:list id="trackList">
        <value>Sgt.Pepper's warm heart</value>
        <value>With a little help from My Friends</value>
        <value>in the Sky with Diamonds</value>
        <value>Getting Better</value>
        <value>Fixing A Hole</value>
     </util:list>
     <bean id="compactDisc" class="com.bonc.pojo.BlankDisc"
         p:title="Sgt. Pepper's Lonely Hearts Club Band"
         p:artist="The Beatles"
         p:track-ref="trackList"/>

</beans>

【Spring 核心】装配bean(三)XML配置的更多相关文章

  1. Spring_总结_03_装配Bean(三)_XML配置

    一.前言 本文承接上一节:Spring_总结_03_装配Bean(二)之Java配置 上一节说到,当需要显示配置时,首选类型安全并且比XML更强大Java配置. 那什么时候使用XML配置呢? (1)维 ...

  2. IoC容器装配Bean(xml配置方式)(Bean的生命周期)

    1.Spring管理Bean,实例化Bean对象 三种方式 第一种:使用类构造器实例化(默认无参数) package cn.itcast.spring.initbean; /** * 使用构造方法 实 ...

  3. Spring 自动装配 Bean

    Spring3系列8- Spring 自动装配 Bean 1.      Auto-Wiring ‘no’ 2.      Auto-Wiring ‘byName’ 3.      Auto-Wiri ...

  4. Spring自动装配Bean详解

    1.      Auto-Wiring ‘no’ 2.      Auto-Wiring ‘byName’ 3.      Auto-Wiring ‘byType 4.      Auto-Wirin ...

  5. MongoDB和Java(4):Spring Data整合MongoDB(XML配置)

    最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...

  6. Spring声明式事务(xml配置事务方式)

    Spring声明式事务(xml配置事务方式) >>>>>>>>>>>>>>>>>>>& ...

  7. Spring实战(三)Spring中装配Bean的三种方式---XML、JavaConfig、AutoWire

    创建应用对象之间协作关系的行为称为装配(wiring),这也是依赖注入的本质. Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系,而开发者需要告诉Spring需要创建哪些 ...

  8. Spring装配Bean---使用xml配置

    声明Bean Spring配置文件的根元素是<beans>. 在<beans>元素内,你可以放所有的Spring配置信息,包括<bean>元素的声明. 除了Bean ...

  9. Spring容器装配Bean的三种方式

    欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝 ...

  10. IDEA02 利用Maven创建Web项目、为Web应用添加Spring框架支持、bean的创建于获取、利用注解配置Bean、自动装配Bean、MVC配置

    1 环境版本说明 Jdk : 1.8 Maven : 3.5 IDEA : 专业版 2017.2 2 环境准备 2.1 Maven安装及其配置 2.2 Tomcat安装及其配置 3 详细步骤 3.1 ...

随机推荐

  1. js实现单张图片(或者多张)的预览功能

      这个是预览单张图片的,如果要预览多张图片,改下面红色标记的地方就好了 <html> <head> <meta http-equiv="Content-Typ ...

  2. Spring 自定义注解,配置简单日志注解

    java在jdk1.5中引入了注解,spring框架也正好把java注解发挥得淋漓尽致. 下面会讲解Spring中自定义注解的简单流程,其中会涉及到spring框架中的AOP(面向切面编程)相关概念. ...

  3. Andorid源码系列:View的onTouchEvent()与performClick(),performLongClick()调用时机解析

    这是大土豆的第一篇博客,想着工作3年多了,在工作上从一名菜鸟逐渐成长为在项目中能干点事的人,自己对Android的见解也一步步加深,有必要写一些对Android代码和开发过程中的感悟,和广大朋友们分享 ...

  4. Easyui+MVC+FullCalendar插件实现日程记录功能

    好久好久好久,,,没有写博客了,,久到账号都忘记了....分享一个干货.... 废话少说,先看看效果图. 要实现这样一个功能,先创建一个用于存储日程的记录表(不要问我为什么都是大写,因为初版在orac ...

  5. 常用http响应报文分析

    这是我在使用Asp.Net的时候,整理的的一些关于Http响应报文的分析笔记,零零散散的记录, 现在贴出来,抛砖引玉,如果有什么不对或者不严谨的地方,请各位大神不吝赐教. 一.HTTP响应码响应码由三 ...

  6. Qt中使用CEF(Windows下)

    最近项目中要在Qt中使用CEF(Chromium Embedded Framework),在这里总结下其中的几个要点. 下载合适的CEF版本 关于CEF的简介我们这里就不做介绍了,下载CEF可以有2种 ...

  7. vue 实现 tomato timer(蕃茄钟)

    近期在学习[时间管理]方面的课程,其中有一期讲了蕃茄工作法,发现是个好多东西.蕃茄工作法核心思想就是:工作25分钟,休息5分钟.如果您好了解更多可以自行度娘. 在加上本人是一个程序猿,就想用程序的方式 ...

  8. 第三篇:RESTful介绍

    在介绍restful之前先放一张从之前文章评论里看到的图,我觉得它把soap和rest之间的一些区别形容地非常形象. 在第一篇和第二篇中我们也介绍过,soap协议传递的报文要基于xml格式的soap消 ...

  9. tensorflow softplus应用

    1.softplus函数表达式 图像: 2.tensorflow 举例 import tensorflow as tf input=tf.constant([0,1,2,3],dtype=tf.flo ...

  10. 为Tornado框架加上基于Redis或Memcached的session 【第三方】

    Tornado 没有session,只有cookie_secret,这在一些情况下是不利于开发的.所有我们可以给Tornado加上session的功能. 这篇文章讲解的是依靠第三方包来实现.以后的文章 ...