我有两个项目,使用这些技术实现:
- Apache Tomcat
- PostgreSQL
- 休眠
- JPA
- 春天
- Spring 安全性
- JAX WS
- GWT
- MVP4g
我使用 Spring 只是为了将所有技术放在一起。
我有两个不同的应用程序,我想分享在这个应用程序中一起使用这些技术的经验。这两个应用程序在服务器上都没有困难的逻辑,即使在第二个应用程序中,所有逻辑都放在客户端上,而服务器只是将数据存储到数据库/从数据库中获取数据。 GWT 很好地解决了这个问题。我认为,服务器上的最小计算最适合云应用程序。
1.第一个是监控系统,旨在解决这些任务:
因此,主要问题是获取大量数据并将其显示在图表中,这些数据存储在一个表中(每 5 天大约 +100 万行)。我们必须在一张图上显示大约 5k 到 20k 点,并定期重新加载此图以从服务器获取实际信息。我们决定使用 hibernate+jpa,但我认为这不是最好的方法,因为我们开始在获取和发送 10k+ 行时遇到问题。
所以,我们决定从 spring+hibernate+jpa 迁移到 spring+jdbc,因为它比第一个运行得更快,并且在我的情况下使用更少的内存。所以最好不要使用休眠如果你:
- 几乎没有实体(在我的例子中是 6 个)
- 拥有大量数据
- 需要快速加载
永远记住,您需要尽可能少地从数据库中获取数据,使用不同的过滤器等(这在我的情况下不起作用,因为我必须尽可能多地显示信息才能为操作员提供最佳统计信息,但您也可以使用数学来平均一些值、数字等)
对于客户端,Google Charts 与 GWT 配合得非常好。由于应用程序被放置在本地网络中,我们在客户端加载大量数据时没有问题。
我在云中部署了应用程序 (Jelastic),只是为了进行测试,并且由于在短时间内传输大量数据而面临客户端加载缓慢的问题。
2。第二个应用是用于管理销售、订单、联系人等的云应用:
它是为解决这些任务而构建的:
- 快速存储、获取、计算数据
- 为用户提供简单愉快的界面来操作上面提到的任务
此应用在服务器端没有逻辑。服务器仅从数据库获取和存储数据。
我们借助 maven(实体+daos、spring services 和 web GWT)将应用分为几个模块。
所以 hibernate+jpa 在这里表现不错,因为我们有大量的实体而不是大表。此外,所有客户端网格都有加载少于 100 行的默认过滤器,用户也必须过滤他的搜索。因此,如果在这个项目中使用 hibernate+jpa,我有相反的方向:
对于 GWT,在纯 Java 上编写客户端逻辑、调试代码和通过刷新页面测试新创建的逻辑非常棒。
我也应该建议你使用MVP4g 作为模型视图展示器框架以正确的方式构建 GWT 应用程序:) 它确实简化了开发过程和代码理解。
至于 tomcat,我们在两个项目中都没有遇到大问题。
我认为这些基本建议将帮助您构建好的项目!
祝你好运!