Spring 使用XML管理对象的方式

Spring 使用XML管理对象的方式

XML文件配置

applicationContext.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
        https://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>

使用xml文件去管理对象时,需要先在resources目录下创建applicationContext.xml文件
该文件。
applicationContext可以看作是Spring IOC的容器,而applicationContext.xml就是用于配置该容器的xml文件。

使用XML标签配置bean对象

< bean >标签:一个bean标签即代表一个被Spring管理的对象。
< bean >标签下的属性:

  • id:给对象在容器中提供一个唯一标识,用于获取对象。
  • name :指定生成的Bean实例名称,即就是给对象起别名。
  • class:指定类的全限定名,用于反射创建对象,默认情况下调用无参构造函数。
  • socpe:指定对象的作用范围。
    • singleton:默认值,单例的(在整个容器中只有一个对象).
    • prototype:多例的
    • request:将Spring 创建的 Bean 对象存入到 request 域中.
    • session:将Spring 创建的 Bean 对象存入到 session 域中.
    • global session:WEB 项目中,应用在 Portlet 环境.如果没有 Portlet 环境那么globalSession 相当于 session。
  • init-method:指定类中的初始化方法名称。
  • destroy-method:指定类中销毁方法名称。比如DataSource的配置中一般需要指定destroy-method=“close”。
  • lazy-init:ApplicationContext实现的默认行为就是在启动时将所有 singleton bean进行实例化。lazy-init可以延迟初始化,设置lazy-init="true"使得Ioc容器在第一次需要bean的时候进行实例化。

< bean >子标签属性:

  • property:官方的话术是用来配置Bean实例的依赖关系(set方式注入,属性一定要有set方法),通俗讲就是配置对象属性的值
  • constructor-arg 用来配置Bean实例的依赖关系(构造方式注入)
  • ref:constructor-arg、property、list、set、entry等标记的子标记,指定一个Bean实例
  • value:constructor-arg、property、list、set、entry等标记的子标记,指定一个常量
  • list:用以封装List或数组类型属性的依赖注入 具体的元素通过ref或value子标记指定
  • set:封装Set类型属性的依赖注入 具体的元素通过ref或value子标记指定
  • map:封装Map类型属性的依赖注入 应为map是键值对,需要用entry子标签设置“键/值”对

name和id的区别:

Bean标签提供了两种标识Bean的Attribute:id和name

  • id用来标识bean,是唯一的,且只有一个,只允许以字母开头,其后只能为字母或数字或”-“。
  • name定义的是bean的alias,可以有多个,并可能与其他的bean重名,name允许特殊字符。
  • 当多个重名的name同时存在时,先产生的bean会被后产生的bean覆盖
  • 当id和name的值相同,通过值获取bean得到的是name对应的bean。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值