网站首页 > 精选教程 正文
从今天开始,我将开启一个全新系列《读书系列》,我会把学习技术过程中阅读过的所有书籍通过笔记和 总结的方式与粉丝分享与探讨,此系列是在原著基础上收录和总结而来,希望大家得到更多的支持。
本书简介
书名为《轻量级JavaEE企业应用实战》,是本人在学习JavaEE(当时还叫J2EE)框架的时候阅读的第一本书,本书对于框架及相关基础知识讲述的比较详细和浅显,适合初学者和需要了解全面JavaEE知识的人群。
本文内容为《轻量级JavaEE企业应用实战》第一章的前半部分内容
由于书本较厚收录和总结需要时间请大家谅解
常见应用系统分层
1.Domain Object层(领域对象):此层由系列的POJO组成,本质上就是业务实体。
2.DAO层:此层由系列的DAO组件组成,这些类实现了对数据库的增删改查(CRUD)等原子操作。
3.业务逻辑层:此层由系列的业务逻辑对象组成,这些业务逻辑对象实现了系统所需的业务逻辑方法,这些业务逻辑方法依赖于DAO组件实现。
4.控制器层:此层由系列控制器组成,这些控制器用于拦截用户请求,并调用业务逻辑组件的方法,处理用户请求,并根据处理结果转发到不同的表现层组件。
5.表现层:此层由系列的JSP页面、HTML页面组成,此层负责收集用户请求,并显示处理结果。
常用JavaEE服务器
Tomcat:和JAVA结合的最好开源服务器,是Sun官方推荐的JSP服务器,经过长时间发展,性能、稳定性方面都很优秀。
Jetty:Jetty有个很大优势,它可作为嵌入式服务器,如果在应用中加入Jetty的JAR文件,应用可在代码中对外提供Web服务。
Resin:目前最快的JSP服务器,支持EJB。个人学习该服务器是免费的,但如果想商业使用,则需要交纳费用。
JBoss:开源的JavaEE服务器,支持EJB。
WebLogic、WebSphere:这是两个专业商用JavaEE服务器,拥有很多特殊的功能。
JavaEE常用技术
1.JSP、Servlet、JavaBean及替代技术
JSP是最早的JavaEE规范之一,充当应用的表现层;简单易学,往往是JavaEE学习的基础。
Servlet与JSP二者在底层的运行原理一样,实际上JSP必须被编译成Servlet,并在WEB服务器中运行。实践中Servlet已经被使用的很少了,各大框架都将其作为底层技术。Servlet3.0规范增加了异步请求、注解、增强API等新的功能。
JavaEE使用JavaBean来传输数据,中间层组件将应用底层状态信息封装成JavaBean集,也被称为
DTO(Data Transfer Object,数据传输对象),并将这些DTO传到JSP以显示应用底层数据。
2.Struts2及替代技术
Struts是世界最早的MVC框架,其作者是JSP规范的制定者,并参与了Tomcat的开发。Struts2是Struts结合WebWork而来。后来Spring家族也产生了自己的MVC框架Spring MVC并应用广泛。
3.Hibernate及替代技术
传统JAVA采用JDBC来访问数据库,它是基于SQL的操作方式,但它不是面向对象的思维,由此诞生了ORM框架,可以让你用面向对象的方式来操作关系型数据库。最早的ORM框架就是EJB,但很多人觉得EJB非常繁琐,Hibernate应运而生。它允许将普通的、传统的Java对象映射成持久化类,让应用以面向对象的方式来操作POJO,而Hibernate负责将这种操作转换为底层SQL。再后来Sun抛弃了EJB,引入了JPA规范,JPA也是一种ORM规范,底层可以使用Hibernate作为实现。
除了Hibernate框架还可以使用MyBatis作为轻量级持久层框架,MyBatis允许将SQL语句映射成对象。
4.Spring及替代技术
Spring抽象了JavaEE应用中的常用代码,将他们抽象成一个框架,通过Spring可以大幅提高开发效率,并保证应用具有良好设计。Spring充满了各种设计模式,如单例、工厂、命令、责任链、代理等。Spring更像一种中间层容器,向上可以与MVC框架无缝整合,向下可以与各种持久层框架无缝整合,Spring框架暂时没有较好的替代框架。
争议与思考
讨论:本人在实际工作中经常听到年轻的工程师说,Hibernate和ORM框架已经过时了,现在都用MyBatis。 本人是ORM和JPA规范的强烈推崇者,Hibernate是更符合设计规则的框架,而MyBatis更多的还是开发简单 快捷。对于Hibernate和MyBatis的哪个好你有什么想说的吗?咱们评论区见。
猜你喜欢
- 2024-11-24 前两天,JavaEE22051也开班啦
- 2024-11-24 面试又被问源码?阿里P8架构师带你看透源码本质
- 2024-11-24 自学JavaEE成本高吗?
- 2024-11-24 Linux入门指南-搭建JAVAEE开发环境
- 2024-11-24 JavaEE核心「JVM 的作用、类加载器、JVM内存模型、GC回收机制」
- 2024-11-24 基于JavaEE的企业制度管理系统-计算机毕业设计源码+LW文档
- 2024-11-24 如何成为一名JAVAEE软件工程师?(前言)
- 2024-11-24 javaweb、spring、springmvc和springboot有什么区别?
- 2024-11-24 「译」构建可扩展的Java EE应用(一)
- 2024-11-24 这一文让你掌握JAVA_EE_MyBatis学习&开发流程
你 发表评论:
欢迎- 04-11Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- 04-11Java中你知道几种从字符串中找指定的字符的数量
- 04-11探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- 04-11Python字符串详解与示例(python字符串的常见操作)
- 04-11java正则-取出指定字符串之间的内容
- 04-11String s1 = new String("abc");这句话创建了几个字符串对象?
- 04-11java判断字符串中是否包含某个字符
- 04-11关于java开发中正确的发牌逻辑编写规范
- 最近发表
-
- Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- Java中你知道几种从字符串中找指定的字符的数量
- 探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- Python字符串详解与示例(python字符串的常见操作)
- java正则-取出指定字符串之间的内容
- String s1 = new String("abc");这句话创建了几个字符串对象?
- java判断字符串中是否包含某个字符
- 关于java开发中正确的发牌逻辑编写规范
- windows、linux如何后台运行jar(并且显示进程名)
- 腾讯大佬私人收藏,GitHub上最受欢迎的100个JAVA库,值得学习
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)