spring bean标签与容器相关知识点

1,往spring容器中添加一个bean

class属性值:添加要添加的类的全类名
id:identifier,表示该bean对象在spring的核心容器中的唯一标识,
name:bean对象的别名,该值也是唯一的

2,容器中的bean对象创建时机,底层原理,是否单例?

创建时机:容器中的bean默认是随着容器的加载而创建的,按照从上到下的顺序
底层原理:反射(class.forname)
是否单例:默认是单例,可以通过设置标签的scope属性来改变
(单例模式默认只创建一个对象,即多个变量指向同一个地址值)

3,bean标签的scope属性

scope:属性:可以指定当前类对象是单例的还是多例的
singleton:表示该类对象是单例的,是随着容器的创建而创建,
prototype:表示该类对象是多例的,获取的时候再创建,获取几次就创建几次,structs2
request:表示每一次请求都会创建一个当前类对象
session:表示每一个会话都会创建一个当前类对象

4,获取容器对象的方式
1通过加载类路径src下的xml配置文件
在这里插入图片描述

	****ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
	(参数填名字.xml)****

2通过xml的绝对路径获取容器对象
在这里插入图片描述

	ApplicationContext context =new FileSystemXmlApplicationContext("D:\\DevSoft\\eclipse-photon-workspace\\day01\\src\\applicationContext.xml");
	参数填写xml的绝对路径

5,从容器中取出bean对象的方法

    1,参数填字节码对象(参数bean的字节码对象)
    
	dog dog1 = context.getBean(dog.class);
	
	2,通过id获取对象(xml设置的id值)
	
	pig pig1 = (pig) context.getBean("pig");

6,两种获取baen对象方式的区别?
1,参数不同:一个是字节码,一个是字符串
2, 返回值类型不同:一个是具体的字节码类型的对象,一个是object类型
3,当时用字节码作为参数获取对象时,要求容器中必须有该类型的唯一bean对象(没有不行,多了也不行)

发布了14 篇原创文章 · 获赞 0 · 访问量 158

猜你喜欢

转载自blog.csdn.net/super_men1/article/details/104483415