本课程通过教学形式和内容创新,带给学员实战经历和经验。
高效的教学方式
本课程摒弃传统面授、直播、视频的低效学习方式,创新
以学员经历为核心的教学方式:
- 以实战为导向,提炼出最简学习知识点,学员只学有用知识
- 构建阶梯式学习路径,避免知识风暴,让学员学得会,学员由易到难,按需学习
- 沉淀实战经验到源码和课程知识点中,学员潜移默化汲取经验
- 内置系统AI老师,引导学员经历获取工作目标、遇到问题、分析分解问题、(编程开发)、运行源码、思考修改源码的实际编程工作全过程,解决学员不会用问题
- 拓扑可视化呈现知识点,学员在以后工作中可以按需查询,解决了学员记不住问题
通过新型的教学方式,促使学员脱离了只听和看的舒适区,真正地动起来,真正地去思考实践,从而学员学完后在工作中就马上会用和有用。
全新的课程内容
本课程摒弃传统技术讲解或案例堆砌的方式,选取大家容易理解的“用户管理”功能,带领着用户按照商用的要求做深做透;学员真正能够学后直接应用于工作中。
学员将经历开发“用户管理”功能的全过程:
- 用户管理的功能分解
- 用户列表展示的前端页面
- 用户列表查询的前端页面
- 用户列表的后端服务
- 新增用户的前端页面
- 新增用户的后端服务
- 数据一致性的事务处理
- 用户管理功能的访问权限控制
- 用户列表的精细按钮权限控制
- 日志记录便于运维跟踪
- 缓存提高性能
适用场景:J2EE-WEB企业级应用开发
本架构包含后端和前端架构两部分:
(1)后端架构:SpringMVC+Spring+Mybatis,服务端应用的标配
SpringMVC负责转发请求和视图,Spring MVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
Spring用于实现业务的对象,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,简单、可测试和松耦合。
Mybatis是对jdbc的封装,负责数据库的操作,MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索,使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs映射成数据库中的记录。
(2)前端架构:layui(html+css+js),开发效率和性能更佳
layui是一款前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用。其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从核心代码到 API 的每一处细节都经过精心雕琢,非常适合界面的快速开发。layui属于轻量级框架,简单美观,适用于开发后端模式,它在服务端页面上有非常好的效果。使用layui能够极大地提升开发效率。
前端页面采用HTML,开发过程中能够实现前端和后端的脱离,开发效率更高;部署时能够借助Ngnix实现动静分离,一方面Ngnix处理静态资源的能力超强,是tomcat的6倍,另一方面能够极大地减轻服务器的压力,提高服务器处理请求的性能。
SpringMVC的优点:
a、springMVC是使用了MVC设计思想的轻量级web框架,对web层进行解耦,具有清晰的角色划分,使得我们开发更简洁。
b、与Spring无缝衔接。
c、灵活的数据验证,格式化,数据绑定机制。
Spring的优点:
a、通过Spring的IOC特性,将对象之间的依赖关系交给了Spring控制,方便解耦,简化了开发。
b、通过Spring的AOP特性,很容易实现事务、日志、权限的控制,低侵入式。
c、Spring支持声明式事务,只需要通过配置就可以完成对事务的管理,而无需手动编程。
d、提供了对其他优秀开源框架的集成支持。
Mybatis的优点:
a、sql写在xml文件中,便于统一管理和优化,解除sql和程序代码的耦合。
b、提供映射标签,支持对象和和数据库orm字段关系的映射,支持对象关系映射标签,支持对象关系的组建
c、提供xml标签,支持编写动态sql。本架构对单表的操作进行了业务封装,无需手动逐个配置sql,极大提升了开发效率。
layui的优点:
a、layui属于轻量级框架,简单美观。适用于开发后端模式,它在服务端页面上有非常好的效果。layui遵循原生 HTML/CSS/JS 的书写与组织形式,程序员极易上手。
b、layui是提供给后端开发人员最好的ui框架,基于DOM驱动,容易理解,与程序员的习惯一致。
html的优点:
a、开发过程中前端与后端脱离。前端不会嵌入任何后台代码,前端专注于HTML、CSS、JS的开发,前端能够模拟Json数据来渲染页面,不依赖于后端。发现Bug,也能迅速定位出是谁的问题。
b、跨平台能力更强,依托于浏览器的支持
c、使后台数据接口能够得到复用
d、部署时能够实现动静分离,提高运行性能
本架构的不足:
1、SSM的配置复杂,有很多难点,如包之间的相互依赖、不确定中间有没有冲突、升级版本可能也会导致冲突。解决方案是可以使用Springboot来自动管理包。
2、SSM的使用门槛升高,入门需要较长时间。“快捷使用方式”和“系统运行原理”两个模块能够完美的解决这个问题。
3、Spring的IOC特性,会略微影响性能。以现代的服务器性能来看,这种影响大部分场景是可以忽略的。
4、layui实现前端频繁交互的场景会比较麻烦,因为页面的增删改查都需要查询DOM元素。一般非大屏展示类的系统交互不会太频繁,没有影响。
5、本架构是前后端半分离的架构,存在一定的弊端,资源消耗较严重,在业务复杂的情况下,一个页面可能要发起多次HTTP请求才能将页面渲染完毕。PC端影响不大,但移动端的影响比较明显。所以移动端一般推荐前后端完全分离的架构。