三层架构
复习
1、Spring容器的地位是整个开发的核心,是所有Java程序员离不开的。它涉及到了:Spring容器(主要负责对Bean对象的产生和依赖注入,以及AOP),Spring-Web(主要负责是web开发),Spring-boot(主要负责对整个Spring当中各种子框架的搭建),Spring-jpa(主要负责对数据持久操作),Spring-Cloud(主要对微服务进行操作),Spring-Security(对用户的签全,访问安全性,数据安全性)。
现在对大家的要求只有Spring容器的最基本的使用(1、让Spring容器去产生Bean对象;2、让Spring容器注入关联)。
2、使用步骤上:
2-1、导入Spring的jar包;-- Maven工具
2-2、会使用@Configration,声明模式注解;
这个模式注解的任务就是做配置,配合@Componet注解
2-3、会使用自动注入的方式,添加依赖
2-4、能够用AnnotationConfig ApplicationContext类完成Spring上下文加载,以及用getBean方法获取Spring容器中的Bean对象。
架构模式
前面的课程中提过了架构模式,他是一种宏观的模式。它的任务是把整个项目的组织结构,包结构,类的职责进行拆分和组合,更利于我们的开发实现,让大家对于各种不同的项目都能有一个基本的套路可循。
三层架构
哪三层?
任意一个项目,我们都可以从项目的结构中划分出三层:表现层、业务层、持久层。
表现层 --- 提供用户视图;用户视图的主要任务是给用户提供操作界面的,即数据的输入和数据的展示。
业务层 --- 主要用途是数据的处理;根据具体项目业务的不同,通过编码方式对数据进行业务操作。
持久层 --- 主要用途是数据的持久化操作,通常都是DB,也有可能是文件。核心操作只有4个增删查改(CRUD)
三层的工作方式
事务脚本模型 --- 每一次用户提交的业务处理,都会从表现层-->业务层--->持久层,然后再返回回来。
这样做的好处在于:
1、在项目开发中,都不是一个人在完成,而是多人开发,所以形成统一的操作规范是很重要的;
2、三层架构首先是对单一职责的体现;根据职责的不同,划分出了三个层各自负责一个任务,让他们各司其职。
3、三层架构的划分也是多态的表现,无论是哪一层的需求发生改变,我们都只需要修改该层的内容,而其它层是动不到的。这里体现了分离的特性,不仅仅是代码的分离也是开发人员的分离。
4、层与层之间需要做数据交互,这些数据本质上应该都是对象,这种对象叫做:DTO(数据传输对象)
三层架构提出了它的标准的分包结构,然后在各自的包当中提供具备该包规范的各种类;
比如:ATM这个项目中
view包 --- 我们的JavaFX的代码
service包 --- 里面全是业务处理的类和方法;
dao包 --- 里面全是对数据的持久操作
bean包 --- 里面全是DTO对象,都是具有大量属性的Bean对象;
另外还有可能有util包,里面都是工具类。
在分析与设计的流程上:
1、首先实现界面,完成界面的基本流程跳转;
2、然后通过界面分析有哪些对象?每个对象有哪些属性?那么创建出对应的Bean对象,放到Bean包当中;
3、根据要操作的Bean对象,分析出有哪些Service类;根据界面的每次交互,设计出Service有哪些行为?这时不忙实现Service,而是先定义成接口
4、根据Service当中的各个行为,分析出他们对持久的需要,设计出相应的Dao类和Dao类当中的方法;也是先定义成接口
5、完成界面对Service的调用,和Service对Dao的调用,这个时候再来写实现类。