Your SlideShare is downloading. ×
0
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]

2,040

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,040
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Het maakt eigenlijk niet uit of je van old school of new school Spring migreert, de argumenten zijn hetzelfde. Voor old school is meer werk nodig, maar is er ook meer reden toe. Van new school is het waarschijnlijk een kleine stap, zeker als je al JPA/JSF etc. gebruikt.
  • 3 opties: niks doen / nieuwe api ’ s gebruiken maar spring leidend houden / all-the-way
  • Transcript

    • 1. JAVA EE 6 最佳实践: 从 Spring 迁移到 WTF ?!?WTF ?!?
    • 2. Bert Ertman 荷兰 Luminis 公司研究员 荷兰 Java 用户组的负责人,同时还是一位 Java Champion 2 Practical Modularity with Java in the Cloud Age Paul Bakker &Bert Ertman Modular Cloud Apps with OSGi Building
    • 3. 这是说给谁听的? 您正在使用老版本的 Spring ,却不知怎样向 前发展 Java EE 好像又火起来了,您应当赶上这样的 趋势吗? 您喜欢《 J2EE Design and Development 》 这本书,但它仍没有过时吗? 3
    • 4. 为什么要倾听我们的意见 ? 我们不为任何一家应用服务器供应商 工作 我们也不是 Rod Johnson 的追随者 我们广泛使用 J2EE 、 Spring 和新的 Java EE 技术 针对 Java EE 和 Spring 展开过无数次讨论… … 4
    • 5. 为什么要迁移? Spring 是一项专有技术 无论如何,从旧版的 Spring 升级需要大量的 工作 那,为什么不直接迁移到标准上来呢? 5
    • 6. Scenario A
    • 7. 但现在我们需要这样的
    • 8. 首先让我们澄清几 个误解…… 8
    • 9. Java EE 是否过于庞大了? 部署了应用后的平台启动时间 JBoss AS 7 约 2 秒 Glassfish V3 约 4 秒 Tomcat 6 + Spring 约 4 秒 Java EE 6 WAR 文件 < 100kb 9
    • 10. 但是我需要依赖注入 • Java EE 6 引入 CDI • 更强大的上下文 DI 模型 • 让平台能够以标准方式扩展 10
    • 11. 但是我需要 AOP ! 是吗? 难道您想让你的代码变 得杂乱并难以理解吗? 或者,您仅仅是使用了 轻量级的 AOP , 即 Spring AOP 或 Java EE 规范中的拦截器? 11
    • 12. 我是否需要重型工具? 12
    • 13. 功能比较 功能 Spring JavaEE 依赖注入 Spring 容器 CDI 事务 AOP/ 批注 EJB Web 框架 Spring Web MVC JSF AOP AspectJ (限于 Spring bean ) 拦截器 消息处理 JMS JMS / CDI 数据访问 JPA / JDBC 模板 / 其他 ORM JPA RESTful Web 服务 Spring Web MVC (3.0) JAX-RS 集成测试 Spring 测试框架 Arquillian * * 不是 Java EE 规范的一部分 13
    • 14. 这一切均可使用普通轻 量级 Java EE 完成 14
    • 15. rm -Rf spring* ? 15
    • 16. 当然,这将十 分有趣! 实际情况呢? 16
    • 17. 典型的老版本 Spring 应用 大量复杂的 XML 配置文件,无法使用注解 旧式 / 过时的 ORM 解决方案 ( JDBC 模板、 Kodo 、 Toplink 等) 过时的基于 Web MVC 的扩展 ( SimpleFormController 等) 17
    • 18. 迁移路径 1. 升级 Spring 版本 2. 替换 Spring 内的旧框架( ORM 、 Web 框 架) 3. Spring 和 Java EE 容器并存 4. 完全替换 Spring 5. 移除 Spring 容器 18
    • 19. 迁移路径 1. 升级 Spring 版本 2. 替换 Spring 内的旧框架( ORM 、 Web 框 架) 3. Spring 和 Java EE 容器并存 4. 完全替换 Spring 5. 移除 Spring 容器 19
    • 20. 升级 Spring 版本 升级 Spring 运行时(替换 JAR 文件) 无代码 / 配置变更 20
    • 21. 迁移路径 1. 升级 Spring 版本 2. 替换 Spring 内的旧框架( ORM 、 Web 框 架) 3. Spring 和 Java EE 容器并存 4. 完全替换 Spring 5. 移除 Spring 容器 21
    • 22. 替换 Spring 内的旧框架 表示层 数据 / 集 成层 Web MVC 任务 Spring JDBC 模 板 Kodo @AutoWired 业务层 JMS bean @AutoWired @AutoWired JPA JSF 尚未触碰特定于 Spring 的 API Spring bean 22
    • 23. 迁移路径 1. 升级 Spring 版本 2. 替换 Spring 内的旧框架( ORM 、 Web 框 架) 3. Spring 和 Java EE 容器并存 4. 完全替换 Spring 5. 移除 Spring 容器 23
    • 24. myapp.war Spring 容器 Servlet 容器 Spring 应用程序 Spring bean Spring bean TXTX 管 理 器 管 理 器 AOPAOP ORMORM 24
    • 25. Java EE 6 应用服务器 CDI / EJB 容器 myapp.war CDI bean 会话 bean TXTX 管 理 器 管 理 器 安 全 性 安 全 性 拦 截 器 拦 截 器 JPAJPA Java EE 应用程序 25
    • 26. Java EE 6 应用服务器 CDI / EJB 容器 myapp.war CDI bean 会话 bean TXTX 管 理 器 管 理 器 安 全 性 安 全 性 拦 截 器 拦 截 器 JPAJPA Spring 容器 Spring bean Spring bean TXTX 管 理 器 管 理 器 AOPAOP ORMORM 混合在一起 26
    • 27. 在 Java EE 容器内运行 Spring 表示层 数据 / 集成层 Spring bean 任务 Spring JDBC 模板 业务层 JMS bean @AutoWired @AutoWired JPA JSF 27
    • 28. Spring 和 Java EE 容器并存 表示层 数据 / 集成层 Spring bean 任务 Spring JDBC 模 板 业务层 JMS bean @AutoWired @AutoWired JPA JSF EJB CDI @Inject @Inject 28
    • 29. Spring DAO 29
    • 30. Spring 配置 30
    • 31. JSF / CDI bean 在此,我们不想了解 Spring 31
    • 32. 用 CDI 封装 Spring 编写 CDI 扩展 引导 Spring 容器 在 Spring 容器中查找 Spring Bean 并在 CDI 上下文中发布 32
    • 33. CDI 扩展示例 33
    • 34. 迁移路径 1. 升级 Spring 版本 2. 替换 Spring 内的旧框架( ORM 、 Web 框架) 3. Spring 和 Java EE 容器并存 4. 完全替换 Spring 5. 移除 Spring 容器 34
    • 35. 完全替换 Spring 表示层 数据 / 集成层 Spring bean 任务 Spring JDBC 模 板 业务层 JMS bean @AutoWired @AutoWired JPA JSF EJB CDI @Inject @Inject 35
    • 36. 完全替换 Spring 表示层 数据 / 集成层 EJB 计时器业务层 MDB @AutoWired @AutoWired JPA JSF EJB CDI @Inject @Inject Spring JDBC 模 板 36
    • 37. TX 层 将 Spring TX 和 DAO 迁移到 EJB TX 管理器在应用服务器内 默认情况下, EJB 是事务性的 EJB 集成了 JPA 37
    • 38. 您是说 EJB 很好吗? 一点没错! EJB 只是容器管理的 POJO 与 Spring bean 一样,而且不需要容器配置…… 38
    • 39. DAO Spring 39
    • 40. DAO 配置 40
    • 41. Java EE 替代方案 EJB 41
    • 42. 处理惰性加载 许多 Spring 应用程序使用 Open- EntityManager-In-View 模式 EJB 具有扩展的持久性上下文 更明确、更强大 42
    • 43. LazyInitializationException 异常 43
    • 44. 修复惰性加载问题 只要 bean 存在就保持 EntityManager 可用 44
    • 45. 沉迷于模板? 如果使用了 JDBC 模板将会怎样? 让我们开始是否使用 ORM 的老生常谈 第 1 阶段:拒绝 第 2 阶段:最终将会完成迁移 ;-) 45
    • 46. 使用 Java EE 内的 JDBC 模板 可用简单的生成器方法注入 可能是因为它没有依赖 Spring 容器 尽管有一些额外的依赖项 46
    • 47. 模板生成器示例 47
    • 48. 迁移路径 1. 升级 Spring 版本 2. 替换 Spring 内的旧框架( ORM 、 Web 框架) 3. Spring 和 Java EE 容器并存 4. 完全替换 Spring 5. 移除 Spring 容器 48
    • 49. 移除依赖项 类路径只需要包含 API 所需的类,并不需要 包含框架类 使得从大约 40 个依赖性减少到 1 个 49
    • 50. 测试方面如何? Spring 在测试方面一直很出色 DI 让单元测试可行 Spring 测试框架让 Spring 容器内测试可行 灵活配置能满足多环境下测试的需要 50
    • 51. 如何进行测试? 51
    • 52. Arquillian 使用 API 创建微部署 部署到真正应用服务器 在服务器中运行测试 52
    • 53. Arquillian 示例 53
    • 54. 这一切都值得吗? 55
    • 55. Spring 之后还有后 来者吗? 我们相信,创新空间总是存在的 最好是通过开源实现 并且,如果有更为杰出的技术发展出来了,我 们会将其整合到标准规范中 56
    • 56. 还有更多! • JBoss 网站上的 4 部分文章系列 • Pet Clinic 示例应用程序的逐步迁移 • http://www.howtojboss.com 57
    • 57. 谢谢!

    ×