关于一个SSM项目的总结与思考
原文写于2021-07-22,先整理至博客园
通过最近一段时间的学习,完成了一个电商项目的完整开发:从0开始 独立完成企业级Java电商网站开发(服务端),总的收获还是挺大的,大致明白了Java后端
这个工作岗位究竟是在做什么,究竟需要哪些能力,同时,也明白了所谓的编程到底是怎么一回事,还有就是常听别人说的CRUD
到底是什么感觉😂
接下来主要谈谈自己的一些感受。
-
目前业界基本上都是采用前后端分离的思想,两者之间通过Json格式字符串通信。Java主要是用来写业务逻辑的,就是负责接收前端发过来的用户请求,然后查询数据库,返回结果,这就是所谓的增删改查(CRUD)。
-
Tomcat是一个容器,可以解析servlet和jsp,其中jsp是个包含数据和视图的混合页面,里面既可以写逻辑,也可以写视图,这样就造成了控制和视图的耦合,于是有了前后端分离的思想。后来,我们只使用servlet,摒弃jsp开发。但是吧,servlet这个东西开发起来十分复杂,这里的复杂不是指逻辑上复杂,而是出现了很多样板代码,很多东西不难但是很麻烦。于是,又出现了框架,框架是一个半成品,它封装了很多通用的代码,同时也保留了足够多的自由度,开发人员从此基于框架进行开发。这里的框架是指Spring与SpringMVC。
-
Spring和SpringMVC封装了足够多的细节,从而使得开发更加简单。同时,Spring还提出了AOP(面向切面编程)与DI / IOC(控制反转、依赖注入)的思想,从而大大减轻了代码之间的耦合,这对一个大型的项目是必须的。这种解耦是通过配置文件完成的,于是呢,大量的xml文件涌现,不过Spring也提供了相应的注解方式,相比之下有一定的简化。我们可以很轻松的通过
@Controller
、@Service
、@Autowired
等实现bean
的管理,通过@RequestMapping("/path/")
实现访问方式、访问路径的控制,等等一些手段,大大简化了网络应用的开发。 -
在数据库访问层,Spring为了简化JDBC的使用,封装了
JdbcTemplate
,但是还是不能让人满意,依然有大量的样板代码,而我们仅仅需要其中的sql语句,所以,又有了MyBatis
框架,这样的话,我们只需要创建接口,在xml文件中写sql作为接口的实现就可以了 -
所以,基于Spring、SpringMVC、Mybatis这三个框架,就是所谓的SSM框架。另外,考虑web服务的三层架构,使用controller,service,dao三层去划分代码,使得整个项目更加清晰,更容易维护。
-
基于上面所说的框架,实现一个诸如在线商城的简单的项目,无非就是接受前端请求,对数据库增删改查后返回响应。我是照着教程完成的这个项目,所以基本上就是在进行
CRUD
:获取一个请求,通过SpringMVC数据绑定获得用户传入的参数,通过控制层判断用户权限,然后调用业务逻辑层完成相应的业务逻辑,再调用数据库访问层,通过sql语言访问数据库,获得需要的信息,做出相应的处理,然后把需要的数据以Json格式返回给前端,或者对数据库进行更新 -
如果在工作中一直进行所谓的
CRUD
,那真的是一点进步也没有,或许最后整个人都会变得麻木~ -
Java服务端的终极发展方向应该是朝向架构师,能够完成项目的整体设计与选型,数据库表的设计,如何支持高并发,如何支持海量数据,如何进行性能调优、分布式等等吧~
-
单纯地使用框架开发应用并没有什么技术含量,没有形成自己的个人竞争力,感觉极易被时代所淘汰啊!而且就目前来说,各种学习资源层出不穷,未来只会变得越来越简单。究竟如何找到自己的核心竞争力!找到自己的价值,这个价值不是多数人可以替代的!!