随着移动互联网的兴起,java开发有了很大变化,逐渐从管理系统走向了互联网系统。
移动互联网的新要求:
- 高并发
传统ERP应用,可能使用人数只有几百人,同时操作同一个业务的同一个数据的人数可能只有几个人,一般不会存在高并发问题,而互联网程序,可能同时有成百上千的人同时请求同一个数据,对性能要求高,就会引发网站生存危机。
- 高响应
一般5秒上限,超过5秒后响应,用户体验不好,从而影响用户忠诚度。
- 数据一致性
由于高并发的存在,多个线程对同一数据同时访问,容易使数据产生错误,比如张三的数据响应给了李四。
- 技术复杂化
因此,互联网中兴起了许多新技术,如:NoSQL,大数据以及分布式开发。
为什么选择SSM框架+Redis开发模式
- Struts+Spring开发存在臃肿的毛病以及多次出现漏洞;所有这个时候SpringMVC成为了新的主流,它原生于Spring,可以无缝对接Spring核心技术,它的流程模块化,没有臃肿的类。
- 在web应用中,Spring框架是必须的,它的核心是IoC(控制反转),它是一个容器,方便组装和管理各类系统内外部资源,同时支持AOP(面向切面编程),这是对面向对象的扩充,目前广泛应用于日志和数据库事务控制,减少了代码,使程序更清晰。
- MyBatis代替Hibernate,优化SQL是高并发和高响应的必然要求,而在需要存储过程或复杂SQL语句时,Hibernate映射关系完全用不上。
- NoSQL将数据存放在内存中,数据库则存放在磁盘中,显然内存读取速度快些,这就满足了高响应的需求,目前有Redis和MongoDB两种NoSQL工具正在流行起来。
认识SSM框架和Redis
- Spring框架的成功来源于理念而不仅仅是技术本身
关于Spring IoC:它是一个容器,它会认为一切java资源都是java bean,它就是管理这些Bean和它们之间的关系,包括Java Bean的创建,事件,行为。所谓控制反转,就是Spring IoC 会通过描述的信息找到相应的Bean资源,需要实现类时,我们通过配置信息就可以完成了,想修改或者加入其它资源也可以通过配置完成,不需要再用new关键字进行创建对象,依赖关系也可以通过配置来完成,即插即拔。
关于Spring AOP:常用于数据库事务的编程,比如说一个业务需要经过多个部门批准,这时就会有被驳回的可能,这就是一个切面;在程序中,如果某个阶段返回一个异常消息,事务就会回滚,之前的操作也会回滚,从而可以保证数据的一致性。
- MyBatis前身是Apache的开源项目iBatis。
MyBatis的优势在于灵活,它的数据访问层DAO是不需要实现类的,只需要一个接口和XML(或者注解)。它提供了自动映射,动态SQL,级联,缓存,注解,代码和SQL分离等特性,同时也可以对SQL优化。
注:ORM框架(对象关系映射框架):POJO对象和数据库表相互映射的框架
- Spring MVC:
Model(模型):封装了应用程序的数据和由它们组成的POJO
View(视图):负责把模型数据渲染到视图上,将数据以一定的形式展现给用户
Controller(控制器):负责处理用户请求,并建立适当的模型把它传递给视图渲染
- 最流行的NoSQL——Redis
它存储的数据是半结构化的,意味着计算机在读入内存中有更少的规则,读入速度更快。
流行的原因:响应快速;支持6种数据类型(字符串,哈希结构,列表,集合,可排序集合,基数);操作都是原子的;MultrUtility工具