beanFactory和applicationContext创建javaBean的区别
BeanFactory提供管理和创建javaBean的基本功能,applicationContext是BeanFactory下的一个子接口,用于加强BeanFactory的及其实现提供的功能。我们不需要显示的用代码创建applicationContext实例,只需要在web容器中设置一个监听器:
<listener><listener class> org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
或者用个servlet,当然手工创建也是可以的。
这样的话,当web应用启动的时候自动实例化applicationContext,并且所有的javaBean都会被创建,除非我们显示的设置了延迟加载机制。当然我们也要注意,如果javaBean非常多的时候,由于解析以及创建会花费很多时间,服务器启动将会变得缓慢,若设为延迟加载,则又会带来的问题是客户端需要某个javaBean的时候又得等待其被初始化和创建,不能立即注入使用。
如果用BeanFactory创建Bean的话,默认的是延迟装载,只有当调用getBean()方法的时候,Bean实例才会被创建。 1 楼 肉嘎嘎 2011-04-03 基本就是这样吧,不过applicationcontext还是可以显示创建的 2 楼 Technoboy 2011-04-03 当web应用启动的时候自动实例化applicationContext的真正原因是因为ContextLoaderListener实现了ServletContextListener。
并且applicationContext还可以手动创建,只是应用在想servlet,ejb容器中的时候,配置一个监听就可以了!