在谈到spring之前,我们需要回复一下之前的知识点,也就是创建对象的四种方式.
1.直接new 例:Person p = new Person();
2.匿名对象 例:new Person();
3.全路径 例:com.igeek.lesson1.Person p = new com.igeek.lesson1.Person();
4.反射 Class.forName("com.igeek.lesson1.Person").newInstance();
在学习Spring之前,如果需要对象,则需要手动去创建,显得略显繁琐,而Spring 则提供了一个spring Ioc容器来创建对象.
所有的对象都将存放在容器中,就如同一个碗,我们可以放吃的进去,也可以从里面拿吃的,一切看自己的需求.
ApplicationContext是一个接口,原理是使用java反射来实现.并且默认是单例模式 来帮我们创建对象的
ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
而在bean.xml文件中,则需要编写bean,来创建我们需要创建的对象.
- bean就是一个小的组件.
- bean 就是你的java类或者java对象
- 通过java反射来帮你创建对象.
- id 不能重复bean的唯一标识
- class 你要创建的对象的全类名
- spring 默认帮我们创建的bean是单例的.
- IOC ...
原来自己new对象, 现在spring IOC容器对象 来帮你创建管理 对象
<!--prototype作用域部署的bean,每一次请求(将其注入到另一个bean中,或者以程序的方式调用容器的getBean()方法)都会产生一个新的bean实例 -->
<bean id="p1" class="com.igeek.lesson1.Person" scope="prototype">
</bean>
有了bean之后,便可轻易的获取对象
ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
Person p1_1 = (Person) ac.getBean("p1");
System.out.println(p1_1);
输出结果:
com.igeek.lesson1.Person@142fb92
网友评论