使用 JAVA 编写并实现一个项目,需要运用JAVA、前端、数据库以及一系列的工具,同时在开发过程中为了提升编码的效率,我们需要使用一些框架,如果说你打算学习JAVA开发或者已经掌握一部分JAVA的知识,想要了解实现项目开发过程中可能使用哪些工具和知识点,这篇文章可能是有用的。
1. 开发常用工具
工具,简单理解就是我们在开发过程中会使用或者涉及到的软件,有些是编码的基础、有些是实际编码的软件、还有一些是负责运行的,如下是关于这些内容的具体介绍。
1.1 代码编辑器
Eclipse,这是一个老牌的 JAVA 代码编辑器,最大的特点就是开源免费, 而且它不仅是针对 JAVA,针对C++、PHP等其他编程开发也有对应的版本,而且即便是 针对JAVA也有针对 JavaSE、JavaEE 不同版本的开发工具,我们可以根据自己的需要进行选择,同时在下载之后也可以通过插件安装的方式对工具进行拓展,例如我们常用的 Maven、Git 这些工具就可以通过安装插件的方式在Eclipse中对工具进行扩展;
MyEclipse,这是一个和 Eclipse 非常相似的代码编辑器,但是不同的是,这款代码编辑器是付费的,同时在这款工具中自动集成了一部分我们开发中常用的工具,所以相较于 Eclipse 使用它进行开发会比较便利;
IDEA,这是这几年最为火热的一款代码编辑器,同时也是我最近应用最多的一款代码编辑器,通Eclipse 相比,它提供了更加丰富的支持,可以帮助开发人员更好的完成开发任务,但是,这款编辑器并不是免费的,仅仅提供了30天的试用期,不过最近官方提供了社区版本,虽然同专业版本相比这个版本阉割掉部分功能,不过对学习阶段来说完全足够的;
……
除了上述这些工具,记事本、Sublime 等等这些文本编辑器同样可以完成代码的编辑工作,只不过对于团队的协作、大型项目的实现采用这些方式并不现实。
1.2 辅助工具
JDK,学习 JAVA 第一天我们就会接触到这个名词,同时还会被要求熟练掌握关于它的安装和配置过程,JDK 是JAVA 开发的基础,在 JDK 中包含了JAVA开发的需要的基础环境,代码编译工具等等,而且不管你使用哪种编译工具,这个工具都是必须安装和配置的;
Maven,对于 JAVA 开发,这是个必须掌握的工具,因为它解决了我们JAVA开发中依赖管理的问题,在使用JAVA进行开发的过程中,我们不可避免的会使用到一些第三方的工具包,最初的时候,这些工具包发布之后,我们需要手动的在对应的站点下载,然后进行整合,但是随着项目开发难度的增加,团队成员协作的需要,如何管理这些依赖变成一个很大的问题,Maven采用坐标的方式,将这些依赖存储到中央仓库中,使得我们可以十分方便的对依赖进行管理,除此之外对于项目的构建、打包等方面,Maven同样提供很好的支持;
Git/SVN,或许在学习阶段,这两个工具并不常见,但是在实际工作中,它们应用十分广泛,从代码到文档几乎总会见到它们,在实际工作中不同阶段代码、文档会有相应的版本,完全依赖人工维护这些版本并不现实,这时候使用这写版本管理工具,就可以帮助我们很好的解决这些问题;
UML,严格的说这并不是一个工具,但是工作中总是会见到它们,如我视频中常用的 Visio就是 UML 工具之一,它的作用是将复杂的概念抽象化理解,让开发人员可以更好的理解那些复杂的业务逻辑,除了 Visio, DrowIO、processon等也可以完成类似的操作;
2. 项目实现知识点
2.1 数据处理
JDBC, 这是最基础的数据库操作方法,在Java 中提供了一套针对数据库操作的接口,我们称之为 JDBC,但注意,它是一套接口,也就是说并没有具体的实现,在实际开发中我们需要根据实际需要添加对应的数据库驱动包,这些数据库驱动包是由对应的数据库厂商提供的,因为JDBC的存在,我们不需要了解不同数据库内部实现的原理和彼此的差异,只需要掌握 JDBC 相关接口就可以完成数据库相关操作;
MyBatis,这是一个轻量级的ORM框架,在实际开发中使用它帮助我们减少了使用 JDBC 编码繁琐的步骤,只需要在项目中按照 Mybatis 相关要求编写对应的SQL映射文件就可以完成数据库操作了;
MyBatisPlus,这是一个国产的ORM框架,你可以将它看作是 MyBatis 的升级版本,它封装了开发中可能涉及的操作,极大减少了编写SQL映射文件的工作,让开发更加高效,所以应用十分广泛;
Hibernate,这是一个重量级的ORM框架,相比较于 Mybatis , 它完全不需要你编写 SQL 语句,在这套框架中提供了大量针对数据库操作的方法,但尽管如此,这几年使用越来越少,因为人们逐渐发现在开发中完全脱离数据库,不编写SQL语句的场景并不多见,如果完全使用 Hibernate 提供的数据库处理方案,最终的结果并不完全满足我们的需要;
JPA,准确的说 JPA 并不是一套具体的数据库处理方案,它仅仅是一种设计思想,针对这种思想Spring设计并实现了一套 Spring Data JPA 方法,有意思的是这套方法还是要基于 Hibernate 实现对数据库的处理;
······
如上这些是在开发中经常会提到的数据库相关的知识点,从近年来的情况看,采用 MyBatis、MyBatisPlus 这种轻量级的数据库解决方案受到更多人的欢迎,但是这并不代表 Hibernate 、JPA 这种数据库解决方案就被完全抛弃依旧有一部分项目会选择它们作为解决方案。
2.2 请求控制
Servlet/Filter/Listener,这是JAVA 官方提供的一套请求接受和处理的处理接口,在使用 JAVA 开发Web应用的过程中,我们可以借助它们完成相应的功能,不过依赖它们实现功能需要编写大量的代码,并不推荐;
SpringMVC,这是 Spring 框架的一个组成部分,我们可以通过注解的方式配置请求处理的路径,相比较于Servlet的方式,这种方案要方便很多,而且类似请求参数接受、请求拦截等方面都提供了很好的解决方案,在现在Java开发中广泛使用;
Struts2, 这是曾经一个很火热的MVC 框架,它同样解决了基础的 Servlet 编码复杂的问题,针对请求拦截等方面提供对应解决方案,但是采用它进行开发需要进行大量的配置,所以这种方案慢慢应用的少了;
2.3 视图渲染
JSP,这是最常见的 Java Web 程序界面渲染处理方案,也是我们初学阶段应该掌握的方案,尽管随着越来越优秀的模版引擎出现,JSP 应用比较少了,但是不可否认的是,仍旧有一部分企业还在使用,毕竟这是 Java 原生支持的,在具体实现方面相比其他模板引擎配置也比较简单;
Framework,这是一个十分常见的模板引擎,在开发中它完全可以替代 JSP 发挥的作用,同时在代码生成过程中也可以使用它完成,十分方便;
Thymeleaf,这是一个特别的模板引擎,和 JSP、Framework 相比,它不需要在页面中添加额外的标签,而是通过在标签中使用特定的属性来实现相关操作,所以使用它完成的页面,不仅可以通过程序动态渲染之后打开访问,同时也可以直接在浏览器中打开按照普通 HTMl 文件的方式进行查看;
……
除了上述视图渲染的模板引擎外,还有很多其他的处理方案,特别是前后端分离的开发模式出现之后,很大一部分项目不再需要后端渲染程序界面,而且这种前后端分离的方式必然被越来越多的人接受。
2.4 其他
Spring,开发中最常使用的技术框架,它可以很好的将Java开发中各种框架整合到一起完成开发任务,而且针对框架整合之后,Spring也提供一部分技术支持,这样使得编码开发的效率更高;
SpringBoot,这是这几年最火热的 Java 开发框架,和Spring 相比,它节省了大量的配置文件,如果使用 Spring 对开发中使用的框架进行整合,那么我们需要针对不同的框架添加对应的配置文件, SpringBoot 中则完全省略这些配置文件;
JFinal, 这是一个特别的Java 开发框架,如果你厌烦了使用 SSM、SSH 这种开发框架整合的形式,可以尝试使用这个框架实现,它内部针对请求控制、视图渲染、数据库处理等等方面提供了相应的支持,使用它进行开发不必要进行繁琐的配置;
3. 项目实现流程
如何开发一个项目?需要怎么做什么……总是会收到类似的问题,其实对于学习阶段的开发来说,项目难度并不是很复杂,实现项目案例的主要目的也是为了加深对技术点的理解,如果从这个角度看,抛开一部分业务需求,那么大家可以按照如下的流程进行实现:
首先,应该明确项目具体的业务场景,然后根据场景的需要提取相关元素,最终将这些元素串联起来就形成了一个简单的需求,脱离场景的考虑,而大多数人在动手实现之前都在考虑要使用哪些技术框架,这种思考方式导致你无法对整体实现的功能进行把握;
第二,通过简单的梳理,基本上明确了项目需要完成的内容,在这个基础上再来考虑实现这些功能需要哪些技术点,将那些暂时不熟悉或者没有办法找到解决方案的功能砍掉,这样就确定了项目的功能,接下来就可以在这个基础上搭建开发环境,编写代码;
第三,编码的过程是一个循环反复的过程,并不是一蹴而就的,这因为某个功能可能需要关联多个功能,或者是针对某个问题需要提供对应的解决方案,但是在实现的初步阶段没有办法很好的评估涉及的范围,这时候不得不在某个时间节点循环往复的进行;
第四,项目实现之后,最好多进行几次测试,查找可能存在的问题,同时结合现实生活中的场景进行思考,是否存在不合理的地方,对于这些地方应该提供哪些解决方案,这些解决方案中哪些是当下可以立即动手实现的,哪些是受本地环境限制无法实现的,通过这些思考可以帮助你进一步提升自己,而真实的工作对于开发技术方面掌握程度或许有一定的要求,但更多的还是应对业务场景的思考能力;
到这里为止,我们介绍了一部分项目实现过程中需要大家了解和掌握的内容,希望可以对大家的学习有所帮助,感谢大家的支持,后边我们会分享更多开发方面的知识!