【JakartaEE】记录一次Java后台接口项目的基础技术要点

最近工作需要参与到后台开发中,负责一个社区端的后台接口项目,是整个平台的一个大模块。所以单独使用一个项目进行开发,要求是使用Java来实现。

之前有过PHP后台开发经验,所以业务逻辑处理的思想已经具备,更多的是需要去学习了解一下Java的项目开发基础与工程结构。

首先整理一下Java Web开发的基础要点:

1. Servlet与JSP技术的了解

2.MySql连接库的使用

3.数据库连接池的使用

4.使用SpringMVC进行接口开发

5.SpringMVC中的拦截器功能

6.SpringMVC中的全局异常处理功能

7.SpringMVC中的参数校验功能(结合hibernate-validator)

了解和学习到以上基础的开发技术,就可以进行后台接口项目开发了,实践中证实使用这些基础技术已经能很好处理小型到中型之间的接口项目,下面记录一下自己的学习:

Servlet与JSP技术

Servlet与JSP都是比较原始的技术,不过作为Java后台开发的基础,是必须先了解他们的使用的,在使用他们的过程中才会体会到他们的缺点,然后使用其他框架的时候才会明白为什么会有这些功能。

Servlet其实用途就是处理客户端发起的Http请求,可以在Servlet里面获取请求参数进行逻辑处理,然后可以返回任意内容到客户端。

JSP其实本质是生成Servlet的实现类,编译时会将JSP转为Servlet,访问这个Servlet相当返回处理之后的JSP文本。

MySql连接库

MySQL基本上是项目开发的首选数据库了,免费而且能满足刚开始的业务需求,官方提供了实现JDBC标准的库。

数据库连接池

项目开发的前期就考虑到复用数据库连接,如果不使用数据库连接池,每次接口调用都会去创建一个Connection对象,这是一个耗时的操作,所以如果访问量稍大会对内存和性能造成影响。数据库连接池有很大第三方框架可以选择,我选择了c3p0这个数据库连接池。

数据库连接池框架都是实现了DataSource这个接口,通过DataSource获取到Connection对象是可以复用的,调用Connection的close()方法其实是放回去连接池,并不是销毁,具体原理是使用了代理模式。

SpringMVC接口开发

接口的开发是使用SpringMVC,最基本都是需要spring-context.jar与spring-web.jar这两个jar(其余必须不计入),通过xml配置包下面的类进行扫描,如果有Controller注解的都是控制器,控制器里面每个方法可以注解一个路径,通过此路径访问即可调用到方法,并返回数据给客户端。使用Srping进行接口开发是省了不少功夫,而且能专注于接口本身开发,不会像Servlet那样配置很多路径。

SpringMVC中的拦截器

项目中我使用拦截器的场景就是需求去处理一些公共参数的校验,例如用户签名的校验,因为登陆之后所有其他接口都会校验客户端返回来的签名是否正确,用于判定是否由用户发起。在拦截器中获取签名参数和用户ID,然后进行处理判定,如果签名正确则会继续进入接口调用的逻辑处理返回数据。

SpringMVC中的全局异常处理

使用全局异常处理其实在项目中是为了统一的返回错误码给客户端,业务逻辑处理往往是很多方法层级调用的,如果调用过程中发现数据异常,抛出异常然后由全局的异常处理器进行描述返回错误信息给客户端,这样就会减轻代码的工作量也能使得业务代码更清晰,不会有一大堆的try-catch异常和业务函数有成功失败的返回值之分。

SpringMVC中的参数校验

开发的时候发现,如果手动在接口方法中进行参数校验,往往会写一大堆的判定代码,这样影响了业务代码的清晰程度,所以使用的参数校验的功能,通过编写的DTO模型(一个类,每个属性对应客户端的请求参数),使用@Valid注解就可以进行参数校验。参数校验是一套Java的标准API,并没有任何实现类,而官方推荐使用hibernate-validator。

以上暂时是接口开发中使用到的技术要点,当然还有一些代码结构规范,例如Dao,Service等等,做技术开发一定要多了解多实践,然后了解每个技术框架的功能特点和能解决什么问题,如果有更多时间也需要了解一些技术原理,但是熟练的使用一项技术是第一把关。

猜你喜欢

转载自www.cnblogs.com/nicojerry/p/11398220.html