一、通过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. CentOS7 安装Chrome

    1. 下载Chrome浏览器的rpm包 https://www.chrome64bit.com/index.php/google-chrome-64-bit-for-linux 2. 安装Chrome ...

  2. css ! important 兼容性的一点测试

    css ! important 这个东西网上一堆内容,我只说我用到的一点地方和我的理解, 这个东西ie6不支持,ie高版本是支持的.其他浏览器也是支持.先理解这一点 .abc { width:100p ...

  3. 谷歌强制厂商升级KitKat 仍无法改善安卓碎片化

    据一份泄露的内部文档显示,谷歌计划推出新的Android版本及设备审批条例,限制硬件制造商推出Android 4.4 KitKat以下的旧版本硬件,来改变平台碎片化现象.如果厂商一意孤行,继续推出搭载 ...

  4. Python Tuples

    1. basic Tuples is a sequence of immutable object. It's a sequence, just like List. However, it cann ...

  5. linux命令日志处理

    刘超 2018/10/8 10:32:43 zcat bi_www_activity_2018100*.log.gz |grep --color '多方电话h5_' | awk -F'|' '{pri ...

  6. swagger 接口文档,控制器 和 object类型的参数与返回值 的 注释不显示问题

    一.控制器的注释不显示:是因为配置swagger的时候没有将includeControllerXmlComments参数配置为true,因为其默认值为false 二.object 类型的参数和返回值 ...

  7. Volatile关键字以及线程的内存可见性问题

    一.Volatile关键字 作用: 当多个线程进行操作共享数据时,可以保证内存中的数据可见,即为一个线程对数据的修改对另外一个线程来说是可见的.相较于 synchronized 是一种较为轻量级的同步 ...

  8. Spring2.5那些事之基于AOP的方法级注解式日志配置

    在日常开发中经常需要在代码中加入一些记录用户操作日志的log语句,比如谁在什么时间做了什么操作,等等. 把这些对于开发人员开说无关痛痒的代码写死在业务方法中实在不是一件很舒服的事情,于是AOP应运而生 ...

  9. Ubuntu 15.04 开机无法进入图形界面,自动进入emergency mode解决方法

    原因:关机的时候没有正常退出,直接强制关机了... 解决: 就是在那个GIVE root password for maintenance (or type control-D to continue ...

  10. Texture Combiner

    [Texture Combiner] After the basic vertex lighting has been calculated, textures are applied. In Sha ...