【Spring 核心】装配bean(三)XML配置
项目包结构:
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配置的更多相关文章
- Spring_总结_03_装配Bean(三)_XML配置
一.前言 本文承接上一节:Spring_总结_03_装配Bean(二)之Java配置 上一节说到,当需要显示配置时,首选类型安全并且比XML更强大Java配置. 那什么时候使用XML配置呢? (1)维 ...
- IoC容器装配Bean(xml配置方式)(Bean的生命周期)
1.Spring管理Bean,实例化Bean对象 三种方式 第一种:使用类构造器实例化(默认无参数) package cn.itcast.spring.initbean; /** * 使用构造方法 实 ...
- Spring 自动装配 Bean
Spring3系列8- Spring 自动装配 Bean 1. Auto-Wiring ‘no’ 2. Auto-Wiring ‘byName’ 3. Auto-Wiri ...
- Spring自动装配Bean详解
1. Auto-Wiring ‘no’ 2. Auto-Wiring ‘byName’ 3. Auto-Wiring ‘byType 4. Auto-Wirin ...
- MongoDB和Java(4):Spring Data整合MongoDB(XML配置)
最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...
- Spring声明式事务(xml配置事务方式)
Spring声明式事务(xml配置事务方式) >>>>>>>>>>>>>>>>>>>& ...
- Spring实战(三)Spring中装配Bean的三种方式---XML、JavaConfig、AutoWire
创建应用对象之间协作关系的行为称为装配(wiring),这也是依赖注入的本质. Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系,而开发者需要告诉Spring需要创建哪些 ...
- Spring装配Bean---使用xml配置
声明Bean Spring配置文件的根元素是<beans>. 在<beans>元素内,你可以放所有的Spring配置信息,包括<bean>元素的声明. 除了Bean ...
- Spring容器装配Bean的三种方式
欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝 ...
- 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 ...
随机推荐
- Oozie时出现org.apache.oozie.service.ServiceException: E0103: Could not load service classes, Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
不多说,直接上干货! 问题详情 查看你的$OOZIE_HOME/logs 我的是/home/hadoop/app/oozie-4.1.0-cdh5.5.4/logs/oozie.log文件 [hado ...
- 平方根的C语言实现(一)
曾经做一个硬件成本极度控制的项目,因为硬件成本极低,并且还需要实现较高的精度测量,过程中也自己用C语言实现了正弦.余弦.反正切.平方根等函数. 以下,无论是在我的实际项目中还是本地的计算机系统,int ...
- 有点难度的JS面试题
自己总结了一些JS面试题 希望能够帮助正在找工作的程序猿(●´∀`●) 1.js 实现一个函数对javascript中json 对象进行克隆 var oldObject ="sdf" ...
- Java-认识变量、注释并能及时发现错误
package com;//变量的演示public class VarDemo { public static void main(String[] args) { /* * 1)题目不用抄 2)注释 ...
- (转)Spring定时任务的几种实现
Spring定时任务的几种实现 博客分类: spring框架 quartzspringspring-task定时任务注解 Spring定时任务的几种实现 近日项目开发中需要执行一些定时任务,比如需要 ...
- Redis作为消息队列服务场景应用案例(入队和出队)
http://www.cnblogs.com/leo_wl/p/3831349.html
- log4g 使用教程
日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录.在apache网站:jakarta.apache.org/log4j 可以免费下载到Log ...
- seajs的模块化开发--实践笔记
2017-04-02 SeaJS是一个遵循CMD规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制.有效的解决复杂项目中命名冲突.依赖.性能等问题. SeaJS ...
- Java中synchronized和Lock的区别
synchronized和Lock的区别synchronize锁对象可以是任意对象,由于监视器方法必须要拥有锁对象那么任意对象都可以调用的方法所以将其抽取到Object类中去定义监视器方法这样锁对象和 ...
- hdu--1711--kmp应用在整形数组--Number Sequence
/* Name: hdu--1711--Number Sequence Author: shen_渊 Date: 16/04/17 19:58 Description: 第一次知道,KMP能用在整形数 ...