使用 Click 框架/扩展开发 Java Web 应用程序
Click Extras 提供了一套额外的控件和组件库,这些库超出了 Click 框架的核心功能。Click Extras 打包为一个独立的 JAR 文件,可以与您的应用程序一起部署。额外的包包括
- Cayenne - 提供 Cayenne 数据感知控件
- Control - 提供额外的控件
- Filter - 提供 GZIP 压缩过滤器
- Graphics - 提供图形控件
- Hibernate - 提供 Hibernate 数据感知控件
- Panel - 提供页面面板容器
- Spring - 提供 Spring 集成 SpringClickServlet
Click Extras 为人们提供了一个场所,让他们可以将自己的代码贡献给 Click 项目,并将其与标准发行版打包在一起。贡献的代码将经过审查,并且可能需要修改才能包含在 Click 发行版中。
Click 的一项主要设计原则就是保持简单,这使得代码更容易理解,也更可靠。
另一个指导原则就是 YAGNI(You Ain't Going to Need It,你不需要它),也就是说,只有真正需要的时候才去构建它。Click 试图提供一个 80/20 规则框架,其中 80% 的人的需求可以通过一个只有 20% 大小的框架来满足。
在开发 Click Extras 贡献时,请遵循这些原则。
组件和控件应该具有最少的依赖项。这样做是为了支持 Click 示例的轻松部署,并使 Click 构建过程保持简单。
请注意,Cayenne 和 Spring 依赖项仅在使用这些特定功能时才需要。例如,如果您使用 Hibernate 作为持久化框架,那么 CayenneForm 控件不会引起任何问题,因为此类永远不会被您的应用程序加载。
Click 框架使用 Velocity ToolsWebappLoader来加载模板。这避免了使用 VelocityClasspathResourceLoader和FileResourceLoader在 JEE 应用程序服务器上带来的问题。
为了使预配置的资源(模板、样式表等)可用于 Web 应用程序,Click 会自动将配置的类路径资源部署到/click目录(启动时不会覆盖现有文件)。
为了使您的控件能够在启动时部署资源,它应该使用 Control onDeploy() 方法。使用此方法的 Click 额外控件应该在 Click Extras JAR 中注册extras-controls.xml文件。
Click 遵循 Sun 针对 Java 代码风格的约定。其他风格约定和实践包括
- 缩进为 4 个空格,不使用制表符
- public 和 protected 可见性成员需要 Javadoc
- private 和 package 可见性成员不需要 Javadoc
- 优先使用未经检查的RuntimeException并避免创建新的 Exception 类
- 检查方法参数并抛出IllegalArguementException如果参数为 null 或无效
- 避免创建比完成工作所需的更多类
- 在类的properties文件中本地化控件消息
- 使用Context.getLocale()方法获取用户的区域设置
- 在签入代码之前,运行 Ant 任务ant format-java