一、Java基础
- java基础语法
- 集合
- io
- 多线程
- 并发
- 反射
- 网络编程 注意:对于Java基础,其中集合和io是初学Java后端的时候最常用的,特别是集合。对于多线程、并发、反射和网络编程,初学后端的时候基本用不到,因为你初学的时候不会涉及到这么深的技术,当然不代表不需要会,如果你面试肯定还是要会的
这里学习Java,建议学习Java8(windows下安装Java8并配置环境变量),因为这一块的社区比较成熟,如果你学习过程中出现问题,很快都能查找到问题所在。另外现在都已经 JDK 13 了,为什么还有这么多公司使用旧版本。Java 8 已经算好的了,有的公司还在使用 7,更有甚者还在用 6,你说是不是很 6。
之所以会出现这种状况,是因为升级版本耗时费力,最重要的是有可能影响服务的稳定性,虽然说 Java 是向后兼容的,但是谁知道是不是有坑在里面。在没有重大安全漏洞或重大性能提升的情况下,大多数公司还是以稳定性为主,既然 Java 8 已经能满足业务需求了,那就用它好了。
如果你没有Java学习视频,请看文末,我会在文末写到
二、数据库
对于数据库方面,现在基本上用的还是MySQL,所以我认为还是学习MySQL。对于MySQL版本的选择,建议选择MySQL5.7版本。现在普遍使用的仍然是5.5、5.6和5.7,对于MySQL8,不建议学习,一方面社区不成熟,而且未知的坑.....还没人踩过(O(∩_∩)O) 安装教程:windows下的MySQL5.7的下载、安装以及配置环境变量 学习网站,其实 菜鸟教程 也不错,用来入门MySQL。有一个软件叫做NavicatforMySQL
(下载NavicatforMySQL),这个软件相当于MySQL的图形化界面,不用使用CMD来操作MySQL了,当然这个软件也可以使用命令行语句,初学MySQL还是不建议使用这个软件,一些MySQL语句还是多练习比较好,特别是多表复杂查询,在后来的学习过程中会经常用到。
如果你没有MySQL学习视频,请看文末,我会在文末写到
三、web入门
在如今 Java 开发中,很多开发者只知道怎么使用框架,但根本不懂 Web 的一些知识点,其实框架很多,但都基本是一个套路,所以在你学习任何框架前,请把 Web 基础打好,把 Web 基础打好了,看框架真的是如鱼得水。
关于Http
协议,这篇文章就写得很清楚:一文带你看清 HTTP 所有概念
关于JSP
,你只要了解它其实就是一个Servlet
就行了,关于它的一些标签用法,我认为可以直接忽略,因为现在互联网几乎没哪间公司还用 JSP,除了一些老旧的项目。现在都是流行前后端分离,单页应用,后端只做 API
接口的时代了,所以时间宝贵,把这些时间重点放在Servlet
规范上面吧。
关于Tomcat
,它是一个Web容器
,我们写的后端项目都要部署到Web容器
才能运行,它其实是一个遵循 Http
,通过Socket
通信与客户端进行交互的服务端程序:TOMCAT原理详解及请求过程
四、Web主流框架(SSM)
当然也有一个ssh,ssh通常使用 Struts2为控制器(controller) ,spring 为事务层(service), hibernate 负责持久层(dao) ssm通常使用 springMVC为控制器(controller) ,spring 为事务层(service), MyBatis 负责持久层(dao)
注意:以下内容,没学过的可能有点蒙...主要看总结就行了。
SSH和SSM区别对比: Struts2和SpringMVC 相同: - spring依赖注入(DI)来管理各层的组件,都是使用AOP切面编程 来管理事务,日志,权限等。
不同: - 1.Struts2 和 SpringMVC 控制视图和模型的交互机制不同 - 2.Strtus2是Action类级别,SpringMVC是方法级别,更容易实现RESTful风格。
Hibernate 和 MyBatis 两种ORM框架对比
相同: - 1.Hibernate与MyBatis都是可以通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory生成Session,最后由Session来开启事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session 的生命周期都差不多 - 2.Hibernate和MyBatis都支持JDBC和JTA事务处理
不同:
- 1.MyBatis可以进行更为细致的SQL优化,可以减少查询字段
- 2.MyBatis容易掌握,而Hibernate门槛较高
- 3.Hibernate的Dao层开发比MyBatis简单,MyBatis需要维护SQL和结果映射
- 4.Hibernate对 对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便
- 5.Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同的SQL
- 6.Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳,更新操作不能指定刷新指定记录,会清空整个表,但是也可以使用第三方缓存
- 7.Hibernate 封装性好 屏蔽了数据库差异,自动生成SQL语句。应对数据库变化能力较弱,SQL语句优化困难
- 8.MyBatis仅实现了SQL语句和对象的映射,需要针对的数据库写SQL语句,应对数据库变化能力较强,SQL语句优化比较方便
总结:SSM和SSH不同主要在MVC实现方式,以及ORM持久化方面不同(Hiibernate与Mybatis) SSM越来越轻量级配置,将注解开发发挥到极致,且ORM实现更加灵活,SQL优化更简便; SSH较注重配置开发,其中的Hiibernate对JDBC的完整封装更面向对象,对增删改查的数据维护更自动化,但SQL优化方面较弱,且入门门槛稍高。
综上初学者建议SSM,当然目前很多项目已经不是用SSM开发了,但是为什么还要学习呢,因为很多古董级别的项目可能还是SSM开发的,你需要懂啊,另外对于SSM其中对重要的是Spring,Spring全家桶的很多框都是非常流行的,而且Spring是基础。You need to know!
Spring 其核心思想就是 IOC 和 AOP:
参考博客:
- 谈谈对 Spring IOC 的理解
- Spring面向切面编程
SpringMVC 它的思想是全部请求统一用一个 Servlet 去做请求转发与控制,这个 Servlet 叫 DispatcherServlet:
参考博客:
- SpringMVC初始化过程
- SpringMVC处理请求过程
Mybatis 它可实现动态拼装 sql,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集,这个Mybatis框架相对比较简单。多注意:动态拼接Sql。
如果你没有SSM学习视频,请看文末,我会在文末写到
五、Web进阶
学完Spring你肯定有感觉,这配置也太复杂了,写一个项目,jing是xml文件。SpringBoot 弥补了 Spring 配置上的缺点,再也不用为繁杂的 xml 费劲精力了,堪称是 Java 后端开发的颠覆者,推荐书籍「Java EE 开发的颠覆者:SpringBoot实战」
SpringCloud 是一个微服务架构,能够将项目按照业务分成一个个微服务,每个微服务都可独立部署,服务之间互相协调。当一个项目越来越大时,随之而来的是越来越难以维护,此时将项目拆分成若干个微服务、单独维护、单独部署,也可以降低项目不同业务间的耦合度。推荐书籍「Spring Cloud 与 Docker 微服务架构实战」,这本书将 Docker 与微服务完美地结合在一起,堪称完美!
当你学到这一块的时候,特别是Spring Cloud的时候可能会感觉比较吃力,这一块比较复杂,但是新技术正在向此发展,也可以学学。
如果你没有Spring Boot、spring Cloud学习视频,请看文末,我会在文末写到
六、你需要掌握的其他技术
尝试用git或者github,maven,shiro对你的项目进行升级.
- git官网
- git教程
- maven
其实maven在学习SSM的时候都应该用了...比较方便 - shiro不推荐学习SSM的时候就学习shiro,因为这个时候整合比较麻烦,建议学习Springboot的时候,再学习shiro,这个时候整合Shiro比较方便快捷、易懂。
参考视频/博客: SpringBoot与Shiro整合-权限管理实战视频 SpringBoot+Shiro之简单的登陆(认证和授权)
七、开发工具
工欲善其事,必先利其器,以下是我推荐的一些开发工具:
- Intellij IDEA:Java 开发最好的 IDE,这个是公认的最好的Java编辑器,不接受反驳。
- Chrome:Chrome浏览器就不需要解释了吧,程序员必备浏览器....
- Postman:很好用的一个接口调试工具。
八、写在最后
如果你准备走Java后端而不走前端的话也建议学习一些前端基础和框架,比如基础的h5、css、js,框架的话比如:layui、vue至少自己在写一下自己的小项目的时候不至于前端一点不懂…
如果你感觉此文对你有帮助点个赞,然更多人看到。
以上总结,只代表个人看法,只是想分享一下关于web后端的学习路线,让对此感兴趣的人有一个启蒙吧,如有不足之处,欢迎大佬指出。 对于学习视频,个人搜集了很多视频,为了方便自己、方便大家查找个人写了一个网站可以直接搜索相关关键字的视频。网站地址:理木客-资源搜索。
视频资源会不定期补充,也欢迎大家贡献资源。分享是一种美德,欢迎关注公众号:理木客。
下面是资源搜索网站的演示:
首页
http://weixin.qq.com/r/xDnQyEHERBw7rQWr92zW (二维码自动识别)
Java
MySQL
SSM
Spring相关