我说的土一点,方便你理解哈
前后端不分离,你在eclipse里面的同一个工程里 一边写Java代码 一边写前端代码。写好了跑起来,localhost 8080走起。
前端代码一般是放在文件夹里的,后台程序启动,进入index页面,得到渲染好的页面。
一般来讲首页都是IndexController.java 对吧, 这里使用 @Controller注解 请求指向一个模板
如果前后端分离,意味着前端和后端是两套工程。前端代码不再是后端代码的附属。
后端代码写好了,比方说端口是8080,启动后台。 前端代码搞定了之后,把它放在server里跑起来,比方说端口4000.
localhost 4000进去,数据从8080里拿到然后渲染到页面上。
后端MVC 的结构就变成了MC 。 V这一层被扩展为独立前端,我们先不提。所有对后端的请求都最好应该是RESTful风格的。
后端就说这么多,说说前端。
我只有使用Angular的经验,和你说说Angular是怎样的。
Angular的开发我使用VScode这款IDE ,微软出品,简洁,速度快,插件多。
Angular作为真正的前端框架,将你的前端规范、分层、分模块。
Angular支持typescript和javascript 官方推荐使用typescript。
关于Angular的细节不再赘述,有兴趣可以查资料看一下,我就简单说一下分离后的前端的开发套路。
使用Angular开发前端,也是分层的,大概一个页面你需要编写:
1.HTML : 这里的HTML不是纯粹原生的,而是支持Angular双向绑定、支持UI组件模块的HTML。也是非常容易学习的。上手之后,是非常容易搞定的。
2.Component: 这是一个Class(typescript是强类型的面向对象的语言) 和Java类似, 有成员变量(绑定到页面的数据), 方法(如何取数据)
3.Service:这一层的功能是描述你的component如何从后台拿数据的。就好比Java的service层如何从DB拿数据。但是要比Java简单的多,因为数据格式是前后端已经既定好的,你把数据从后端拿回来就行了。Component负责把数据绑定到HTML上。
前端开发好后,整个前端工程是需要放在server容器里启动的。对比一下:
前后端不分离: 前后端代码被打包在一起,然后放在server容器里启动。前端代码看起来好像是后端的附属一样。
前后端分离: 前后端分别独立启动。前端工程部署在server容器里(Nginx),后端不需要放在server容器里。但是可以通过虚拟容器技术部署在K8S、docker里。甚至你可以直接使用Java -jar命令启动你的后台!
你的问题:是的,JSP完全再见。前端工程完全独立,和后台毫不相干。你的前端可以独立运行,但是后台如果不启动页面是没有任何数据的。这里体现出一点好处:前端完全不在乎后端究竟是什么程序在提供数据,完全不在乎是什么编程语言。只要规定好通信协议(HTTP Websocket等)和数据格式就行了。前端的模块化你可以理解成Java里的一个个包。彼此之间相对比较独立。说白了就是为了实现一个自我解耦。
大三了,时间比较紧迫啊!在我看来,前端的知识天花板比后台低,容易出活,容易产生成就感。因此我比较建议后端做的越简单越好。你甚至后台可以只有Controller层,配合Spring Boot JPA, 你的代码可以非常简洁。可以一起学,如果就是为了毕业设计,重点要放在前端。后端能给前端提供数据就行了,别玩得太花哨。但是从职业发展的角度,我没法说,看你兴趣,前后端你都可以选。
这个看你目标了。你现在的程度找一个实习没有问题。但是如果你想去大厂,同学,凭你的学校和技能我只能说很难。去大厂的话,前端我不太清楚,后端你至少要会JVM调优 Spring Boot ,K8S ,docker,redis,MQ, 分布式这些玩意,而且关键原理要非常清楚,再就是数据结构、算法的知识要门儿清。网上有的是面试题。
大概就是这样,希望我说明白了。。。。