赞
踩
JavaEE SSM框架的三大原理
前端框架原理(例如Vue.js):
如同freemarker、Angular.js、Bootstrap.js各种模板或框架技术。
分离是分开写,不要混着写在一起,例如html标签和CSS样式就是一种分离。
前端框架:数据和数据的展示相分离,比如freemarker模板技术,数据+网页模板,共同渲染成网页的最终效果。
2. MVVM架构思想的数据绑定。
不仅分离,输出数据的组件和对应的数据、绑定关联。实时变化、更新。Model-View-ModelView,数据-视图-视图对应的数据对象。
举例1:Vue输出一个多行多列的表格
https://www.jb51.net/article/167065.htm
举例2:Vue,一个表单文本框的使用
https://www.runoob.com/vue2/vue-forms.html
举例3:Vue树状组件(数据结构知识+ Vue或者别的某个工具知识)
https://segmentfault.com/a/1190000015763130
后台框架原理(例如Spring):
没有他人教过,没有学过、做过SSM,但是已经知道Spring和MyBatis的底层原理和设计模式的应用。
Spring MVC使用责任链模式,相当于面向切面编程,依次自动完成:请求数据的实体类封装,类型转换,格式转换,数据验证。 最后触发用户编写的控制类函数。
整个流程中,用户的每一个XML配置或者@注解,都是某个环节上“可插拔”的一个模块。每个模块,通过输出日志、输出报错信息,调试解决问题。
Spring的model,是jsp request对象的封装。Spring的view是jsp的转发方式打开网页。
Spring IOC 使用工厂模式,为某个对象创造实例并赋值(注入)、完成初始化操作。一个对象可能包含对象B、对象B包含对象C, 这是依赖。合称为依赖注入。比如:控制类包含业务类,业务类包含DAO类,DAO类包含数据库的工具类(连接、工厂、数据库会话、数据库事务管理)。
依赖注入在安卓编程中,也出现了。Android Dagger2,A fast dependency injector(依赖注入) for Android and Java.
Spring AOP面向切面编程,使用代理模式。各种业务流程的通用步骤、公共操作,称之为切面,比如数据库事务的开始和提交。
反射机制、代理模式,可以读取一个类的成员函数信息,触发一个函数的执行。
使用Spring IOC完成对象管理,Spring MVC完成后台控制。数据库操作使用MyBatis,Spring也有自己的数据库工具类。
当项目分析设计、基本原理、编码、调试--这三件事都会,只剩下一件事:查教程和手册。
MyBatis原理:
所有XML的配置内容都是字符串。通过反射机制、或者“类名.class”,MyBatis能自动找到一个类,加载类型信息,读取类的“成员变量名”和“成员变量取值”。组装成完整、可执行的SQL语句。
Mybatis主要工作:数据到SQL语句参数、条件的映射,SQL操作结果到MODEL类、Map、JSON的映射,单表或多表的SQL操作(一对一、一对多)。
技术1:XML格式--sql参数/结果映射标签、SQL语句(.xml)。XML格式的一对多映射。
技术2:@注解格式--sql参数/结果注解。@注解格式配置的一对多映射。
动态的SQL语句拼接:
根据条件或集合,拼接SQL片段,比如where子句、set片段等。可以是XML格式,可以是.java程序中用工具类拼接而成。
MyBatis有缓存。这并不新鲜。学生第一次了解到缓存技术和算法,在《计算机组成原理》,Cache的缓存算法,这和数据库的缓存有类似之处。
为了减少数据库的访问,提高效率,MyBatis可以开启二级缓存。二级缓存的收回策略。学生在《操作系统》的内存管理曾经学过,算法是一致的。
当学生学《计算机组成原理》、《操作系统》时,不会想到以后在MyBatis缓存中会使用。MyBatis缓存不属于关键部分,关注、了解的少。
当数据库设计、项目分析设计、基本原理、编码、调试--这五件事都会,只剩下一件事:查教程和手册。
作者:https://blog.csdn.net/weixin_42644456
2020年2月21日
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。