spring 注入的简单例子

1.spring
spring 是容器框架,用于配置bean,并维护bean之间的关系
spring 框架,它可以管理web层,业务层,dao层,持久层,等等
spring参考手册 中文手册与源码
spring在java Project 中也可以直接使用

2.开发一个简单实例




a.导入jar包 (spring.jar+commons-logging.jar)
b.创建spring的一个核心文件applicationContext.xml
该文件一般放在src目录下面,向该文件中引入.xsd文件,可以从spring官网中copy一份
c.配置bean
<bean id = "userService" class="com.service.UserService"></bean>
该语句等价于 UserService userService = new UserService();
bean 元素的作用是当我们spring框架加载的时候,spring就会自动的创建一个bean对象,并放入内存中

<property name="name" ><value>bingning</value></property>
等价于 userService.setName("bingning")

<bean id = "byeService" class="com.service.ByeService"></bean>

d.测试类
得到spring的applicationContext对象(容器对象)
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService us = (UserService)ac.getBean("userService");
us.say();

ac就是代表spring 的容器

3.使用spring框架时,并没有new对象,我们把创建对象的任务交给spring框架
<property name = "byeService" ref="byeService"/>
byeService 是类UserService的属性 它的类型是ByeService的类型 它的值就是引用byeService这个bean

4.当ClassPathXmlApplication(applicationContext.xml)执行的时候,spring容器的对象被创建,同时applicationContext.xml中配置的bean就会被创建 (它在内存中 是HashTable 类型),利用java的反射机制实现的。


5.spring 实际上是一个容器框架,可以配置各种bean(action/dao/service/domain/datasource ....)
并且可以维护bean与bean之间的关系,当我们需要使用某个bean的时候,我们可以getBean(id的值) ,id是bean的唯一标识。

6. 问ioc是什么?DI是什么
  答:ioc(inverse of controll) 控制反转 :所谓控制反转就是把创建对象(bean)和维护对象(bean) 关系的权利从程序中转移到spring的容器(applicationContext.xml),而程序本身不再维护。
   DI(dependency injection) 依赖注入,ioc的另外一种说法,可能是作者喜欢这样的表达。

7.学习框架最重要的就是学习配置文件

8.在使用applicationContext的过程中一定要将它的实例变成单例的,因为每次的实例化,都会加载配置文件,加载bean的实例,如果applicationContext 不是单例的 ,就会有多个配置文件bean的集合,那使用spring管理bean 并单例的实现就是空谈。



猜你喜欢

转载自lovemojienv.iteye.com/blog/2295881