spring的IOC容器Bean管理(基于xml方式)-创新互联

  • ==目的:==降低耦合度
  • ==技术:==xml解析、工厂模式、反射
ioc容器的实现
  • spring框架提供了两种实现方式(两个接口)
    • BeanFactory接口
      1. ioc容器的基本实现,是spring框架内部使用的接口,一般不提供给开发人员使用
      2. 在加载xml配置文件时,不会创建xml中的bean对象,在获取对象(使用)bean时才创建对象
    • ApplicationContext接口
      1. 是BeanFactory的子接口,提供更多更强大的功能,一般由开发人员使用
      2. 在加载xml配置文件时,就创建对象xml中的bean对象
  • ApplicationContext接口的两个主要实现类
    • FileSystemXmlApplicationContext类
      从系统中的全路径去获取配置文件
    • ClassPathXmlApplicationContext类
      从项目的相对类路径(一般从src/路径开始)去获取配置文件

eg:
  • xml配置文件
 
  • 对象生成
//1.加载spring配置文件
	//方法1:ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");  
	//方法2:BeanFactory context = new ClassPathXmlApplicationContext("bean.xml");  
	//方法3:ApplicationContext context = new FileSystemXmlApplicationContext("C:\\Users\\HUAWEI\\idea-workspace\\spring5_demo1\\src\\bean.xml");  
	//方法4:
BeanFactory context = new FileSystemXmlApplicationContext("C:\\Users\\HUAWEI\\idea-workspace\\spring5_demo1\\src\\bean.xml");  

//2.获取配置文件的对象  
User user = context.getBean("user", User.class);

xml中创建bean对象
  • 属性:
    • id:起的别名
    • name:与id 属性作用相同(区别:可以输入特殊符号)
    • class:类的相对路径
  • 基于无参构造方法创建对象
    注意

如果类中没有无参构造方法,则无法创建

创新互联作为成都网站建设公司,专注网站建设、网站设计,有关成都定制网站方案、改版、费用等问题,行业涉及OPP胶袋等多个领域,已为上千家企业服务,得到了客户的尊重与认可。
xml中注入属性
  • DI:依赖注入,注入属性(是ioc具体实现的操作)
  • 基于set 方法注入属性
    注意

如果类中没有创建set 方法,则无法注入

p名称空间注入,简化set 注入

  • 基于有参构造方法注入属性

如果类中没有创建有参构造方法,则无法注入


注入空值和特殊符号
  • null空值
  • 属性值包含特殊符号
    1. 进行转义字符
    2. 把值写成CDATA格式
注入外部bean对象(ref)
  • 需求
  1. 有两个类一个Service类和一个实现Dao接口DaoImpl类
  2. 需要在Service类的对象中调用Dao类向上转型对象中的方法
  • 前提条件
  1. Service类中有Dao接口对象的属性
private UserDao userDao;
  1. 有set方法设置Dao接口对象
public void setUserDao(UserDao userDao){this.userDao = userDao;}
  • xml配置
注入内部Bean对象和级联赋值
  • 需求

一个员工Emp类中的dept(部门)属性是一个对象

  • xml配置
    基于set方法注入属性
 
  • 级联赋值
    基于set和get方法注入属性
    • 方法1
- 方法2
注入集合类型属性

基于set方法注入属性

  • 数组类型
Java C++ Python
  • List类型
Java C++ Python
  • Map类型
  • Set类型
Java C++ Python
注入对象集合类型属性

基于set方法注入属性

  • 需求
private Listsourses;
  • xml配置
 
提取集合类型注入属性

基于set方法

  • List类型(其他集合类型类似)
JavaC++

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享名称:spring的IOC容器Bean管理(基于xml方式)-创新互联
文章源于:http://azwzsj.com/article/egijc.html