4、减少后端服务器的并发/负载压力 。除了接口以外的其他所有http请求全部转移到前端nginx上,接口的请求调用tomcat,参考nginx反向代理tomcat 。且除了第一次页面请求外,浏览器会大量调用本地缓存 。
5、即使后端服务暂时超时或者宕机了,前端页面也会正常访问,只不过数据刷不出来而已 。
6、也许你也需要有微信相关的轻应用,那样你的接口完全可以共用,如果也有App相关的服务,那么只要通过一些代码重构,也可以大量复用接口,提升效率 。(多端应用)
7、页面显示的东西再多也不怕,因为是异步加载 。
8、nginx支持页面热部署,不用重启服务器,前端升级更无缝 。
9、增加代码的维护性&易读性(前后端耦在一起的代码读起来相当费劲) 。
10、提升开发效率,因为可以前后端并行开发,而不是像以前的强依赖 。
11、在nginx中部署证书,外网使用https访问,并且只开放443和80端口,其他端口一律关闭(防止黑客端口扫描),内网使用http,性能和安全都有保障 。
12、前端大量的组件代码得以复用,组件化,提升开发效率,抽出来!
八、注意事项1、在开需求会议的时候,前后端工程师必须全部参加,并且需要制定好接口文档,后端工程师要写好测试用例(2个维度),不要让前端工程师充当你的专职测试,推荐使用chrome的插件postman或soapui或jmeter,service层的测试用例拿junit写 。ps:前端也可以玩单元测试吗?
2、上述的接口并不是java里的interface,说白了调用接口就是调用你controler里的方法 。
3、加重了前端团队的工作量,减轻了后端团队的工作量,提高了性能和可扩展性 。
4、我们需要一些前端的框架来解决类似于页面嵌套,分页,页面跳转控制等功能 。(上面提到的那些前端框架) 。
5、如果你的项目很小,或者是一个单纯的内网项目,那你大可放心,不用任何架构而言,但是如果你的项目是外网项目,呵呵哒 。
6、 以前还有人在使用类似于velocity/freemarker等模板框架来生成静态页面,仁者见仁智者见智 。
7、这篇文章主要的目的是说jsp在大型外网java web项目中被淘汰掉,可没说jsp可以完全不学,对于一些学生朋友来说,jsp/servlet等相关的java web基础还是要掌握牢的,不然你以为springmvc这种框架是基于什么来写的?
8、如果页面上有一些权限等等相关的校验,那么这些相关的数据也可以通过ajax从接口里拿 。
9、对于既可以前端做也可以后端做的逻辑,我建议是放到前端,为什么?因为你的逻辑需要计算资源进行计算,如果放到后端去run逻辑,则会消耗带宽&内存&cpu等等计算资源,你要记住一点就是服务端的计算资源是有限的,而如果放到前端,使用的是客户端的计算资源,这样你的服务端负载就会下降(高并发场景) 。类似于数据校验这种,前后端都需要做!
10、前端需要有机制应对后端请求超时以及后端服务宕机的情况,友好的展示给用户 。
九、扩展阅读1、其实对于js,css,图片这类的静态资源可以考虑放到类似于阿里云的oss这类文件服务器上(如果是普通的服务器&操作系统,存储在到达pb级的文件后,或者单个文件夹内的文件数量达到3-5万,io会有很严重的性能问题),再在oss上配cdn(全国子节点加速),这样你页面打开的速度像飞一样,无论你在全国的哪个地方,并且你的nginx的负载会进一步降低 。
2、如果你要玩轻量级微服务架构,要使用nodejs做网关,用nodejs的好处还有利于seo优化,因为nginx只是向浏览器返回页面静态资源,而国内的搜索引擎爬虫只会抓取静态数据,不会解析页面中的js,这使得应用得不到良好的搜索引擎支持 。同时因为nginx不会进行页面的组装渲染,需要把静态页面返回到浏览器,然后完成渲染工作,这加重了浏览器的渲染负担 。浏览器发起的请求经过nginx进行分发,URL请求统一分发到nodejs,在nodejs中进行页面组装渲染;API请求则直接发送到后端服务器,完成响应 。
3、如果遇到跨域问题,spring4的CORS可以完美解决,但一般使用nginx反向代理都不会有跨域问题,除非你把前端服务和后端服务分成两个域名 。JSONP的方式也被淘汰掉了 。
4、如果想玩多端应用,注意要去掉tomcat原生的session机制,要使用token机制,使用缓存(因为是分布式系统),做单点,对于token机制的安全性问题,可以搜一下jwt 。
5、前端项目中可以加入mock测试(构造虚拟测试对象来模拟后端,可以独立开发和测试),后端需要有详细的测试用例,保证服务的可用性与稳定性 。
推荐阅读
- 中秋节这天为什么要吃月饼呢 中秋节后超市月饼怎么处理
- 韩信为什么不自立为王?为什么要拉上刘邦 韩信当时反叛刘邦可以得天下吗
- 世界上最大的玫瑰花 朱丽叶玫瑰为什么那么贵
- 图文详解HDFS工作机制
- Web实现前后端分离解析
- 到底什么是中台?为什么说中台程序员有可能最值钱?
- 面瘫前兆 面瘫的原因 针灸治疗面瘫的方法
- 针灸减肥有奇效开始之前需要了解这6点
- 针灸疗法有哪些作用?需要注意什么?
- 不同时期的针灸减肥都有要点你一定牢记
