Leona

参考文档

Lingo

0.1-SNAPSHOT

首页: http://www.family168.com/

EMAIL: echo_o@163.com

【QQ群A】:66496516(已满)

【QQ群B】:3038490(已满)

【QQ群C】:5831141(已满)

【QQ群D】:58978298

【QQ群E】:92471274

【QQ群F】:62395158

2009-01-29


序言
1. Leona是什么?
1. 介绍
1.1. 概述
1.2. 架构
1.2.1. 核心设计
1.2.2. 领域模型
1.2.3. Manager层
1.2.4. Web层
1.2.5. View层
1.2.6. 测试
1.2.7. 权限模型
1.2.8. 特定功能的封装
1.3. 为啥不用其他架构
1.3.1. 为啥不用传统的五层DAO形式
1.3.2. 为啥不直接使用Spring-Test
2. 技术选型
2.1. 基础架构
2.2. 扩展架构
2.3. 开发环境
2.4. 测试工具
2.5. 项目管理
2.6. 杂项
3. Spring
3.1. 在项目中使用Spring
3.1.1. 直接构造ApplicationContext
3.1.2. 使用ContextLoaderListener
3.2. Spring配置要点
3.2.1. 在xml中使用spring-2.x的DTD。
3.2.2. default-lazy-init
3.2.3. default-autowire="byName"
3.2.4. import
3.2.5. CharacterEncodingFilter
3.2.6. IntrospectorCleanupListener
3.2.7. PropertyPlaceholderConfigurer
3.2.8. PropertyOverrideConfigurer
3.3. Spring-2.x对AOP和事务管理的简化配置
3.4. Spring中的零配置
3.5. Spring中的资源访问
3.5.1. ResourceLoader
3.5.2. ResourcePatternResolver
3.6. Spring的微内核与FactoryBean扩展机制
3.6.1. 微内核的功能
3.6.1.1. DI(依赖注入)与Singleton管理
3.6.1.2. BeanName与BeanFactory注入
3.6.1.3. DI后的初始化函数调用
3.6.2. FactoryBean扩展机制
3.6.3. Bean Post-Processor扩展机制
4. Hibernate
4.1. 基于annotation的JPA式配置
4.2. Hibernate支持的关系模型
4.3. Hibernate应用备注
4.3.1. Open Session In View
4.3.2. Event Listener
4.3.3. 查询返回Map
4.3.4. 限制修改
4.4. 二级缓存
4.4.1. 基本设置
4.4.2. Entity级二级缓存
4.4.3. Collection二级缓存
4.4.4. 查询缓存
4.5. 对Hibernate进行封装
4.5.1. 基本方法
4.5.2. 分页方法
4.5.3. 对Hibernate做了三层封装
4.5.3.1. HibernateGenericDao
4.5.3.2. HibernateEntityDao
4.5.3.3. HibernateExtendDao
4.6. 使用envers进行版本控制
4.7. Spring JDBCTemplate
4.8. Spring Error Code 统一翻译
4.9. bba96 说明(待研究)
5. Spring Security权限管理(待整理)
5.1. 默认角色名称都要以ROLE_开头
5.2. 关于Voter这个投票者的含义终于有一点儿了解了。
5.3. 关于同一用户重复登录的问题
5.4. 使用Filter拦截URL请求
5.5. 使用interpreter拦截METHOD调用
5.6. ACL如何实现?
5.7. 关于用户权限管理的问题,有了一些自己的想法
5.7.1. 部门概念
5.7.2. 职务问题
5.8. acegisecurity-1.0.5新ACL模型
5.8.1. ACL_CLASS保存支持的类名
5.8.2. ACL_SID应该保存的是用户名,和这个用户目前是否有效
5.8.3. ACL_OBJECT_IDENTITY里有三个外键,分别是
5.8.4. ACL_ENTRY,用来保存每个SID(用户)与OBJECT之间权限关系了
6. Struts2
6.1. 简介
6.2. 命名规范
6.3. struts2的特长
6.4. Convention Plugin实现零配置文件
6.5. Prepareable与ModelDriven接口
6.6. view
6.7. 输入校验,国际化,信息与异常显示
6.7.1. Validate
6.7.2. I18N
6.7.3. Message and Error
6.8. BaseAction的流程
6.8.1. 显示用户列表
6.8.2. 新增或修改用户
6.8.3. 保存用户(包含新增和修改)
7. view
7.1. JSTL和JSP-2.0
7.1.1. 配置
7.1.2. 使用JSP-2.0的EL表达式
7.1.3. 新增的Function标签
7.1.4. EL运算符
7.1.5. []与.两种访问属性或元素的方式
7.1.6. 访问静态变量
7.2. OSCache
7.2.1. 用于缓存Web内容的Taglib
7.2.2. 缓存Request
7.2.3. CRON级的刷新时间配置
7.3. Jodd Form taglib
7.4. pager-taglib组件
7.5. Sitemesh
7.6. freemarker
7.7. html格式
7.8. ExtremeTable(待研究)
8. ajax
8.1. JSCalendar日历控件
8.2. JQuery
8.2.1. 基本功能
8.2.2. Ajax
8.2.3. Valiation plugin
8.3. DWR
8.4. DWR推技术
8.5. Ajax Upload,文件上传进度条
8.6. FCKEditor(待研究)
8.7. dojo和extjs(待整理)
8.7.1. Ext.lingo.JsonTree
8.7.2. Ext.lingo.JsonGrid
9. web service
9.1. 概述
9.2. 重要规则
9.3. 错误返回机制
9.4. 内部子系统间
9.5. DTO
9.6. 客户端代码生成
9.7. 简单示例
10. drools规则引擎
10.1. 框架介绍
10.2. 一次Drools的规则运算通常如下:
10.3. Drools的规则语法
10.4. Drools的规则文件
10.5. Drools的平民级DSL语法映射
10.6. 决策树(Excel 文件)的使用
10.7. JBossRules的Java API
10.8. Drools' Performance
10.9. 可以使用global设置全局对象
11. JMS
11.1. JMS与ActiveMQ特性
11.2. 使用ActiveMQ
11.2.1. 引入ActiveMQ的XSD
11.2.2. 配置ActiveMQ Broker
11.2.3. 配置(A)ConnectionFactory
11.2.4. 配置(B)Queue
11.2.5. 配置(C)Converter
11.2.6. 发送端
11.2.6.1. 配置JmsTemplate
11.2.6.2. Producer
11.2.7. 接收端
11.2.7.1. 接收处理者(MDP)
11.2.7.2. listenerContainer
11.3. 持久化消息
11.3.1. 给Broker加入Persistence 配置
11.3.2. 配置多种数据源
11.4. Jenck(JCA Container)
11.4.1. 引入ActiveMQ ResourceAdapter和Jencks的XSD
11.4.2. 配置ActiveMQ Resource Adapter
11.4.3. 配置Jencks基础配置
11.4.4. 配置Jencks充当MDP的Container
11.5. Lingo
12. 全文检索
12.1. Lucene 基础指南
12.1.1. 建立索引的术语
12.1.1.1. Field的含义
12.1.1.2. 限制Field的长度
12.1.1.3. 索引的合并、删除、优化
12.1.2. 进行搜索时的术语
12.1.3. 一个简单的实例
12.1.4. 复杂一点的实例
12.1.5. Hibernate与lucene的结合使用:
12.2. Compass
12.2.1. 概述
12.2.2. Object/Search Engine Mapping的Annotations配置
12.2.3. Data Change Mirror功能
12.2.4. 与spring,hibernate集成配置
12.2.5. 封装搜索
12.2.6. View JSP
12.2.7. Compass Highlighter
12.3. Hibernate Search
13. 任务调度
13.1. 概述
13.2. 与Spring集成
13.2.1. Scheduler总入口
13.2.2. Trigger
13.2.3. 小心陷阱
13.3. Quartz相对于JDK Timer Task的进步
13.4. 常见问题
14. JBPM工作流
14.1. 流程定义Process Definition
14.2. 流程实例Process Instance
14.3. state节点
14.4. task节点
14.5. Identity身份验证
15. BIRT报表
15.1. 概述
15.2. 部署BIRT2.2.2
15.3. 将spring与birt集成在一起
15.3.1. why not 说明
15.3.1.1. 为什么没有使用 birt report viewer
15.3.1.2. 为什么不在.rptdesign里写sql
15.3.2. 自己实现的BirtReportsView的原理
15.3.2.1. 创建EngineConfig与ReportEngine实例
15.3.2.2. 设定报表文件
15.3.2.3. 配置htmlrendercontext
15.3.3. Birt View的使用
16. Groovy
16.1. 与Spring集成
17. JMX
17.1. 示例
17.1.1. 服务端
17.1.2. 客户端
17.2. JMX常用术语
17.2.1. Manageable Resource
17.2.2. MBean
17.2.3. MBean Server
17.2.4. JMX agent
17.2.5. Protocol adapters和connectors
17.2.6. Management application
17.2.7. Notification
17.2.8. Instrumentation
18. OSGI
18.1. felix-1.6.0支持OSGi-4.2
18.2. 传说felix与equinox相比有缺陷
19. 日志
19.1. log4j
19.1.1. Spring对log4j的几个增强
19.1.2. 默认写入操作员ID
19.1.3. 忽略某些类库框架的不必要的信息
19.1.4. 把重要的业务日志异步批量写入数据库
19.2. slf4j + logback
19.2.1. 优势
19.2.2. slf4J与旧日志框架的关系
19.2.3. logback.xml的功能与配置
19.2.4. slf4j和logback的使用
19.2.5. 选型
20. 缓存
20.1. Cache资料
20.1.1. 概述
20.1.2. 分布式缓存
20.1.3. Ehcache
20.1.4. TerraCotta
20.1.5. Memcached
20.1.6. Others
20.2. Ehcache
20.2.1. Overview
20.2.2. 基本功能与配置
20.2.2.1. 对象在内存中的最大数量
20.2.2.2. 到达内存中最大量时的过期/移出算法
20.2.2.3. 储存到硬盘
20.2.2.4. 重启时缓存持久化
20.2.3. 分布式缓存
20.2.3.1. 设置自身
20.2.3.2. 设置需要同步的对方服务器及缓存对象
20.2.3.3. 缓存对象的配置
20.2.3.4. Shutdown
20.2.4. JMS式并发同步
20.3. Ehcache选型
20.3.1. DefaultCache
20.3.2. Cache
20.3.3. 分布式
20.4. AOP式缓存
20.4.1. 准备工作
20.4.1.1. 缓存查询结果
20.4.1.2. 刷新缓存
20.4.1.3. 配置Advice
20.4.2. 使用AOP
21. 测试
21.1. TDD的好处
21.1.1. 单元测试的两种风格
21.1.1.1. 纯MockObject的风格
21.1.1.2. Pragmatic风格
21.1.2. 测试用例分三类
21.1.2.1. 单元测试
21.1.2.2. 集成测试
21.1.2.3. 功能测试
21.2. JUnit 3.8 vs JUnit 4.5
21.3. EasyMock
21.3.1. EasyMock VS JMock
21.3.2. 使用
21.4. Spring Test
21.4.1. Spring下的Unit Test
21.4.2. 为测试注入依赖
21.4.3. 测试service层
21.4.4. 测试action层
21.4.5. 使用annotation进行测试(待研究)
21.4.6. 封装Spring Test
21.5. 显示层测试
21.6. 压力测试
21.7. SoapUI(待研究)
22. 杂项
22.1. JDK-5.0
22.1.1. AutoBoxing
22.1.2. For Loop Enhancement
22.1.3. Annotation
22.1.4. 静态import
22.1.5. 可变参数
22.2. 公共Utils工具类。
22.2.1. Core Utils
22.2.2. Apache Commons Utils
22.2.3. SpringUtils
22.3. JavaMail。
22.4. UTF-8与国际化。
22.4.1. i18N基础
22.4.2. Spring的messageSource增强
22.5. 异常处理
22.5.1. 业务异常类
22.5.2. Servlet规范里的异常控制
22.5.2.1. 按error-code统一定义错误页面
22.5.2.2. 按异常类型定义单独错误页面
22.5.2.3. 在JSP里单独定义错误页面
22.5.2.4. error.jsp的处理
22.6. 事务
22.6.1. 本地事务与分布式事务
22.6.2. 编程式模型
22.6.3. 宣告式模型
22.6.4. 事务类型
22.6.5. 事务隔离级别
22.6.6. 关于Rollback
22.6.7. 关于Spring
23. 看到Spring Side或其他地方有了例子,但leona的技术选型里还没有实现的技术
23.1. 群发邮件
23.2. jdk5类型的定时任务
23.3. Opensymphony的clickstream filter
23.4. URL Rewrite Filter
23.5. Dozer Mapper
24. selenium(待整理)
24.1. selenium功能测试
24.1.1. 概述
24.1.2. Better Practice
24.1.3. Using the name user, system, page instead of selenium
24.1.4. Creating a DSL base on your test codes
24.1.5. Hacking Selenium Object to support FIT command
24.1.6. Using chrome and IE hta lanucher to support https
24.1.7. Run test using different browser lanucher to test browser compatibility
24.2. Selenium指南
24.2.1. 使用Selenium IDE生成脚本
24.2.2. 测试用例与测试脚本
24.2.3. Ant的运行脚本
24.2.4. SpringSide 中的FunctionalTestCase基类
24.3. Selenium测试Ajax项目
24.3.1. 匆匆一瞥 Selenium
24.3.2. 开始测试 Ajax
24.3.3. Ajax 中指示正在"读取数据"的标签
24.3.4. 总结
24.4. selenium中文手册
24.4.1. Commands (命令)
24.4.1.1. Element Locators (元素定位器)
24.4.1.2. String Matching Patterns (字符串匹配模式)
24.4.1.3. Select Option Specifiers (Select选项指定器)
24.4.2. Actions
24.4.2.1. click
24.4.2.2. open
24.4.2.3. type
24.4.2.4. select
24.4.2.5. goBack,close
24.4.2.6. selectWindow
24.4.2.7. pause
24.4.2.8. fireEvent
24.4.2.9. waitForCondition
24.4.2.10. waitForValue
24.4.2.11. store,stroreValue
24.4.2.12. storeText, storeAttribute
24.4.2.13. storeAttribute(.{}elementLocator@attributeName,variableName.{})
24.4.2.14. chooseCancel.., answer..
24.4.3. Assertions
24.4.3.1. assertLocation, assertTitle
24.4.3.2. assertTitle(titlePattern)
24.4.3.3. assertValue
24.4.3.4. assertSelected, assertSelectedOptions
24.4.3.5. assertSelectOptions(selectLocator, optionLabelList)
24.4.3.6. assertText
24.4.3.7. assertAttribute(.{}elementLocator@attributeName.{}, ValuePattern)
24.4.3.8. assertTextPresent, etc.
24.4.3.9. assertTable
24.4.3.10. assertVisible, nonVisible
24.4.3.11. assertNotVisible(elementLocator)
24.4.3.12. Editable, non-editable
24.4.3.13. assertNotEditable(inputLocator)
24.4.3.14. assertAlert
24.4.3.15. assertConfirmation
24.4.3.16. assertPrompt
24.4.4. Parameters and Variables
24.4.4.1. Variable Substitution 变量替换
24.4.4.2. JavaScript Evaluation JavaScript赋值
24.4.4.3. Generating Unique values 产生唯一值.
25. practice(待整理)
25.1. 开发过程定义
25.1.1. 介绍
25.1.2. 活动与工件
25.1.2.1. 初始阶段
25.1.2.2. 细化阶段
25.1.2.3. 构建阶段
25.1.2.4. 交付阶段
25.1.2.5. 各阶段的持续活动
25.1.3. 工具
25.2. 项目管理架构
25.3. 服务器选型
25.3.1. Tomcat 6
25.3.2. Glassfish 2
25.3.3. Weblogic 10
25.3.4. JVM优化
25.3.5. Http连接器优化
25.3.6. 数据库连接池
25.3.7. 负载均衡
26. 我们要解决什么问题
26.1. 我们要解决什么问题
26.2. 数据字典
26.2.1. NamedEntityBean.java
26.2.2. NamedEntityDao.java
26.2.3. 应用场景
26.3. 树形结构
26.3.1. TreeEntityBean.java
26.3.2. TreeEntityDao.java
26.3.3. 应用场景
26.4. extjs与springmvc结合,实现JsonTree
26.5. extjs与springmvc结合,实现JsonGrid
26.6. 让extjs与acegi对接
27. 数据维护
27.1. DBDeploy维护表结构
27.2. DBUnit备份测试数据
28. 代码分析
28.1. 代码分析
28.1.1. 静态检测
28.1.2. 动态检测
28.1.3. 关联分析
28.2. checkstyle
28.3. PMD and CPD
28.4. javaNCSS
28.5. taglist
28.6. findbugs
28.7. cobertura
28.8. jdepend
28.9. JDepend:管理代码依赖性(待研究)
28.10. 编码规范与代码质量检查
28.10.1. Java编码规范
28.10.2. Eclipse代码格式与规范
28.10.3. Checkstyle
28.10.4. PMD
29. 环境
29.1. HSQLDB
29.1.1. 概述
29.1.2. 三种使用模式
29.1.2.1. Server模式
29.1.2.2. In-Process模式
29.1.2.3. 内存中数据库
29.1.3. 数据查询与管理工具
29.1.4. Server模式随WebApp一起启动
29.1.5. 数据文件与数据存盘
29.2. 使用其他数据库
29.2.1. Derby
29.2.2. MySQL与Oracle
29.3. Ant编程指南
29.3.1. 变量
29.3.2. 流程控制
29.3.3. 代码封装
29.3.4. extend
29.3.5. 看点:
29.3.6. Ant-Contrib
29.3.7. 用Ant调Maven管理JAR
29.4. Maven构建管理实践
29.4.1. 使用模式
29.4.2. parent/pom.xml
29.4.3. 目录结构
29.4.4. 私服
29.4.5. m2Ecipse插件
29.4.6. 插件
29.5. SVN
29.5.1. 优点
29.5.2. 在Ant中使用Subversion
29.6. Hudson持续集成
29.6.1. 启动
29.6.2. 新建项目
29.6.3. 持续集成实践
A. 修改日志