spring--基于 XML 配置 bean的方式

目录

1.通过构造器配置 bean

案例

使用细节:

2.通过 p 名称空间配置 bean

增加命名空间配置

案例

 3.引用/注入其它 bean 对象

案例

 4.引用/注入内部 bean 对象

案例

5.引用/注入集合/数组类型 

list 集合

map 集合

​编辑

 properties 集合

 数组

 set集合

 使用细节

6.通过 util 名称空间创建 list 

增加util 名称空间配置

案例

 7.级联属性赋值

说明:

案例

 8.bean 配置信息重用(继承)

案例

只能被继承,而不能实例化的情况

​编辑

9.通过静态工厂获取对象

● 案例说明

●静态工厂代码:

●xml配置:

 10.通过实例工厂获取对象

● 案例说明

●实例工厂代码:

●xml配置:

 11.通过 FactoryBean 获取对象(重点)

● 案例说明

● MyFactoryBean 代码:

●xml配置:

●使用(获取bean):

 12.通过属性文件给 bean 注入值

●创建配置文件

 ●xml配置:


1.通过构造器配置 bean

案例

使用细节:

1. 通过 index 属性来区分是第几个参数
2. 通过 type 属性来区分是什么类型 ( 按照顺序 )

2.通过 p 名称空间配置 bean

增加命名空间配置

1. beans.xml 配置 , 增加命名空间配置
< 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" >

案例

 3.引用/注入其它 bean 对象

案例

 4.引用/注入内部 bean 对象

案例

5.引用/注入集合/数组类型 

list 集合

map 集合

 properties 集合

 数组

 set集合

 使用细节

6.通过 util 名称空间创建 list 

增加util 名称空间配置

< 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"
xmlns: util ="http://www.springframework.org/schema/util"
xsi :schemaLocation ="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd " >

案例

 7.级联属性赋值

说明:

spring ioc 容器, 可以直接给对象属性的属性赋值, 即级联属性赋值

案例

 8.bean 配置信息重用(继承)

案例

只能被继承,而不能实例化的情况

9.通过静态工厂获取对象

案例说明

spring ioc 容器 , 可以通过静态工厂获取 bean 对象

静态工厂代码:

package com.hspedu.spring.factory;

import com.hspedu.spring.bean.Monster;

import java.util.HashMap;
import java.util.Map;

/**
 * @author 加棉
 * @version 1.0
 * 静态工厂类-可以返回Monster对象
 */
public class MyStaticFactory {
    private static Map<String, Monster> monsterMap;

    //使用 static代码块 进行初始化
    //在java基础的时候,讲过的
    static  {
        monsterMap = new HashMap<>();
        monsterMap.put("monster01", new Monster(100,"牛魔王","芭蕉扇"));
        monsterMap.put("monster02", new Monster(200,"狐狸精","美人计"));
    }

    //提供一个方法,返回Monster对象
    public static Monster getMonster(String key) {
        return monsterMap.get(key);
    }

}

xml配置:

 10.通过实例工厂获取对象

案例说明

spring ioc 容器 , 可以通过实例工厂获取 bean 对象

●实例工厂代码:

package com.hspedu.spring.factory;

import com.hspedu.spring.bean.Monster;

import java.util.HashMap;
import java.util.Map;

/**
 * @author 加棉
 * @version 1.0
 * 实例工厂类
 */
public class MyInstanceFactory {
    private Map<String, Monster> monster_map;

    //通过普通代码块进行初始化
    {
        monster_map = new HashMap<>();
        monster_map.put("monster_01", new Monster(100, "猴子精", "吃人"));
        monster_map.put("monster_02", new Monster(200, "九头金雕", "如来神掌"));
    }

    //写一个方法返回Monster对象
    public Monster getMonster(String key) {
        return monster_map.get(key);
    }
}

xml配置:

 11.通过 FactoryBean 获取对象(重点)

案例说明

 spring ioc 容器,通过 FactoryBean 获取 bean 对象(重点)

● MyFactoryBean 代码:

package com.hspedu.spring.factory;

import com.hspedu.spring.bean.Monster;
import org.springframework.beans.factory.FactoryBean;

import java.util.HashMap;
import java.util.Map;

/**
 * @author 加棉
 * @version 1.0
 * 是一个FactoryBean
 */
public class MyFactoryBean implements FactoryBean<Monster> {

    //这个就是你配置时候,指定要获取的对象对应key
    private String keyVal;
    private Map<String, Monster> monster_map;

    {   //代码块,完成初始化
        monster_map = new HashMap<>();
        monster_map.put("monster_01", new Monster(300, "牛魔王~", "芭蕉扇~"));
        monster_map.put("monster_02", new Monster(400, "狐狸精~", "美人计~"));
    }

    public void setKeyVal(String keyVal) {
        this.keyVal = keyVal;
    }

    @Override
    public Monster getObject() throws Exception {
        return monster_map.get(keyVal);
    }

    @Override
    public Class<?> getObjectType() {
        return Monster.class;
    }

    @Override
    public boolean isSingleton() {//这里指定是否返是单例
        return false;
    }
}

xml配置:

使用(获取bean):

 12.通过属性文件给 bean 注入值

创建配置文件

 xml配置:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值