12 | 唯有套路得人心:谈谈Java EE的那些模式
四火
该思维导图由 AI 生成,仅供参考
你好,我是四火。
本章我们以 MVC 架构为核心,已经介绍了很多设计模式,今天我们将进一步泛化,谈论更多的 Java EE 模式。这些模式,就是我们在搭建全栈架构、设计的工作过程中,不断总结和应用的“套路”。
背景和概念
我相信很多人都接触过面向对象模式,可是,模式是个通用词,面向对象只是其中的一个分支而已。事实上,我们本章的重点 MVC 本身就是一种典型的模式,介绍过的 CQRS 是模式,学习过的 AOP、IoC,这些其实也都是模式。
因此,和其它领域的技术相比,作为全栈工程师的我们,更有机会接触到各种模式。这些模式可以帮助我们在设计开发工作中拓宽思路,使用精巧的代码结构来解决实际问题。
说到这里,你可能会问,为什么这次谈论模式的时候,要使用 Java EE 这个编程语言前缀?模式不是应该和语言无关吗?
一点都没错,模式就是和语言无关的,但是,诞生模式最多的温床,就是 Java 语言。
世界上没有任何一门语言,像 Java 一样,几乎一直被黑,但是生态圈一直在壮大,且在工业界具备如此统治力。很多人说,Java 是一门平庸的语言,这可能没错,但是它对于底层细节的封装和语言本身的难度做到了很好的平衡,它不一定会有多精巧、多出彩,但是新手也可以顺利完成工作,且不容易写出破坏性强、其他人难以接手的代码,这对于要规模、要量产的工业界来说,简直是超级福音。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了Java EE中的设计模式,以MVC架构为核心,讨论了Java EE模式的广泛性和重要性。作者指出,Java EE作为一个广泛应用的编程语言,其生态圈的壮大和对模式的敏感性使得Java EE模式得到了广泛的应用。文章列举了Java EE模式的分类和涉及的范围,并详细介绍了拦截过滤器的配置和实践。通过实例演示了在Tomcat中配置过滤器的步骤,并展示了过滤器的调用顺序和作用。最后,作者指出过滤器本质上是面向切面编程的一种子模式,与之前学习的AOP模式相关联。整体而言,本文通过实例和理论相结合的方式,深入浅出地介绍了Java EE中的设计模式,为读者提供了全面的了解和实践指导。文章还介绍了DAO层的两种经典解决思路:MyBatis和Hibernate,分析了它们的特点和适用场景。同时,提出了对读者的思考问题,引导读者深入思考和实践。文章内容丰富,既有理论知识又有实际操作,适合Java EE开发人员和对设计模式感兴趣的读者阅读学习。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《全栈工程师修炼指南》,新⼈⾸单¥59
《全栈工程师修炼指南》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(5)
- 最新
- 精选
- Kevin·程师傅领进门,修行在个人。课程时间看似不长,但毕竟是全栈技术的精华,一边通过课程学习,一边还得网上搜各种概念知识,终于把web前端技术、前端UI框架、前端可视化组件、前端框架、后端框架、持久化框架做了个大概了解,发展演化出这麽多技术,目的还是分层、解耦、高效开发吧。
作者回复: 👍🏻
2020-04-053 - pyhhou1. 在 Node 中使用第三方的包,调用包中的 API 函数进行 DAO,这些 API 函数往往比较灵活,你可以写 SQL 语句,也可以使用它既定的模版格式,但是一般选用后者,因为后期换库的话会比较好维护 2. 文章中提到说过滤器其实是 AOP 模式的一个子模式,二者的思想其实都是把逻辑流程当中,具有共性的东西提取出来,达到解耦合的目的。个人理解,过滤器往往是针对一个 URL 的请求输入进行处理,但是对于一些中间的逻辑解耦来说,直接使用过滤器就不太合适。
作者回复: 👍
2019-10-131 - Chocolate1. 主要通过 Mybatis 和 Spring Data JPA 访问 MySQL 数据库 2. 过滤器和 AOP 都可以实现通用逻辑的处理,但 AOP 可以更灵活的处理各个方法不同的需求,如自定义的分布式锁注解,可以根据实际场景改变超时时间等。
作者回复: 关于#2,表述不太妥当,二者其实都是 AOP,一个是 Tomcat 中配置过滤器,一个是 Spring 配置切面逻辑。
2019-10-07 - 御用厨子1、Dao层主要还是访问数据库,通过Mybatis。 2、过滤器主要是能避免大量重复的代码出现,如简单的用户校验、有无Session校验和实现一些简单的功能(如访问计数器、改变传入参数字符格式)。而且过滤器能后期加入到服务中,不必修改已有业务逻辑代码。维护相对简单一些。
作者回复: 关于 #2,无论是使用 Tomcat 的过滤器,还是使用 Spring 配置切面逻辑,其实都能避免重复代码。所以这个表述不是很妥当。
2019-10-07 - anginiit有一个大项目是jpa+oracle,其他的有jpa+mysql,也有mybatis+mysql的,jpa的底层是hibernate,记得前几年前使用jpa的时候遇到很多问题,一个大项目下来,基本原理也就都明了了。2019-10-11
收起评论