Java Web体系结构知识排序

软件开发


浏览:1377 次

首先,让我们来谈谈JavaWeb需要知道什么。这里是一些知识点的集合,将不再详细解释。

1.底部

 nbsp; ;首先,JVM的结构和工作原理。更重要的是Java内存模型、各种GC算法和Classloader的加载原理。我对一些潜在的事情有很好的理解,所以我没有太多麻烦。事实上,程序编译和链接的过程以及二进制文件的处理仍然值得研究。

JVM监视和调优。作为开发人员,您不需要非常熟悉JVM调优方法。但是,如果您能够监视和调优JVM,您将知道程序的运行状态,并对问题位置更加敏感。

Java多线程。了解线程安全,以及如何避免在自己的程序中由多线程导致的不一致。

输入/输出Java中经常提到的是BIO/NIO,即阻塞I/O和非阻塞I/O。事实上,这并不难理解。结合Linux中同步I/O和异步I/O的实现原理,它们基本相同。每种I/O方法解决了什么问题,以及为什么使用epoll。

2.小服务

Servlet是在服务器上运行的java程序。通常,实现自己的Java服务器app继承自HttpServlet类,然后实现其init|doGet|doPost|服务方法。servlet的生命周期从加载开始。首先,它执行初始化,调用init方法,然后运行自己的服务。当生命周期结束时,它调用destroy方法来回收资源并结束服务。

当然,仅仅了解原理是不够的,还要有实践能力。任何人都可以在IDE中编写简单的代码。然而,它还需要其他东西来运行程序。这里我指的是servlet容器。有许多servlet容器。以Tomcat为例。安装Tomcat后,在开发期间必须将其包含在Tomcat的lib中。IDE真的让很多人扫兴。IDE阻止了诸如如何组织目录、如何编译程序以及如何部署程序等问题。如果您想彻底了解整个过程,建议您从命令开始。

3.框架

JavaWeb开发中使用的框架数量惊人,版本更新带来的问题层出不穷。然而,这也是Web技术不断发展的结果。要么你选择接受它,要么引领节奏。

Spring是一个功能强大且“轻量级”的Java开发框架。之所以引用它,是因为它不是那么轻。Spring的主要目的是简化Javaapp开发,用配置替换硬编码编程,并分离模块。其架构如下图所示,包括数据访问、远程通信、AOP、核心容器等。

图1弹簧结构

弹簧有三个核心点:

1.IoC:反向控制

控制反转意味着控制权从内部类提取到容器,容器类的实例化和动作用于配置管理。

2.依赖注入:依赖注入

对象的依赖性由负责在创建对象时协调系统中各种对象的第三方组件设置。对象本身不会创建或管理其依赖关系。依赖项会自动注入到需要它们的对象中。通过参数和配置,我们可以看到“注入”一词在这里的样子。DI的最大优点是松耦合。不需要与类内的特定类绑定,但一些依赖项以参数的形式注入到类中。

3.面向方面编程

软件开发中,分布在app中许多地方的函数被称为横切关注点。这些横切关注点通常与业务逻辑分离。将这些横切关注点与业务逻辑分离是一个正式的AOP解决方案。AOP编程可以在整个app中分离功能,以形成可重用的组件。它是高内聚性和低耦合性的另一个体现,将通用实现模块与核心业务模块分开。

冬眠

事实上,有很多数据持久性框架。我们需要掌握的不仅仅是Hibernate,还因为在以前的企业app中使用了更多的Hibernate。此外,MyBatis也占有非常重要的份额。Hibernate是一个全自动的持久性框架,它并不那么方便,因此许多开发人员更喜欢使用MyBatis,淘宝就是这样。

Hibernate的工作流程:首先,通过configura读取配置文件