当前位置: 首页 > news >正文

【spring框架】beans.xml规范与ClassPathXmlApplicationContext类介绍

1.beans.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

  <bean id="u" class="com.bjsxt.dao.impl.UserDAOImpl">
  </bean>
	
  <bean id="userService" class="com.bjsxt.service.UserService">
  	<property name="userDAO" ref="u" />
  		
  </bean>
  
</beans>


2.ClassPathXmlApplicationContext类介绍

ClassPathXmlApplicationContext这个类实现了BeanFactory、ApplicationContext等接口。

ApplicationContext的父接口是BeanFactory,所以,在下面的小例子中,BeanFactory可以改成ApplicationContext
@Test
public void testAdd() throws Exception{
BeanFactory ctx=new ClassPathXmlApplicationContext("beans.xml");

UserService userService=(UserService)ctx.getBean("userService");
User u=new User();
u.setUsername("u1");
u.setPassword("p1");
userService.add(u);
}


那么该用ApplicationContext还是BeanFactory呢?建议你用ApplicationContext,因为ApplicationContext是建立在BeanFactory之上的,ApplicationContext延伸出了更多的方法。BeanFactory只是完成了Bean工厂的一些功能,像Bean的一些生命周期它都处理不了。但是ApplicationContext除了能完成BeanFactory的所有功能之外,还可以完成一些其他的附加功能,比如说生命周期等待。

转载注明出处:http://blog.csdn.net/acmman

相关文章:

  • It's not a Bug, It's a Feature! --POJ 1482
  • postgresql 死锁问题解决记录
  • WCF Data Services客户端访问
  • css知多少(4)——解读浏览器默认样式
  • Breakthrough—JavaScript基础
  • 辛苦几个小时,终于装完主机了
  • 【连载】【FPGA黑金开发板】Verilog HDL那些事儿--PS2封装(十八)
  • android httpClient 支持HTTPS的2种处理方式
  • 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇阶段总结与WinForm篇展望...
  • 如何开启常用端口和其他端口
  • C# HttpRequest基础连接已经关闭: 接收时发生意外错误
  • 学习笔记----安装nginx
  • 从零开始学android开发-查看sqlite数据库
  • 大数据的导入与导出,可以用到两个方法
  • 各种类型Android源代码
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • HashMap剖析之内部结构
  • JavaScript 一些 DOM 的知识点
  • k8s 面向应用开发者的基础命令
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • Spring Cloud Feign的两种使用姿势
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 闭包,sync使用细节
  • 猴子数据域名防封接口降低小说被封的风险
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 前端性能优化--懒加载和预加载
  • 三分钟教你同步 Visual Studio Code 设置
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 线上 python http server profile 实践
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​ArcGIS Pro 如何批量删除字段
  • ​比特币大跌的 2 个原因
  • ​批处理文件中的errorlevel用法
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (python)数据结构---字典
  • (剑指Offer)面试题34:丑数
  • (实战篇)如何缓存数据
  • (转)Windows2003安全设置/维护
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .net 托管代码与非托管代码
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .NET关于 跳过SSL中遇到的问题
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .NET开发不可不知、不可不用的辅助类(一)
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [Asp.net mvc]国际化