Spring的xml标签属性day02
4)IoC配置(XML格式)
4.1)bean
名称:bean
类型:标签
归属:beans标签
作⽤:定义spring中的资源,受此标签定义的资源将受到spring控制
格式:
<beans>
<bean />
</beans>
基本属性:
<bean id="beanId"name="beanName1,beanName2"class="ClassName"></bean>
id:bean的名称,通过id值获取bean
class:bean的类型
name:bean的名称,可以通过name值获取bean,⽤于多⼈配合时给bean起别名
4.2)bean属性scope
名称:scope
类型:属性
归属:bean标签
作⽤:定义bean的作⽤范围
格式:
<bean scope="singleton"></bean>
取值:
singleton:设定创建出的对象保存在spring容器中,是⼀个单例的对象
prototype:设定创建出的对象保存在spring容器中,是⼀个⾮单例的对象
request、session、application、 websocket :设定创建出的对象放置在web容器对应的位置4.3)bean⽣命周期
作⽤:定义bean对象在初始化或销毁时完成的⼯作
格式:
<bean init-method="init" destroy-method="destroy></bean>
取值:bean对应的类中对应的具体⽅法名
注意事项:
当scope=“singleton”时,spring容器中有且仅有⼀个对象,init⽅法在创建容器时仅执⾏⼀次
当scope=“prototype”时,spring容器要创建同⼀类型的多个对象,init⽅法在每个对象创建时均执⾏⼀次当scope=“singleton”时,关闭容器会导致bean实例的销毁,调⽤destroy⽅法⼀次
当scope=“prototype”时,对象的销毁由垃圾回收机制gc()控制,destroy⽅法将不会被执⾏
4.4)bean对象创建⽅式(了解)
(1)factory-bean
名称:factory-bean
类型:属性
el表达式获取session中的值归属:bean标签
作⽤:定义bean对象创建⽅式,使⽤静态⼯⼚的形式创建bean,兼容早期遗留系统的升级⼯作
格式:
<bean class="FactoryClassName"factory-method="factoryMethodName"></bean>
取值:⼯⼚bean中⽤于获取对象的静态⽅法名
注意事项:
class属性必须配置成静态⼯⼚的类名
(2)factory-bean,factory-method
作⽤:定义bean对象创建⽅式,使⽤实例⼯⼚的形式创建bean,兼容早期遗留系统的升级⼯作
格式:
<bean factory-bean="factoryBeanId"factory-method="factoryMethodName"></bean>
取值:⼯⼚bean中⽤于获取对象的实例⽅法名
注意事项:
使⽤实例⼯⼚创建bean⾸先需要将实例⼯⼚配置bean,交由spring进⾏管理
factory-bean是实例⼯⼚的beanId
4.5)DI
IoC(Inversion Of Control)控制翻转,Spring反向控制应⽤程序所需要使⽤的外部资源
DI(Dependency Injection)依赖注⼊,应⽤程序运⾏依赖的资源由Spring为其提供,资源进⼊应⽤程序的⽅式称为注⼊4.6)set注⼊(主流)
名称:property
类型:标签
归属:bean标签
作⽤:使⽤set⽅法的形式为bean提供资源
格式:
<bean>
<property />
</bean>
基本属性:
<property name="propertyName"value="propertyValue"ref="beanId"/>
name:对应bean中的属性名,要求该属性必须提供可访问的set⽅法(严格规范为此名称是set⽅法对应名称)
value:设定⾮引⽤类型属性对应的值,不能与ref同时使⽤
ref:设定引⽤类型属性对应bean的id ,不能与value同时使⽤
注意:⼀个bean可以有多个property标签
4.7)构造器注⼊(了解)
名称:constructor-arg
类型:标签
归属:bean标签
作⽤:使⽤构造⽅法的形式为bean提供资源,兼容早期遗留系统的升级⼯作
格式:
<bean>
<constructor-arg />
</bean>
基本属性:
<constructor-arg name="argsName" value="argsValue />
name:对应bean中的构造⽅法所携带的参数名
value:设定⾮引⽤类型构造⽅法参数对应的值,不能与ref同时使⽤
其他属性:
<constructor-arg index="arg-index"type="arg-type"ref="beanId"/>
ref:设定引⽤类型构造⽅法参数对应bean的id ,不能与value同时使⽤
type :设定构造⽅法参数的类型,⽤于按类型匹配参数或进⾏类型校验
index :设定构造⽅法参数的位置,⽤于按位置匹配参数,参数index值从0开始计数注意:⼀个bean可以有多个constructor-arg标签
4.8)集合类型数据注⼊
名称:array,list,set,map,props
类型:标签
归属:property标签 或 constructor-arg标签
作⽤:注⼊集合数据类型属性
格式:
<property>
<list></list>
</property>
(1)集合类型数据注⼊——list
<property name="al">
<list>
<value>itheima</value>
<value>66666</value>
</list>
</property>
(2)集合类型数据注⼊——props
<property name="properties">
<props>
<prop key="name">itheima666</prop>
<prop key="value">666666</prop>
</props>
</property>
(3)集合类型数据注⼊——array (了解)
<property name="arr">
<array>
<value>123456</value>
<value>66666</value>
</array>
</property>
(4)集合类型数据注⼊——set(了解)
<property name="hs">
<set>
<value>itheima</value>
<value>66666</value>
</set>
</property>
(5)集合类型数据注⼊——map(了解)
<property name="hm">
<map>
<entry key="name"value="itheima66666"/>
<entry key="value"value="6666666666"/>
</map>
</property>
4.9)使⽤p命名空间简化配置(了解)
名称:p:propertyName,p:propertyName-ref
类型:属性
归属:bean标签
作⽤:为bean注⼊属性值
格式:
<bean propertyName="propertyValue"propertyName-ref="beanId"/>
注意:使⽤p命令空间需要先开启spring对p命令空间的的⽀持,在beans标签中添加对应空间⽀持
<beans xmlns="/schema/beans"xsi="/2001/XMLSchema-instance"p="www./schema/p"schemaLocation="www.springframewo
后续课程中还将开启其他的命名空间,⽅式同上
案例:
<bean
id="userService"
class="com.itheima.service.impl.UserServiceImpl"
userDao-ref="userDao"
bookDao-ref="bookDao"
/>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。