一、通过XML装配Bean

  • 装配简易值
  • 装配集合
  • 命名空间装配(暂不测试)

二、测试例子

创建一个用户类:UserBean.java

 package com.xfwl.spring.assem;
/**
* Pojo实体类
* @author Jason
*
*/
public class UserBean {
private String uname;
private String upwd;
public UserBean(){}
public UserBean(String uname,String upwd){
this.uname=uname;
this.upwd=upwd;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUpwd() {
return upwd;
}
public void setUpwd(String upwd) {
this.upwd = upwd;
}
@Override
public String toString() {
return "UserBean [uname=" + uname + ", upwd=" + upwd + "]";
} }

创建一个管理类:Manager.java

 package com.xfwl.spring.assem;

 import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
/**
*
* @function
* @author 小风微凉
* @time 2018-7-10 上午11:32:01
*/
public class Manager{
private long id;
private List<UserBean> userList;
private Map<String,UserBean> userMap;
private Properties userProps;
private Set<UserBean> userSet;
private String[] userArr; /****getter和setter*******/
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public List<UserBean> getUserList() {
return userList;
}
public void setUserList(List<UserBean> userList) {
this.userList = userList;
}
public Map<String, UserBean> getUserMap() {
return userMap;
}
public void setUserMap(Map<String, UserBean> userMap) {
this.userMap = userMap;
}
public Properties getUserProps() {
return userProps;
}
public void setUserProps(Properties userProps) {
this.userProps = userProps;
}
public Set<UserBean> getUserSet() {
return userSet;
}
public void setUserSet(Set<UserBean> userSet) {
this.userSet = userSet;
}
public String[] getUserArr() {
return userArr;
}
public void setUserArr(String[] userArr) {
this.userArr = userArr;
} }

配置文件

 <?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-2.0.xsd"> <!-- XML装配:装配简易值 -->
<bean id="user_tom" class="com.xfwl.spring.assem.UserBean">
<property name="uname" value="tom"></property>
<property name="upwd" value="123456"></property>
</bean>
<!-- XML装配:装配集合 -->
<bean id="user_xfww" class="com.xfwl.spring.assem.UserBean">
<property name="uname" value="小风微微"></property>
<property name="upwd" value="123456"></property>
</bean>
<bean id="user_xfll" class="com.xfwl.spring.assem.UserBean">
<property name="uname" value="小风凉凉"></property>
<property name="upwd" value="123456"></property>
</bean>
<bean id="manager" class="com.xfwl.spring.assem.Manager">
<property name="id" value="100001"/>
<property name="userList">
<list>
<ref bean="user_xfww"/>
<ref bean="user_xfll"/>
</list>
</property>
<property name="userMap">
<map>
<entry key="xfww" value-ref="user_xfww"/>
<entry key="xfll" value-ref="user_xfll"/>
</map>
</property>
<property name="userProps">
<props>
<prop key="xfww">小风微微</prop>
<prop key="xfll">小风凉凉</prop>
</props>
</property>
<property name="userSet">
<set>
<ref bean="user_xfww"/>
<ref bean="user_xfll"/>
</set>
</property>
<!-- property下不存在array -->
</bean> </beans>

测试类:TestBean.java

 package com.xfwl.spring.assem;
import java.util.Iterator; import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext; /**
* Spring Ioc测试
* @function
* @author 小风微凉
* @time 2018-7-10 上午9:55:15
*/
public class TestBean {
//项目相对路径
private static final String xmlRelPath="com/xfwl/spring/assem/applicationContext.xml";
public static void main(String[] args) {
ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext(xmlRelPath);
Manager manager =(Manager) context.getBean("manager");
System.out.println("size="+manager.getUserList().size());
Iterator<UserBean> its=manager.getUserList().iterator();
for(;its.hasNext();){
UserBean u=(UserBean)its.next();
System.out.println(u.toString());
}
}
}

测试结果:

 log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
size=2
5 UserBean [uname=小风微微, upwd=123456]
6 UserBean [uname=小风凉凉, upwd=123456]

JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(9):通过XML装配Bean的更多相关文章

  1. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(10):通过注解(annotation)装配Bean之(@Configguration、@Component、@Value、@ComponentScan、@Autowired、@Primary、@Qualifier、@Bean)

    一.通过注解(annotation)装配Bean 通过之前的学习,我们已经知道如何使用XML装配Bean,但是更多的时候已经不再推荐使用XML的方式去装配Bean,更多的时候会考虑注解(annotat ...

  2. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(8):装配SpringBean概述(如何合理使用装配级别)

    一. 装配Bean概述  关于如何将自己开发的Bean配置到Spring IoC容器中,大部分场景下,我们都会使用ApplicationContext的具体实现类,因为对应的Spring IoC容器功 ...

  3. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(6):Spring IOC容器学习(概念、作用、Bean生命周期)

    一.IOC控制反转概念 控制反转(IOC)是一种通过描述(在Java中可以是XML或者是注解)并通过第三方去生产或获取特定对象的方式. 主动创建模式,责任在于开发者,而在被动模式下,责任归于Ioc容器 ...

  4. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(2):SSM+Redis概念理解

    一.SSM+Redis的结构图 在Java互联网中,以Spring+SpringMVC+MyBatis(SSM)作为主流框架,SSM+Redis的结构图如下: 二.下面介绍它们各自承担的功能: 1.S ...

  5. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(1):Mybatis和Hibernate概念理解

    一.关键字说明: oop:面向对象 aop:面向切面 ioc:控制反转 orm:对象关系映射 pojo:数据库表映射的java实体类 二.常识说明:1.hibernate和mybatis都属于持久层. ...

  6. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(12):XML配置自动扫描包,自动加载*.properties文件

    一.XML和注解组合使用 前几篇的测试案例都是在Java类中配置,现在换一种使用方式,在XML中配置,使Spring IoC容器在启动之后自动去扫描配置的包路径,扫描加载指定路径下的propertie ...

  7. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(7):装配SpringBean·依赖注入装配

    一.依赖注入的三种方式      在实际环境中实现IoC容器的方式主要分为两大类,一类是依赖查找,依赖查找是通过资源定位,把对应的资源查找回来.另一类则是依赖注入.一般而言,依赖注入可分为3中方式: ...

  8. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(11):XML和Annotation装配Bean的混合使用(@ImportResource)

    一.XML和Annotation装配Bean如何合理使用 引入第三方资源包中类的时候,建议使用XML配置,而使用自己编写的Java类的时候,推荐使用Annotation注解配置Bean. 二.关于注解 ...

  9. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(5):责任链模式、观察者模式

    一.责任链模式.观察者模式 1.责任链模式:当一个对象在一条链上被多个拦截器处理(烂机器也可以选择不拦截处理它)时,我们把这样的设计模式称为责任链模式,它用于一个对象在多个角色中传递的场景.   2. ...

随机推荐

  1. 【做题记录】USACO silver * 50(第一篇)

    由于我太菜,决定按照AC人数从小到大慢慢做. BZOJ开了权限号真的快了好多诶~ 29/50 1606: [Usaco2008 Dec]Hay For Sale 购买干草 背包dp 1610: [Us ...

  2. java继承 初始化顺序

    java继承 初始化顺序 标签: 初始化顺序 2013-08-01 10:13 879人阅读 评论(0) 收藏 举报  分类: java(8)  版权声明:本文为博主原创文章,未经博主允许不得转载. ...

  3. maven release plugin插件

    1.打包版本区别 SNAPSHOT 快照版本(开发阶段,不稳定,容易出现bug)RELEASE 正式版本(外部依赖使用阶段,稳定,很少出现bug)Tag :标记每次代码提交的版本(比较稳定,类似分支) ...

  4. 跨境B2B电商

    主要处理问题:解决整个支付和流通环节,各国双方的供应商和销售商只关注下单支付后就可以拿到货物,中间环节由平台处理,支付和流通环节消费越少速度越快服务越好. 主体业务 1.合同处理. 2.货币支付,互换 ...

  5. input标签存在的兼容问题?

    当input标签在type为text时,在Firefox和Safari中的默认高度为22像素(包括上下边框)宽度为146像素(包括左右边框),而在IE中的默认高度为24像素,而宽度却和Firefox和 ...

  6. PHP对全局变量_GET、_POST中特殊字符的过滤

     $sVariablesOrder = ini_get( 'variables_order' );      $request = array();      //过滤不安全数据   for ( $i ...

  7. 微信登录失败,redirect_uri域名与后台配置不一致,错误代码10003

    微信登录失败,redirect_uri域名与后台配置不一致,错误代码10003 1 先检查网页的授权域名  不要带http:// 2 检查下自己的appid是否正确 我换了appid没上传,多花了时间 ...

  8. 关于C++成员函数指针的使用

    在做项目的时候,遇到了在类中根据不同的调用函数,在被调用函数的某处需要做不同的处理,本来就想着直接在类中设个标记变量判断下就好了,不过觉得这样代码可能看起来会有些凌乱,而且效率估计有些低,于是想起来使 ...

  9. vagrant+docker搭建consul集群开发环境

    HashiCorp 公司推出的Consul是一款分布式高可用服务治理与服务配置的工具.关于其配置与使用可以参考这篇文章 consul 简介与配置说明. 一般,我们会在多台主机上安装并启动 consul ...

  10. 深度学习篇——Tensorflow配置(傻瓜安装模式)

    前言 如果你是一个完美主义者,那么请绕过此文,请参考<深度学习篇——Tensorflow配置(完美主义模式)> 安装 pip install tensorflow ok,只要不报错,安装就 ...