JavaEE学习 day01

今天,我开始了JavaEE的学习。首先,先回顾了一下Servlet项目存在的问题,然后,学习了SSM的作用、Spring基础核心、控制反转概念、控制反转的示例、组装打印机示例、组装打印机属性set方法。
总结一下一些需要注意的问题:
1.MVC模式
1.1 MVC设计概述
在早期 Java Web 的开发中,统一把显示层、控制层、数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Model1:
JavaEE学习 day01_第1张图片
出现的弊端:
JSP 和 Java Bean 之间严重耦合,Java 代码和 HTML 代码也耦合在了一起
要求开发者不仅要掌握 Java ,还要有高超的前端水平
前端和后端相互依赖,前端需要等待后端完成,后端也依赖前端完成,才能进行有效的测试
代码难以复用
正因为上面的种种弊端,所以很快这种方式就被 Servlet + JSP + Java Bean 所替代了,早期的 MVC 模型(Model2)就像下图这样:
JavaEE学习 day01_第2张图片
首先用户的请求会到达 Servlet,然后根据请求调用相应的 Java Bean,并把所有的显示结果交给 JSP 去完成,这样的模式我们就称为 MVC 模式。
M 代表模型(Model)
模型是什么呢? 模型就是数据,就是 dao,bean
V 代表视图(View)
视图是什么呢? 就是网页, JSP,用来展示模型中的数据
C 代表控制器(controller)
控制器是什么? 控制器的作用就是把不同的数据(Model),显示在不同的视图(View)上,Servlet 扮演的就是这样的角色。
1.2 Spring MVC 的架构
JavaEE学习 day01_第3张图片
MVC原理图:
JavaEE学习 day01_第4张图片
2.Spring的体系结构
Spring一共有十几个组件,但是真正的核心组件只有几个。
JavaEE学习 day01_第5张图片
从这个图中我们可以看出Spring框架的核心组件只有三个:Core、Context和Beans。他们构建起了整个Spring的骨骼架构,没有他们就不可能有AOP、Web等上层的特性功能。上面这些是Spring特性功能。
其中比较重要的几个包:
AOP包(主要提供面向切面编程的实现);
Web(主要提供了Web应用开发的支持及针对Web应用的MVC思想实现)、ORM(为Hibernate、Mybatis这类持久化框架提供支持);
还有Spring MVC(这个是它自带的一个web视图层,可以替代到Sturts2)。
3.控制反转(依赖注入)
什么是控制反转
将组件对象的控制权从代码本身转移到外部容器。
组件化的思想:分离关注点,使用接口,不再关注实现。
在这里插入图片描述
依赖的注入:将组件的构建和使用分开。
JavaEE学习 day01_第6张图片
当某个角色(比如一个java实例,调用者)需要另一个角色(另一个java实例,被调用者)的协助时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但是在spring里,创建被调用者的工作不再由调用者来完成。因此被称为控制反转;创建被调用者实例的工作通常由spring容器来完成,然后注入调用者,因此也称为依赖注入。这样给程序带来很大的灵活性,这样也实现了我们的接口和实现的分离。
简而言之也就是说我们要获得一个对象,不由我们开发者自己创建,而是由我们的容器来注入给我们的程序来使用。

你可能感兴趣的:(笔记)