JavaWeb学习路线

JavaWeb学习路线,第1张

JavaWeb核心框架

持久层框架:Hibernate、iBATIS

表现层框架:Struts1、Struts2

业务层框架:Spring

java学习路线图:

1、Hibernate:ORM

Hibernate是一个Java ORM开发框架

ORM是Object Relation Mapping的缩写,顾名思义,即对象关系映射。

ORM是一种以面向对象的方式来进行数据库 *** 作的技术。Web开发中常用的语言,都会有对应的ORM框架。而Hibernate就是Java开发中一种常用ORM框架,另一个现在流行的ORM框架是Mybatis。

为什么需要ORM框架?

简单地理解,通过Java进行数据库访问的正常流程可以分为以下几步:

准备好SQL语句

调用JDBC的API传入SQL语句,设置参数

解析JDBC返回的结果

这个过程实际上非常麻烦,比如:

在Java代码中拼接SQL非常麻烦,而且易于出错

JDBC的代码调用有很多重复性的代码

从JDBC返回的结果转换成领域模型的Java对象很繁琐

而使用ORM框架,则可以让我们用面向对象的方式来 *** 作数据库,比如通过一个简单的函数调用就完成上面整个流程,直接返回映射为Java对象的结果。这个流程中很大一部分工作其实可以交给ORM自动化地帮我们执行。对,类似MVC框架,ORM框架会帮你处理好相关的繁琐事情!

2 Struts:MVC

Struts是一个Java Web MVC开发框架。MVC早在1978年就作为Smalltalk的一种设计模式被提出来了,引用到Web应用中来时:

模型Model用于封装与业务逻辑相关的数据和数据处理方法

视图View是数据的HTML展现

控制器Controller负责响应请求,协调Model和View

Model,View和Controller的分开,是一种典型的关注点分离的思想,不仅使得代码复用性和组织性更好,使得Web应用的配置性和灵活性更好。

MVC开发模式下,Java Web开发会遇到URL路由、模板渲染、表单绑定/提交/验证、Session封装、权限验证、国际化等一系列通用的问题,而MVC框架会将这些通用问题都封装进框架中,你在应用中根据自己的场景进行简单的配置和编码即可,MVC框架就能帮你处理好一切,可以极大地简化代码。

3Spring:DI/AOP

Spring对应的关键词是DI(依赖注入)与AOP(面向切面编程),可以认为是一个以DI和AOP为核心Java Web一站式的集成(粘合)框架。

其中DI也称为IoC(控制发转)用于管理Java对象之间的依赖关系(一定要说DI是IoC实现方式的童鞋们见评论区),AOP用于解耦业务代码和公共服务代码(如日志,安全,事务等)。DI和AOP能够让代码更加简单,具有良好的松耦合特性和可测试性,极大地简化开发。理解这两者是使用Spring框架的基础。

Spring框架对Java企业应用开发中的各类通用问题都进行了良好的抽象,因此也能够把应用各个层次所涉及的特定的功能和开发框架(如接下来要说的MVC框架、ORM框架)方便得组合到一起(这也得益于依赖注入和面向切面编程带来的强大功能)。Spring是一个极其优秀的一站式的Full-Stack集成框架,因此基于Spring核心,对Java应用开发中的各类通用问题几乎都提供了针对性的开发框架,比如你耳熟能详(如果你对这个问题感兴趣的话)的Spring MVC,Spring Data。

Java曾经有另外一个类似的一站式框架粘合框架Seam,这是Hibernate的作者、脾气火爆的大神Gavin King的作品,核心是基于依赖注入来黏合JSF和EJB,不过推出时Spring已经大杀四方,Seam基本已经退出历史舞台了。记得Seam提过一个我认为很不错的概念:“双向注入”,类似现在前端框架中的双向绑定,当时来说还是很超前的。

随着H5技术的兴起,微信小程序开发也慢慢进入大众的视线。微信小程序其实就是内置于微信里的App。比如现有微信里的滴滴打车,就是小程序雏形,这样用户如果想用滴滴打车,就不需下载了,只需要关注滴滴打车的小程序就可。现在微信小程序推出,你可以先搭建好自己的应用,为微信小程序的推出做准备,抢占风口。所谓需求推动技术,很多不会编程的人也有开发微信小程序的需求,因此市场上也出现了一些微信小程序开发平台,其中我推荐咫尺网络的微信小程序开发平台即速应用,很不错,可以去使用一下~~

YAML是"YAML Ain’t a Markup Language"(YAML不是一种标记语言)的递归缩写。YAML的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。主要强度这种语音是以数据为中心,而不是以标记语言为重心,例如像xml语言就会使用大量的标记。

YAML是一个可读性高,易于理解,用来表达数据序列化的格式。它的语法和其他高级语言类似,并且可以简单表达清单(数组)、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件等。

YAML的配置文件后缀为 yml,例如Springboot项目中使用到的配置文件 applicationyml 。

标量

标量是最基础的数据类型,不可再分的值,他们一般用于表示单个的变量,有以下七种:

这样,我们就可以在程序中引入了,如下:

Spring Boot 基础就不介绍了,推荐下这个实战教程:githubcom/javastacks/…

对象

我们知道单个变量可以用键值对,使用冒号结构表示 key: value,注意冒号后面要加一个空格。可以使用缩进层级的键值对表示一个对象,如下所示:

然后在程序对这几个属性进行赋值到Person对象中,注意Person类要加get/set方法,不然属性会无法正确取到配置文件的值。使用@ConfigurationProperties注入对象,@value不能很好的解析复杂对象。

当然也可以使用 key:{key1: value1, key2: value2, }的形式,如下:

数组

可以用短横杆加空格 -开头的行组成数组的每一个元素,如下的address字段:Spring Boot 学习笔记分享给你。

也可以使用中括号进行行内显示形式,如下:

在代码中引入方式如下:

如果数组字段的成员也是一个数组,可以使用嵌套的形式,如下:

如果数组成员是一个对象,则用如下两种形式形式:

如果你想引入多行的文本块,可以使用|符号,注意在冒号:和 |符号之间要有空格。最新面试题整理好了,点击Java面试库小程序在线刷题。

它和加双引号的效果一样,双引号能转义特殊字符:

有时我们需要显示指定某些值的类型,可以使用 !(感叹号)显式指定类型。!单叹号通常是自定义类型,!!双叹号是内置类型,例如:

内置的类型如下:

引用会用到 &锚点符合和 星号符号,&用来建立锚点,<< 表示合并到当前数据, 用来引用锚点。最新面试题整理好了,点击Java面试库小程序在线刷题。

上面最终相当于如下:

还有一种文件内引用,引用已经定义好的变量,如下:

可以在同一个文件中,实现多文档分区,即多配置。在一个yml文件中,通过 — 分隔多个不同配置,根据springprofilesactive 的值来决定启用哪个配置

零基础学习java,当然是可以学会的,因为任何人学任何东西都是0基础,在学习的过程中查漏补缺,逐渐的成为熟手,高手,专家。

其实零基础学java从来都不可怕,可怕的是没有凿山开路的决心。如果你的内心真的对IT行业感兴趣,对Java语言感兴趣,那么你就多鼓励自己,或者你可以根据多种渠道来自学有关Java方面的知识,可以通过网络看有关Java方向的基础视频,但这条路走起来会比较艰辛。

因为网络上的信息是没有经过专业人士筛选和进行系统整理的。对于零基础的学员来说,浏览繁多的信息会变得非常吃力,也有接收不完整或者错误知识的风险。因为计算机讲究一个逻辑思维能力,说白了就是做事要讲究条理性,能够举一反三。

通过网上看视频的这种自学方式,这或许会走更多的弯路,但坚持下去,依然会有极少一部人到达终点。至于何时到达,取决于你花的时间,走路的速度,道路的长度等因素。

所以,我觉得对于零基础的学生想好学java来参加专业的培训还是很有必要的。

当然,我首先还是要声明,我也是做培训的,在你决定培训前,我希望你明白一个道理:培训也只是带你入门,切莫押宝在培训机构身上,想要在这个行业走的更高,更远,还需要不断的学习,提升。

培训机构主要提供良好学习环境和氛围,以及入门的基础教学,契合市场和企业的技术需求,比较适合那些自学时自制能力较差的学生,以及那些大学没好好学习,或者想要进入这一行的人。

总之,零基础是可以学java的,这些基础的东西并没有什么技术性的难度,可以说就是一些需要死记硬背的东西而已。

刚开始可能很难自己动手写代码,基本都是需要看着别人的代码然后自己照葫芦画瓢的抄写,不然就不会写,所有初学者开始都是这样,所以是很正常的,这个就需要平时多写多练,一点一点累积,知识点积累的多了,逻辑通顺了,之后自然而然的就会动手写出自己的代码了,这就是一个多写多练的问题。

以上就是关于JavaWeb学习路线全部的内容,包括:JavaWeb学习路线、微信开发用什么程序/框架/架构、面试官:什么是 YAML和 Spring Boot 有什么关系等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10643203.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存