前后端分离,后端只要返回前端json格式数据就可以。
至于业务逻辑部分spring mvc之类都可以。
Java学习路线,希望看完之后能给你带来帮助。
第一步学习JavaEE基础
Java是一种面向对象的编程语言,所以首先需要从基础学起,只有前期打牢基础,之后深入学习才能游刃有余。那么基础学习首先从基础语法、面向对象、核心类库、集合、异常、IO、线程、网络编程、反射、JDK1.8新特性这几个方面展开,学习基础阶段培养面向对象的编程思想、充分理解并运用Java面向对象思想来进行程序开发、从过程到面向对象编程的转变、,深入理解常用集合类的用法、集合的特点、内存理解以及使用;掌握多线程的概念、创建方式、同步、网络编程的基本概念等。
第二步学习JavaWeb开发
JavaWeb开发是学习Java中必不可少的内容,虽然Java是偏向于后台开发的,但是前后端不可能完全分离,后端开发人员也需要掌握一定的前端技能。JavaWeb开发可以从前端技术、MySQL、JDBC&JDBCUtils、XML、服务器&Servlet、JSP、AJAX几点来学习,以此来掌握使用HTML、CSS进行前端界面的设计、掌握对JavaScript、JQuery基本语法的使用;掌握XML的解析方式、掌握服务器的概念以及其配置、熟悉Servlet开发规范和相关概念、JSP基本原理、Session和Cookie、过滤器和监听器的使用、以及Ajax异步请求。
第三步Java高级框架
虽然说Java框架有很多,但是比较常用和主流的还是比较固定的,灵活的使用框架可以让开发者在实际开发中,减少很多重复的代码、让代码的结构更加清晰,后期维护方便。从现在的开发环境来看SpringMVC、Mybatis、Spring、Oracle、Linux&Redis&Nginx、Maven是现在普遍使用的主流框架,掌握之后可以实现从原理、应用、扩展等全方位角度熟练使用,最终可以搭建自己的平台。
第四步分布式项目实战
学习的最终目的就是上手实操,根据项目需求开发功能,那么实战就显得尤为重要了,所以最后一步是项目实战,那Git、SpringBoot、SpringCloud 等主流技术必定是需要熟练掌握的,通过学习掌握分布式调用技术任务调度以及项目相关模块之间的开发和关联,从而达到实现功能开发目的。
初学Java你需要学习JDK,JDK是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境,一些Java工具和Java的核心类库。不论什么Java应用服务器实质都是内置了某个版本的JDK。所以学好JDK是掌握Java的第一步。
学好JDK后,还有其他几种软件如果你感兴趣也可以学一学,这几种软件分别为:Eclipse:一个开放源代码的、基于Java的可扩展开发平台;EditPlus:文本编译工具,初学者可以使用EditPlus编译执行Java程序;NetBeans:开放源码的Java集成开发环境,适用于各种客户机和Web应用;IntelliJ IDEA:可以用于代码自动提示、代码分析等;MyEclipse:由Genuitec公司开发的一款商业化软件,是应用比较广泛的Java应用程序集成开发环境;SQL Server:数据库软件,做web开发会用到这个软件。
综上可以看出,学习Java需要的软件不少,如果自学一个个了解过去的话比较费时间,而报班就不同了,报班学习会有老师带着你一步步下载、安装、学习各个软件,这样不但能节省很多时间,还能让你把这些软件掌握的更好。
Java学习上手比较难,需要的软件也多种多样。
Java框架可以简化开发难度,更便于我们开发程序。所以学好Java框架还是比较重要的。Java的框架主要有:SpringMVC、Spring、Mybatis、Dubbo、Maven、RabbitMQ、Log4j、Ehcache、Redis、Shiro。不过这十个我们不需要都学会,只要学会其中四五个比较常用的就可以。
第一个,SpringMVC。Spring MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,主要是帮助我们简化日常的Web开发;第二个,Mybatis。MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架;第三个,Spring。Spring深得企业的青睐;第四个,Maven。越来越多的开发人员开始使用maven。
掌握以上四种框架,你在找工作的时候就会比较吃香。不过想把这四种框架学会也不容易。不了解Java的人可能看的都一头雾水更别说学习了。这是因为想要学习Java框架还要从Java的基础部分学起。而从基础部分自学到Java框架,花费的时间就长了。
所以小编建议大家报班学习Java,培训班的学习时长为半年左右。相比于自学,耗时少了不少。而且培训班不止能帮助你快速掌握理论知识,还有实战项目助你巩固所学。例如优就业的Java课程在Java框架部分,每个框架都对应一个小项目。这一阶段学完后还会有一个大项目让学员练手,增加学员的项目开发经验。所以报班学习更容易学会Java。
目前java语言是最稳定的,高端OA如用友泛微等,都是用java开发的,所有的语言见下面。
OA软件的开发语言很多,目前较为常见的有ASP/PHP/的技术工程师,从这个市场热度不难看出--JAVA和在扩展、升级、模块化方面的均衡优势。第三:还有一个最为简单的验证方法,就是可以问问你身边搞过研发或者懂点计算机语言技术的朋友,他们都会给你一个明确的答案。
.NET语言开发的软件产品稳定性较高,产品可以模块化是一个存在的事实优势,但.NET具有很强的优势的同时,也存在一定的劣势,如跨平台、大数据并发。同时.Net与ASP对接时,就会导致产品的安全性变低,.NET平台的安全性会随着ASP的安全漏洞安全为黑客或者不法分子利用进而破坏,这个也就一直困扰软件技术工程师的一个最大的问题--.NET语言没有办法和ASP对接的最大一个因素之一。当然.NET如果不需要与ASP语言对接,那么也不存在这样的风险。
目前国内基于.Net 的OA产品有:金和C6(高端版本)。
5. JAVA
JAVA是1995年由SUN公司引进到我们这个世界的革命性变成语言,今天我们记住SUN这一全球性大公司的原因就是因为SUN在网络安全系统方面是最为优秀的提供商,JAVA的优秀在于与传统的软件比较就是:传统的软件往往与具体的视线环境有关,一旦环境有所变化就需要对软件做一番改动,耗时费力,而JAVA编写的软件能在执行码上兼容,只要服务器提供JAVA解释器,JAVA编写的软件就能在其上运行(更多解释可以见清华大学出版社出版JAVA2实用教程(第二版),在这免费做做广告o(∩_∩)o…)。
JAVA比.Net相比,可以跨平台,具有非常强的扩展性;可以在LINUX,UNIX上部署。对于超大型的OA系统,这是至关重要的。Windwos平台想实现上千并发不太现实,这是一个绝对的事实。JAVA在扩展性和稳定性上(SUN在网络安全方面的持续支持)的优越表现导致银行、税务、公安、政府这样基于有很高安全要求的公司或者单位在选择软件才产品的时候会首先选择JAVA语言开发的软件产品。
目前国内基于JAVA的OA软件:泛微的Ecology;用友致远;35互联老板签批系统。
由于JAVA和.NET语言开发的产品稳定性和安全性比较高的众所周之的原因,所以在OA软件的应用中使用JAVA和.NET语言开发的OA软件销售的价格会比ASP和PHP开发的软件价格通常要高,但是随着JAVA和.NET的语言技术的大规模使用,一旦JAVA和.NET开发的OA软件进入中低端市场,PHP和ASP结构的OA软件也将会面临全面被取代的局面。
目前国内OA行业中还有一种“功能为王”的声音,这部分主要是依靠ASP、PHP语言技术为主导的商家,这部分商家通常会强调“功能为王”,主观上来看这其实并不错,但是如果站在长期的目标来看,功能为王并不贴切,现有的功能满足并不等于未来的功能满足,JAVA和.Net之所以成为主流,这一点是任何技术流派不能阻止的,越老越多的软件工程师在学习使用这两种计算机语言,他们当然知道选择的原因。OA选型人员应该从更加长远的角度选择OA产品。找到最适合自己的OA软件产品最为重要。
展示层选择什么一般是由控制层决定的,有两个选项:
1、控制层使用springmvc或struts2(即使用srping+srpingmvc+hibernate/mybatis或srping+struts2+hibernate/mybatis框架)
此时,展示层一般使用服务器端技术,基于jsp。
如使用struts2,展示层的标签库是struts2的标签库;如果使用的是springmvc,则展示层通常直接用jstl标签库。
但不管用的是什么标签库,原理上都是生成jsp网页(继而生成servlet,在被调用的时候生成动态的html代码发送回浏览器端)
2、后台使用springboot等技术提供接口,前端直接使用html框架。
此时,后台不再负责生成网页,前端与后端分离,前端作为独立的项目存在。
常用的前端框架包括react、vue、angular等,常用的脚手架项目包括bootstrap等。
前后端分离更快
前后分离的优势:
1.可以实现真正的前后端解耦,前端服务器使用nginx。
前端/WEB服务器放的是css,js,图片等等一系列静态资源(甚至你还可以css,js,图片等资源放到特定的文件服务器,例如阿里云的oss,并使用cdn加速),前端服务器负责控制页面引用&跳转&路由,前端页面异步调用后端的接口,后端/应用服务器使用tomcat(把tomcat想象成一个数据提供者),加快整体响应速度。这里需要使用一些前端工程化的框架比如(nodejs,react,router,react,redux,webpack)
2.发现bug,可以快速定位是谁的问题,不会出现互相踢皮球的现象。
页面逻辑,跳转错误,浏览器兼容性问题,脚本错误,页面样式等问题,全部由前端工程师来负责。
接口数据出错,数据没有提交成功,应答超时等问题,全部由后端工程师来解决。
双方互不干扰,前端与后端是相亲相爱的一家人。
3.在大并发情况下,可以同时水平扩展前后端服务器,比如淘宝的一个首页就需要2000+台前端服务器做集群来抗住日均多少亿+的日均pv。
4.减少后端服务器的并发/负载压力。
除了接口以外的其他所有http请求全部转移到前端nginx上,接口的请求调用tomcat,参考nginx反向代理tomcat。
且除了第一次页面请求外,浏览器会大量调用本地缓存。
5.即使后端服务暂时超时或者宕机了,前端页面也会正常访问,只不过数据刷不出来而已。
6.也许你也需要有微信相关的轻应用,那样你的接口完全可以共用,如果也有app相关的服务,
那么只要通过一些代码重构,也可以大量复用接口,提升效率。(多端应用)7.页面显示的东西再多也不怕,因为是异步加载。
8.nginx支持页面热部署,不用重启服务器,前端升级更无缝。
9.增加代码的维护性&易读性(前后端耦在一起的代码读起来相当费劲)。
10.提升开发效率,因为可以前后端并行开发,而不是像以前的强依赖。
11.在nginx中部署证书,外网使用https访问,并且只开放443和80端口,其他端口一律关闭(防止黑客端口扫描),内网使用http,性能和安全都有保障。
12.前端大量的组件代码得以复用,组件化,提升开发效率,抽出来!