spring xml文件
来源:互联网 发布:mysql 官网下载旧版本 编辑:程序博客网 时间:2024/06/12 17:23
XML文件的结构一般如下
xmlns是XML Namespace 的缩写,这里表示spring 命名空间。Spring在Classpath中查找所有的 spring.handlers 并解析xml配置的命名空间与对应的处理类。命名空间的这些项目不是固定的,可从 http://www.springframework.org/schema/ 根据需求选择。
这里我们先不讨论它,主要看<bean> </bean>的组成结构,因为它表示如何从IoC容器中获取对象(bean)并完成我们所需要的功能。
上面代码的<bean id="helloWorld " class=" main.Java.com.sommer.learn.HelloWorldImpl"> </bean>,其中helloWorld表示bean的标识,main.java.com.sommer.learn.HelloWorldImpl表示bean的类。这只是bean的一种最简单的配置。
bean的配置项具体如下:
全限定类名(class):用于定义Bean的实现类;
Bean行为:这些定义了Bean在容器中的行为;包括作用域(单例、原型创建)、是否惰性初始化及生命周期等;
Bean创建方式:说明是通过构造器还是工厂方法创建;
Bean之间关系:即对其他bean的引用,也就是依赖关系定义,这些引用bean也可以称之为同事bean或依赖bean,也就是依赖注入。
一般情况下只有全限定类名是必须的,其他都是可选的。
bean的命名
1.不指定id,只配置必须的全限定类名,由IoC容器为其生成一个标识,程序必须通过“getBean(Class<T> requiredType)”获取Bean;
<bean class="main.java.com.sommer.learn.HelloWorldImpl"></bean>
获取bean的程序
2. 指定id,必须在Ioc容器中唯一;
<bean id="helloWorld" class="main.java.com.sommer.learn.HelloWorldImpl"></bean>
获取bean的程序
3. 指定name,必须在Ioc容器中唯一
<bean name="helloWorld" class="main.java.com.sommer.learn.HelloWorldImpl"></bean>
获取bean的程序
4. 指定别名alias(一个bean可以有多个)
<bean name="helloWorld" alias="alias1" class="main.java.com.sommer.learn.HelloWorldImpl"></bean>
获取bean的程序
如果同时指定了id和name,id就是标识符,而name就是别名,必须在Ioc容器中唯一;
如果指定多个name,第一个被用作标识符,其他的是别名,所有标识符也必须在Ioc容器中唯一;
注:name或id都作为“标识符”,那为什么还要同时存在呢?这是因为当使用基于XML的配置元数据时,在XML中id是一个真正的XML id属性,因此可以利用XML解析器来验证引用的这个id是否存在,从而更早的发现是否引用了一个不存在的bean,而使用name,则可能要在真正使用bean时才能发现引用一个不存在的bean。
- spring 加载XML文件
- Spring读写xml文件
- spring xml文件
- spring XML文件配置
- spring 配置xml文件
- Spring读取xml文件
- spring xml文件配置
- spring-mvc.xml文件
- spring-shiro.xml文件
- Spring的applicationContext.xml文件
- Spring的beans.xml文件
- spring xml配置properties文件
- Spring的applicationContext.xml文件
- spring aop 配置文件 xml文件
- 配置Spring的XML文件
- Spring的applicationContext.xml文件
- Spring的applicationContext.xml文件
- Spring零配置xml文件
- Kafka入门经典教程
- Js中读取、移除属性及隐藏组件方法研究
- poj 1029
- Winform-my输入框
- 编程语言之前端介绍
- spring xml文件
- docker for windows pull镜像文件的安装位置改变方法
- 牛客:剑指offer:扑克牌顺子 (Java)
- 基于Redis实现分布式锁
- android利用ZXing扫描二维码
- 0——keras学习笔记
- python2 爬取新浪帐号所有微博
- 51822服务发现(db_discovery)
- 瀑布流布局javascript or css3实现