1、Struts
多层架构的概念及开发流程
MVC模式
Struts的控制流
Action/ActionForm/ActionForward的概念
如何通过ActionForm进行日期的自动类型转换
Struts如何支持I18N(JSP页面的静态文本/
2、P) 如何解决懒加载异常问题 如何避免N+1查询(清楚Query.list()和Query.iterate()操作的差别) Inverse/lazy/cascade 关联映射(1..n,n...1,1..1,n..n):根据需求设计实体类,然后对实体类进行映射 Hibernate HQL(session.createQuery()) 原生SQL查询(session.createSQLQuery()) 一级缓存、二级缓存、查询缓存 并发控制,悲观锁定,乐观锁定(版本控制) Spring 依赖注入(注入方式:构造器注入、设值方法注入) 对象的创建方式(singleton/
3、prototype) 了解AOP 了解Spring声明式的事务管理 Spring与Hibernate集成的方法(HibernateDaoSupport基类/HibernateTemplate) Spring与普通J2EE应用程序集成的方法(在web.xml中定义context-param/Listener) Spring与Struts集成的方法(利用spring来创建Action,并通过spring向Action注入业务逻辑对象) UML 用例图(用例文档的编写):参与者、用例、系统边界 类图(边界类、实体类、控制类) 关系:依赖、关联、泛化、实现 聚合,是一种关联关系
4、表示整体与部分的关系 组合,是一种强聚合,表示整体与部分的生命周期是一致的 交互图:对系统的控制流进行建模,包含顺序图、协作图 顺序图:重视对象的生命周期 协作图:重视对象之间的协作 活动图:对流程进行建模 状态图:系统状态的变化 EJB3.0 有状态会话Bean和无状态会话Bean(Stateful Session Bean和Stateless Session Bean) JMS和消息驱动Bean 如何更改Session Bean的JNDI名称? 如何将session bean部署为web service服务接口? 客户端视图(远程客户端、本地客户端、Webse
5、rvice客户端) 依赖注入 @EJB 持久化框架(O/R映射,EntityManager) 实体Bean的生命周期 JTA事务控制 OA OA的基本需求 需求à用例à领域模型(OOA)à设计模型(OOD)à实现 组织架构模型(面对各种不同类型的组织架构,如何定义模型) 授权模型及其实现思路(需了解RBAC的基本概念) 公文流转模型及其实现思路(与JBPM整合) 动态表单定义模型及实现(结合Freemarker) 批量数据提交的技巧(AutoArrayList) Ant的基本使用方法 利用xdoclet自动生成hibernate映射文件 日志处理(common
6、s-log/log4j) ThreadLocal模式,及其在分页处理(Pager-taglib)封装中的运用(识别变化与不变,逐步抽象及封装:如何分页?à抽象AbstractManagerà利用ThreadLocal) 如何避免hibernate在更新的时候更新那些不需要更新的字段? 利用dom4j,设计初始化数据的格式,并将其初始化到数据库 利用dwr实现授权界面(了解JSON) 整合Spring和Hibernate之后,对于业务逻辑类的测试方法(可让测试类继承AbstractTransactionalSpringContextTests,而不是直接继承TestCase,避免在测
7、试单元中出现懒加载问题。) Struts自动异常处理方案 CRM Struts2要点: Struts2与Struts1在使用上的差异: 1、Action的编写无需继承特殊的基类 2、取消了ActionForm,页面参数被直接设置到Action对象的属性上(优点,减少了类的编写) 3、每个请求都会创建一个Action的对象 4、Action的方法可以不依赖于任何Servlet API(优点) Struts2与Struts1在设计上的主要差别在于: 1、Struts2中的请求处理过程由拦截器模式定义为一个可插拔的、容易扩展的结构,而不是像Struts1中,其处理
8、过程是固定不变的(优点) 2、Struts2中的参数从页面传递到Action,以及将数据从Action传输到页面,都通过OGNL来进行,Struts1中的参数从页面传输到Action是通过Apache-commons-beanutils工具包来解析的,而将数据从Action传输到页面则通过request对象来传输 理解如何将OGNL应用在struts2中(ValueStack,传参,设值与取值) Struts2中的类型转换与Struts1相比有何优点(能支持局部类型转换) Struts2中的标签库与Struts1相比有何优点(通过模板灵活的自定义呈现样式) Struts2中基于pac
9、kage的配置方法,可以使得配置文件更加简洁易读 ModelDriven机制与ActionForm相比的优点 Struts2的缺点: 1、 struts2中的ajax主题(速度慢,加载很多没有必要的js文件和资源) 2、 struts2中使用的OGNL表达式语言(解释速度有时候会成为性能瓶颈)(大家可了解一下MVEL,一个类似于OGNL的表达式语言,速度比OGNL要好) Struts2性能调优参考网址: http://struts.apache.org/2.x/docs/performance-tuning.html http://cwiki.apache.org/WW/perf
10、ormance-tuning.html Sitemesh控制页面布局,理解Sitemesh基本原理 利用POI库操纵Excel报表(批量导入和批量导出客户数据) - 设计模板来导出Excel报表 假删除,hibernate filter的使用,hibernate对象查询的运用 了解各种框架的基本概念: - iBATIS:SQL Mapping - Javascript中的prototype - Tapestry:组件、页面 - JSF:页面,Backing Bean CCS系统 EJB3.0项目开发的构建和部署(如何通过ant构建ear/war/jar文件,如何
11、在这些模块之间共享通用的类库) 如果把EJB模块放进EAR包中,客户端调用的JNDI名称有何变化? 如何利用spring来屏蔽JNDI的查找代码,并简化集成开发的过程? HttpSessionBindingListener的使用(登录、登出日志的记录) - 要注意它与HttpSessionListener之间的差别 页面验证框架(Javascript)的使用 模式 MVC ThreadLocal – 多线程程序 OpenSessionInView – 专用于hibernate IOC模式 – Spring 专家模式 – ACL对象、Document对象 DAO – 数据访问对象 Facade - JbpmFacade
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818