1. 【简答题】:简述一下hibernate和spring框架的整合步骤:
答:
1.加入hibernate jar包
2.编写持久化类
3.添加Hibernate的配置文件:hibernate.cfg.xml
4.编写持久化类对应的.hbm.xml文件
5.加入spring jar包
6.加入Spring配置文件,定义数据源,定义sessionFactory,配置spring事物
7.写dao层代码
8.写service层代码
9.写测试代码
2. 【简答题】:简述一下struts2和spring框架的整合步骤
答:
1.引入struts-spring-plugin.jar开发包
(可以访问Spring容器,利用<action>配置的class属性值去Spring容器中寻找Bean对象)
2.将Action定义到Spring容器中,id值与<action>的class属性值保持一致
3.在web.xml中定义ContextLoaderLisener
(在服务器启动时,用于实例化Spring容器对象)
4.在web.xml中采用<context-param>指定Spring容器配置文件位置
一、 面试题部分
1. 在spring中体现了那些设计模式?
答案:
1.工厂模式,这个很明显,在各种BeanFactory以及ApplicationContext创建中都用到了;
2.模版模式,这个也很明显,在各种BeanFactory以及ApplicationContext实现中也都用到了;
JdbcTemplete HibernateTemplete
3.代理模式,在Aop实现中用到了JDK的动态代理;
4.策略模式,第一个地方,加载资源文件的方式,使用了不同的方法,比如:ClassPathResourece,FileSystemResource,ServletContextResource,UrlResource但他们都有共同的借口Resource;第二个地方就是在Aop的实现中,采用了两种不同的方式,JDK动态代理和CGLIB代理;
5.单例模式,这个比如在创建bean的时候。
2. ApplicationContext通常的实现是什么?
答案:
FileSystemXmlApplicationContext :此容器从一个XML文件中加载beans的定义,XML Bean 配置文件的全路径名必须提供给它的构造函数。
ClassPathXmlApplicationContext:此容器也从一个XML文件中加载beans的定义,这里,你需要正确设置classpath因为这个容器将在classpath里找bean配置。
WebXmlApplicationContext:此容器加载一个XML文件,此文件定义了一个WEB应用的所有bean。
3. 解释Spring框架中bean的生命周期。 没懂
答案:
Spring容器 从XML 文件中读取bean的定义,并实例化bean。
Spring根据bean的定义填充所有的属性。
如果bean实现了BeanNameAware 接口,Spring 传递bean 的ID 到 setBeanName方法。
如果Bean 实现了 BeanFactoryAware 接口, Spring传递beanfactory 给setBeanFactory 方法。
如果有任何与bean相关联的BeanPostProcessors,Spring会在postProcesserBeforeInitialization()方法内调用它们。
如果bean实现IntializingBean了,调用它的afterPropertySet方法,如果bean声明了初始化方法,调用此初始化方法。
如果有BeanPostProcessors 和bean 关联,这些bean的postProcessAfterInitialization() 方法将被调用。
如果bean实现了 DisposableBean,它将调用destroy()方法。