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

Spring5源码之IOC的Bean管理之xml

Spring5源码学习之IOC的Bean管理

    • 1 Bean管理概述
    • 2 Bean管理操作之XML
      • 1 基于xml方式创建对象
      • 2 基于xml方式注入属性
        • 1 使用set方法注入
        • 2 使用有参构造注入
      • 3 p名称空间注入

1 Bean管理概述

Bean 管理指的是两个操作:

  • Spring创建对象
  • Spring注入属性

Bean管理操作的两种方式:

  • 基于xml配置文件方式实现
  • 基于注解方式实现

2 Bean管理操作之XML

1 基于xml方式创建对象

如入门案例中:

<bean id="user" class = "com.cf.spring5.User"></bean>
  • 在spring配置文件中,使用bean标签,标签里面添加对应属性,就可以实现对象创建
  • 在bean标签中有很多属性,常用的有:
    • id属性 唯一标识
    • class属性 类全路径
  • 创建对象时候,默认执行的是无参构造器方法创建对象

2 基于xml方式注入属性

DI 依赖注入,给对象注入属性

1 使用set方法注入

1 创建案例类

public class Book {
 // 创建属性
 private String bname;
 private String bauthor;
 // 创建属性对应的 set 方法
 public void setBname(String bname) {
 this.bname = bname;
 }
 public void setBauthor(String bauthor) {
 this.bauthor = bauthor;
 }
}

2 在spring配置文件配置对象创建,配置属性注入

<bean id="book" class="com.atguigu.spring5.Book">
 <!--使用 property 完成属性注入
 name:类里面属性名称
 value:向属性注入的值
 -->
 <property name="bname" value="六脉神剑"></property>
 <property name="bauthor" value="段誉"></property>
</bean>

2 使用有参构造注入

1 创建案例类

public class Orders {
 // 属性
 private String oname;
 private String address;
 // 有参数构造
 public Orders(String oname,String address) {
 this.oname = oname;
 this.address = address;
 }
}

2 在spring配置文件配置对象创建,配置属性注入

<bean id="orders" class="com.atguigu.spring5.Orders">
 <constructor-arg name="oname" value="电脑"></constructor-arg>
 <constructor-arg name="address" value="China"></constructor-arg>
</bean>

3 p名称空间注入

使用p名称空间注入,可以简化基于xml配置方式

1 添加p名称空间在配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       
 xmlns:p="http://www.springframework.org/schema/p"
       
 xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd">

</beans>

2 进行属性注入,在bean标签里面进行操作

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       
 xmlns:p="http://www.springframework.org/schema/p"
       
 xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd">
    
    <bean id="book" class="com.cf.spring5.Book" p:bname="独孤九剑" 
p:bauthor="无名氏"></bean>

</beans>

相关文章:

  • DHCP 服务
  • [架构之路-20]:目标系统 - 硬件平台 - 嵌入式系统硬件电路基础:架构、设计流程、总线、外设、基本电路、编码
  • 关系代数 运算
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • python使用cv2库实现图像的读取处理显示和保存
  • 二道题:分组顺序向下填充 和 标注数据整理
  • 节日网页HTML代码 学生网页课程设计期末作业下载 清明节大学生网页设计制作成品下载 DW节日网页作业代码下载
  • 生命在于折腾——某国外cms代码审计
  • 『从零开始学小程序』媒体组件audio组件
  • [HJ73 计算日期到天数转换]
  • FastDFS数据迁移
  • Java Web 10 JSP 10.3 JSP 原理
  • extern “C“
  • 基于ARM9平台的网络可视电话设计
  • [Qualcomm][GPIO]高通芯片引脚相关知识记录
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • iOS小技巧之UIImagePickerController实现头像选择
  • Map集合、散列表、红黑树介绍
  • PhantomJS 安装
  • 不上全站https的网站你们就等着被恶心死吧
  • 复杂数据处理
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 和 || 运算
  • 力扣(LeetCode)22
  • 你不可错过的前端面试题(一)
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 移动端解决方案学习记录
  • linux 淘宝开源监控工具tsar
  • Linux权限管理(week1_day5)--技术流ken
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • (1)(1.13) SiK无线电高级配置(六)
  • (2.2w字)前端单元测试之Jest详解篇
  • (6)STL算法之转换
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (九)信息融合方式简介
  • (五)c52学习之旅-静态数码管
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • **CI中自动类加载的用法总结
  • .axf 转化 .bin文件 的方法
  • .NET Core 中的路径问题
  • .NET实现之(自动更新)
  • [ MSF使用实例 ] 利用永恒之蓝(MS17-010)漏洞导致windows靶机蓝屏并获取靶机权限
  • []利用定点式具实现:文件读取,完成不同进制之间的
  • [ai笔记3] ai春晚观后感-谈谈ai与艺术
  • [AMQP Connection 127.0.0.1:5672] An unexpected connection driver error occured
  • [BZOJ1008][HNOI2008]越狱
  • [CISCN 2023 初赛]go_session
  • [CSS]盒子模型