spring的依赖注入的实现涉及到bean、applicationContext.xml、web.xml,依赖注入说白了也就是一个工厂思维,顺带松耦合了,然后美其名曰“依赖注入”、“控制反转”。这个控制反转应该是称之为控制权的转移,由IOC容器来进行调度bean。
1. 在web.xml中添加如下代码
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
如果没有添加这一段,spring会默认直接去WEB-INF/classes中去找applicationContext.xml。
2. applicationContext.xml中是一堆注入好的bean,标签抬头就是<beans>
。具体注入语法注入方式有好多种,详见http://blog.csdn.net/lishuangzhe7047/article/details/20740835
3.在项目中引用applicationContext.xml中已经注入好的bean,具体代码如下
BeanFactory factory = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
Pig pig=(Pig)factory.getBean("pig");
有的人用的是BeanFactory,有的人使用的是ApplicationContext ,ApplicationContext接口,它由BeanFactory接口派生而来,因而提供BeanFactory所有的功能。ApplicationContext以一种更向面向框架的方式工作以及对上下文进行分层和实现继承,ApplicationContext包还提供了以下的功能:
• MessageSource, 提供国际化的消息访问
• 资源访问,如URL和文件
• 事件传播
• 载入多个(有继承关系)上下文 ,使得每一个上下文都专注于一个特定的层次,比如应用的web层
详见:http://blog.csdn.net/hi_kevin/article/details/7325554
获取到对象以后就可以进行操作了。这种配置稍微复杂了点,不过配合配置文件,可以把一些在项目完成之后需要变更的东西放置到配置文件当中去,而不是去直接修改代码。
最后是关于spring项目的classpath的,这篇文章比较详细,直接引用了:http://www.blogjava.net/wangkai40/archive/2009/08/28/292927.html