1、始终使用 MVC 框架。
2、在每一层都应用自动单元测试和测试管理。
3、按照规范来进行开发,而不是按照应用服务器来进行开发。
4、从一开始就计划使用 J2EE 安全性。
5、创建您所知道的。
6、当使用 EJB 组件时,始终使用会话 Facades.
7、使用无状态会话 bean,而不是有状态会话 bean.
8、使用容器管理的事务。
9、将 JSP 作为表示层的首选。
10、当使用 HttpSession 时,尽量只将当前事务所需要的状态保存其中,其他内容不要保存在 HttpSession 中。
11、在 WebSphere 中,启动动态缓存,并使用 WebSphere servlet 缓存机制。
12、为了提高程序员的工作效率,将 CMP 实体 bean 作为 O/R 映射的首选解决方案。
【J2EE最佳实践详解】
在开发J2EE应用程序时,遵循最佳实践是确保系统高效、可维护和安全的关键。以下是对标题和描述中提到的12个J2EE最佳实践的详细解释:
1. **始终使用MVC框架**:
- MVC模式将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个部分,有助于提高代码的可读性和可维护性。
- 模型处理业务逻辑,视图负责用户界面,控制器则协调二者交互。
- 使用MVC框架如Struts或Spring MVC,可以避免在JSP页面中混杂过多的业务逻辑,提高代码的分离度。
2. **在每一层都应用自动单元测试和测试管理**:
- 自动单元测试能确保代码片段独立运行的正确性,如JUnit用于Java代码测试。
- 测试管理如TestNG或Cucumber,帮助组织和跟踪测试用例,保证代码质量。
- 分层测试覆盖所有组件,确保每个层次的正确性。
3. **按照规范进行开发**:
- 遵循J2EE规范,如EJB、JPA、JSF等,确保代码的跨平台兼容性和可扩展性。
- 不依赖特定应用服务器的API,以增强移植性。
4. **从一开始就计划使用J2EE安全性**:
- 早期规划角色、权限和认证,使用容器提供的安全特性,如JAAS。
- 防止SQL注入、跨站脚本攻击等,确保数据安全。
5. **创建您所知道的**:
- 只编写已知的、经过验证的代码,避免未经测试的新技术引入风险。
- 使用成熟的设计模式和库,减少未知问题。
6. **使用会话Facades**:
- 会话Facades提供了一个简化的接口,隐藏EJB组件的复杂性,便于客户端调用。
- 减少客户端与EJB直接交互,提高可维护性。
7. **使用无状态会话bean**:
- 无状态会话bean在处理完请求后即可释放,减少了内存占用。
- 有状态会话bean可能导致资源浪费,适用于短暂的、用户特定的交互。
8. **使用容器管理的事务**:
- 容器管理事务(CMT)简化了事务处理,由应用服务器自动管理。
- 提高代码可读性,降低出错概率。
9. **JSP作为表示层首选**:
- JSP作为视图组件,结合标签库(TLD),可以快速生成动态HTML。
- 避免在JSP中嵌入大量Java代码,保持视图的纯粹。
10. **谨慎使用HttpSession**:
- 只存储必要的会话状态,避免过度使用导致内存泄漏或性能下降。
- 考虑使用cookie或分布式session存储解决方案以优化性能。
11. **WebSphere动态缓存和servlet缓存**:
- 启用WebSphere的动态缓存和servlet缓存,减少服务器负载,提升响应速度。
- 根据具体应用场景调整缓存策略,平衡性能和内存使用。
12. **CMP实体bean作为O/R映射首选**:
- CMP(容器管理的持久化)简化了数据库操作,减轻开发负担。
- 但CMP可能不如JPA(Java Persistence API)灵活,需要根据项目需求权衡。
通过遵循这些最佳实践,开发团队能够创建出稳定、高性能且易于维护的J2EE应用程序。同时,不断学习和适应新的开发方法和框架也是持续改进的关键。