欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring的Bean管理(xml方式)

程序员文章站 2022-03-03 12:37:54
...

Bean实例化的方式

  • Bean实例化:
    在spring里面通过配置文件 ,来创建对象

实现实例化的三种方式:

  1. 使用类的无参构造:

    • xml中的语句会直接找(User中的)无参构造
  <!-- IOC入门 -->
            <bean id="user" class="cn.itclass.ioc.User"></bean>

如果User中有有参构造并且没有无参构造,则出现异常

  1. 静态工厂创建:

    • 创建静态的方法,然后返回类对象
    • 其中的方法可以用 类名.方法 来调用

静态工厂类:

    public class Bean2Factory {
    	/**
    	 * 静态的方法返回bean2的对象
    	 * @return
    	 */
    	public static Bean2 getBean2() {
    		return new Bean2();
    	}
    

xml文件内容:

  !:factory-method="getBean2"  是工厂方法Bean2Factory中的方法

        <!-- 使用静态工厂创建对象 -->
        <bean id="bean2" class="cn.itclass.ioc.Bean2Factory" factory-method="getBean2"></bean>

测试代码:

- !出错地方:context.getBean("bean2");是context的方法

    		Bean2 bean2=(Bean2) context.getBean("bean2");              //getBean是系统的
    		System.out.println(bean2);
    		bean2.add();

实例工厂创建对象

  • 创建不是静态的方法,再返回类对象
  • xml写法麻烦

实例方法:其中的方法不能用类名来调用,要创建对象调用

public class Bean3Factory {
	public Bean3 getBean3() {
		return new Bean3();
	}

Bean标签常用属性

id属性:

bean id=“user”

  • 起名称,id属性值名称任意命名
  • id属性值,不能包含特殊符号
  • 根据id值得到配置对象

class属性:

  • 创建对象所在类的全路径class=“cn.itclass.ioc.User”

name属性:

功能和id属性一样的,id属性值不能包含特殊符号,但是在name属性值里面可以包含特殊符号
如:bean name(//也可写作id)=“user”

scope属性

singleton:

默认值,单例(单实例) :只有一个对象
只会创建一个对象,所以user1与user的地址是一样的。

User user=(User) context.getBean("user"); //配置文件中的id值
User user1=(User) context.getBean("user");
多实例:

prototype:

<bean id="user" class="cn.itclass.ioc.User" scope="prototype"></bean>

//user 与user1 地址不一样

相关标签: Spring基础