spring3权威指南-学习(1)spring的2种DI容器
2014-11-13 15:12
357 查看
spring提供了两种DI(控制反转容器),BeanFactory和ApplicationContext,它们的关系如下:
开发者经常用到BeanFactory的子类XmlBeanFactory,或者用到ApplicationContext类(企业系统开发中经常用这个,BeanFactory驾驭不了)
1、面向java ME、java SE的BeanFactory:
2、面向java EE ApplicationContext,有以下实现:
测试代1-BeanFactory:
测试代码2-ApplicationContext:
配置文件是:
三种依赖注入方式:
1、sett注入
2、构造器注入
3、注解注入(属性注入),用@AutoWired、 @Resource、@EJB等注解
4、方法注入,包括查找(lookup)方法注入和替换(replacement)方法注入。
总结:我们没有手工构建任何bean实例,是控制翻转容器BeanFactory或ApplicationContext创建的 redisService实例,以及创建的jedisConnectionFactory和redisService的依赖关系。
懒惰的BeanFactory和ApplicationContext组件的区别:
1、初始化BeanFactory实例化以后,IOC容器并不会预先实例化配置文件中声明的POJO,而是在使用的时候才会实例化受管的bean。
2、对于ApplicationContext则不痛,一旦构建完ApplicationContext对象后,IOC便会预先实例化配置文件中已经声明的各个受管POJO。
开发者经常用到BeanFactory的子类XmlBeanFactory,或者用到ApplicationContext类(企业系统开发中经常用这个,BeanFactory驾驭不了)
1、面向java ME、java SE的BeanFactory:
2、面向java EE ApplicationContext,有以下实现:
测试代1-BeanFactory:
public static void main(String [] args){ //从classpath装卸xml配置信息 Resource resource = new ClassPathResource("applicationContext-services.xml"); //实例化ioc容器 BeanFactory factory = new XmlBeanFactory(resource); //获得受管Bean RedisDelegateService redisService = (RedisDelegateService)factory.getBean("redisService"); redisService.set(0, "spring3权威开发指南", "测试Spring静态获得配置文件创建Bean"); }
测试代码2-ApplicationContext:
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext-services.xml"); //获得受管Bean RedisDelegateService redisService = (RedisDelegateService)context.getBean("redisService"); redisService.set(0, "spring3权威开发指南111", "测试Spring静态获得配置文件创建Bean");
配置文件是:
<bean id="redisService" class="com.solr.adjust.service.impl.RedisDelegateService"> <property name="jedisConnectionFactory" ref ="jedisConnectionFactory"/> </bean> <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <property name="hostName" value="*.*.*.*" /> <property name="port" value="6379" /> <property name="password" value="123" /> <property name="poolConfig" ref="jedisPoolConfig" /> </bean> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig" > <property name="maxTotal" value="30" /> <property name="maxIdle" value="10" /> <property name="maxWaitMillis" value="3000" /> </bean>
三种依赖注入方式:
1、sett注入
2、构造器注入
3、注解注入(属性注入),用@AutoWired、 @Resource、@EJB等注解
4、方法注入,包括查找(lookup)方法注入和替换(replacement)方法注入。
总结:我们没有手工构建任何bean实例,是控制翻转容器BeanFactory或ApplicationContext创建的 redisService实例,以及创建的jedisConnectionFactory和redisService的依赖关系。
懒惰的BeanFactory和ApplicationContext组件的区别:
1、初始化BeanFactory实例化以后,IOC容器并不会预先实例化配置文件中声明的POJO,而是在使用的时候才会实例化受管的bean。
2、对于ApplicationContext则不痛,一旦构建完ApplicationContext对象后,IOC便会预先实例化配置文件中已经声明的各个受管POJO。
相关文章推荐
- Spring2.5学习笔记1-控制反转-DI容器配置元数据方式
- spring学习(三)—深入理解DIP、IoC、DI以及IoC容器
- Spring2.5学习笔记1-控制反转-DI容器泛型访问
- spring学习总结(二):IOC & DI 概述及 IOC 容器
- spring IOC学习,手动实现IOC容器
- Spring学习1——Spring容器
- 得到spring容器的2种方式
- 标准模板库(STL)学习指南之List容器
- Spring3.x学习笔记----Spring容器(不断更新)
- Spring学习笔记(一)----IoC之DI
- Flex权威指南3学习笔记之二------简单控件的使用
- javascript权威指南 学习笔记之javascript数据类型
- 标准模板库(STL)学习指南之List容器
- spring学习笔记:ioc容器高级特性
- spring学习笔记:Spring IOC容器,Spring源码
- Spring通过容器获取配置对象及事件注入(学习笔记二)
- 标准模板库(STL)学习指南之List容器
- Spring IOC 学习笔记(一) IoC和DI概述
- 学习Spring.NET - IoC对象管理容器(1)
- Spring(基础)学习文档四(spring容器管理bean)