Spring学习第二天--Spring 核心API与工厂常用方法

Spring 核心API与工厂常用方法

ApplicationContext基本说明

ApplicationContext
	作用:Spring提供的ApplicationContext这个工厂,用于对象的创建
	好处:解耦合
	说明:	  1.是一个接口,为了屏蔽实现的差异
			2.非web环境:ClassPathXmlApplicationContext
			3.web环境:XmlWebApplicationContext
			4.ApplicationContext工厂的对象占用大量内存
			5.不会频繁的创建对象:一个应用只会创建一个工厂对象
			6.ApplicationContext是线程安全的。
    使用:
          1.创建类型
          2.配置文件的配置
 
          3.通过工厂类,获得对象
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/applicationContext.xml");
Persion persion = (Persion) applicationContext.getBean("persion");          

ApplicationContext相关方法


ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/applicationContext.xml");
		Persion persion = (Persion) applicationContext.getBean("persion");

		//获得对象,不需要强转
		Persion persion1 = applicationContext.getBean("persion", Persion.class);

		//获取对象,只能有一个bean
/*		Persion persion2 = applicationContext.getBean(Persion.class);
		System.out.println(persion.toString());*/


		//获取Spring工厂配置文件中所有bean标签的id值
		String[] beanDefinitionNames = applicationContext.getBeanDefinitionNames();

		for (String beanDefinitionName : beanDefinitionNames) {
			System.out.println(beanDefinitionName);
		}


		System.out.println("@******************");

		//根据类型获取Spring配置文件中对应的id值
		String[] beanNamesForType = applicationContext.getBeanNamesForType(Persion.class);

		for (String s : beanNamesForType) {
			System.out.println(s);
		}

		System.out.println("@******************");

		//判断是否存在指定id值的bean
		System.out.println(applicationContext.containsBeanDefinition("p1"));
		//判断是否存在指定id/name值的bean
		System.out.println(applicationContext.containsBean("persion1"));
		

ApplicationContext配置文件


<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean class="com.spring.context.basic.Persion">bean>
    <bean id="persion" class="com.spring.context.basic.Persion">bean>
    <bean id="persion1" name="p1,p2" class="com.spring.context.basic.Persion">bean>

beans>

(1)只配置class属性

​ ①没有id值,但是spring会自动赋值一个id

​ ②应用场景:如果这个bean只需要依次,那么id值可以省略。

(2)name属性

​ 作用:用于在Spring的配置文件中,为bean对象定义别名(小名)

​ id和name的区别:name可以有多个,id只能有一个。

spring工厂的底层实现原理

Spring学习第二天--Spring 核心API与工厂常用方法_第1张图片

spring工厂的代码分析

以后分析

你可能感兴趣的:(Spring)