BeanFactory 是Bean工厂。既然是工厂就应该“看图生成” 所以需要 applicationContext.xml (当然也可以不要这样命名。也可以多张图纸,一般不这么做)
记住BeanFactory 实际是个接口。因为基于“面向接口编程”。但是开发商(比较合适)不可能只给接口。肯定还给客户(程序猿)写好了基本的实现类。所以有错觉。
总是感觉BeanFactory是个可以用的类。实际用的多的是 ApplicationContext 与 WebApplicationContext 等子接口。
记录下,暂时不知道为什么。区别如下:ApplicationContext容器实例化后自动对所有单实例Bean进行实例化和依赖关系装配。而BeanFactory容器实例化并不会自动实例化Bean
web 开发目前。最好用ContextLoaderListener 而不是ContextLoaderServlet
看下本书applictionContext.xml 的配置。(略)
Bean的作用域 与生命周期 (什么Bean)
根据应用需求。Spirng 定了了哪五种作用域 (略)
1XML的bean配置,Annotation Bean配置
2XML的AOP配置,Annotation Bean 配置
3XML的事务,Annotation 的事务
1)Spring 操作Hiberante 例如 LocalSessionFactoryBean,HiberanteTransactionManager
请详细看下配置了Hibernate的applicationContext.xml
开发思想:Dao BaseDao 为什么要先弄个BaseDao 大家好好想一想
记住一些概念:
BaseDaoImpl 继承了HibernateDaoSupport. 这是Spring 为了简化Hibernate的Dao 操作 而定制的工具类:方式一,方式二
2) Spring 集成Struts2.1 (为什么?) 怎么理解。
目的:为了让struts的action 访问spring容器中的组件资源。同时实例化的工作也交给spring. 能各个action 能不能互相直接通过spring 调用?
举个栗子:struts 的action 业务控制器组件 不需要业务逻辑组件的实例化。仅需进行依赖声明即可。由spirng 容器来完成依赖对象的注入工作。
@SuppressWarnings("serial")
web 启动struts 和 spring?
doTag(){...}
dao = (BaseDaoImpl)WebApplicationContextUtils.getRequiredWebApplicatonContext( ( (PG).getJspContext()).getServletContext()).getBean("dao"))