使用Spring-Boot打造强大的Java应用程序 (使用spring框架的好处是什么)
以下是参数校验的步骤:
步骤概览
- 引入依赖包
- 使用校验注解
- 处理绑定异常
- 控制层启用校验
步骤说明
1. 引入依赖包
在pom.xml文件中引入validation组件,它提供了在SpringBoot应用程序中进行参数校验的支持。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>
validation组件主要功能包括:
- 提供参数校验注解
- 提供异常处理机制
- 提供校验规则配置
2. 使用校验注解
在实体类上添加对应校验的注解,如@NotEmpty,@NotNull,@Max等。使用实例如下所示:
public class Person { @NotEmpty private String name; @NotNull private Integer age; @Max(value = 100) private Integer score; }
可使用的注解列表如下所示:
注解 | 功能 |
---|---|
@NotEmpty | 字符串不能为空 |
@NotNull | 对象不为null |
@Max | 最大值 |
@Min | 最小值 |
@Size | 大小 |
@Pattern | 正则表达式 |
邮箱 | |
@Url | url |
@IP | ip |
3. 处理绑定异常
如果我们程序中使用了参数校验,当参数校验不通过,接口返回至前端的格式并不是我们统一定义的格式,我们需要将参数校验的异常处理并按照统一格式返回至前端,我们可以定义全局的异常处理器来统一处理。
处理示例如下所示:
@ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(MethodArgumentNotValidException.class) public ResponseEntity<Result> handleMethodArgumentNotValidException(MethodArgumentNotValidException e) { List<String> errors = e.getBindingResult().getAllErrors().stream() .map(error -> error.getDefaultMessage()) .collect(Collectors.toList()); return ResponseEntity.ok(Result.fail(errors)); } }
其中Result是一个自定义的返回结果类,可以根据实际情况进行定义。
4. 控制层启用校验
在实体类上添加校验注解,这只是定义了校验规则,并没有真正启用,在Controller方法上还需要使用@Valid或@Validated注解启用校验。
使用示例如下图所示:
@PostMapping("/save") public ResponseEntity<Result> save(@Valid Person person) { // ... }
其中@Valid注解和@Validated注解还是有点区别的,区别如下所示,我们在使用时,可根据其特性按需使用。
区别 | @Validated | @Valid |
---|---|---|
适用范围 | 方法参数、方法返回值、字段和方法级别 | 方法参数和方法返回值 |
验证顺序 | 会递归地校验参数对象的属性 | 不会递归地校验参数对象的属性 |
分组校验 | 支持分组校验 | 不支持分组校验 |
验证器选择 | 默认使用标准的BeanValidation(JSR380)规范的验证器,例如HibernateValidator | 使用Spring的验证器,例如SpringValidator |
测试结果
测试如图所示:
返回的信息按照统一的格式返回,并提示我们哪个参数校验失败。
springboot入门(从零开始快速构建JavaWeb应用)
SpringBoot是一个基于Spring框架的快速开发的框架,它能够帮助我们快速构建JavaWeb应用程序。SpringBoot通过提供一系列的开箱即用的功能模块,使得我们能够更加简单快速地搭建出一个可运行的JavaWeb应用程序。
SpringBoot的优势
SpringBoot的优势主要体现在以下几个方面:
1.快速开发:SpringBoot提供了很多的开箱即用的功能模块,使得我们能够快速构建出一个可运行的JavaWeb应用程序。
2.简化配置:SpringBoot通过自动配置的方式,使得我们不需要手动配置很多的组件,从而简化了配置的过程。
3.易于部署:SpringBoot提供了很多的打包方式,使得我们能够很方便地将应用程序部署到不同的环境中。
如何使用SpringBoot
使用SpringBoot进行JavaWeb应用程序的开发主要分为以下几个步骤:
1.创建项目:使用SpringBoot可以通过官方提供的SpringInitializr来创建项目,也可以通过在IDE中创建Maven或Gradle项目来使用SpringBoot。
2.添加依赖:在创建好的项目中,我们需要添加一些依赖,这些依赖将会提供一些开箱即用的功能模块。
3.编写代码:在添加好依赖之后,我们就可以开始编写代码了。SpringBoot提供了很多的注解和工具类,使得我们能够更加简单地编写代码。
4.运行应用程序:在编写好代码之后,我们可以使用SpringBoot提供的插件来打包应用程序,并且可以使用命令行或者IDE来启动应用程序。
示例
下面我们来通过一个简单的示例来展示如何使用SpringBoot进行JavaWeb应用程序的开发。
1.创建项目
首先我们需要创建一个SpringBoot项目。我们可以在官方提供的SpringInitializr中创建一个项目,也可以在IDE中创建一个Maven或Gradle项目并且添加SpringBoot的依赖。
2.添加依赖
在创建好的项目中,我们需要添加一些依赖。在这个示例中,我们需要添加SpringWeb和Thymeleaf的依赖。我们可以在中添加以下依赖:
spring-boot-starter-web
spring-boot-starter-thymeleaf
3.编写代码
在添加好依赖之后,我们就可以开始编写代码了。在这个示例中,我们需要编写一个简单的控制器和一个Thymeleaf模板。我们可以在src/main/java/com/example/demo目录下创建一个名为DemoController的控制器,代码如下:
@Controller
publicclassDemoController{
@GetMapping(/)
publicStringindex(Modelmodel){
(message,HelloWorld!);
returnindex;
在这个控制器中,我们使用了@GetMapping注解来指定访问路径,使用了Model来传递数据,使用了Thymeleaf的模板引擎来渲染页面。
在src/main/resources/templates目录下创建一个名为的Thymeleaf模板,代码如下:
SpringBootDemo
在这个模板中,我们使用了Thymeleaf的语法来渲染页面,使用了${message}来显示控制器中传递过来的数据。
4.运行应用程序
在编写好代码之后,我们可以使用SpringBoot提供的插件来打包应用程序,并且可以使用命令行或者IDE来启动应用程序。在这个示例中,我们可以使用Maven来打包应用程序,并且使用命令行来启动应用程序。我们可以执行以下命令来打包应用程序:
mvnpackage
执行完这个命令之后,会在target目录下生成一个名为的可执行文件。我们可以使用以下命令来启动应用程序:
java-jartarget/
启动应用程序之后,我们可以在浏览器中访问,就能够看到我们编写的页面了。
适合编程开发学习的软件开发框架?
如果编程开发程序员想要提高自己在职场中的竞争能力的话,就需要不断的学习新的技术和能力来充实自己,今天我们就给大家分享介绍了12个关于编程开发方面的框架,一起来了解一下吧。
这是另一个JavaScript框架,也在我的2023年学习清单中。它提供了一个完全的客户端解决方案。你可以使用AngularJS在客户端创建动态网页。它提供了声明性模板,依赖注入,端到端工具,以及集成的佳实践,以解决客户端的常见开发难题。
由于它是一个JavaScript库,因此你可以使用script标签将其包含在HTML页面中。它使用指令(Directives)扩展HTML属性,并使用表达式将数据绑定到HTML。
因为Google支持Angular,所以在性能和定期更新方面你可以放心。我坚信AngularJS绝对不会短命,绝对值得你投入时间和精力。
毫无疑问,JavaScript是排名一的编程语言,而对此发挥了重要作用。传统上,JavaScript被用作客户端脚本语言,与HTML一起使用来提供客户端上的动态行为。它运行在Web浏览器上,但是允许你在服务器端运行JavaScript。
是一个开源和跨平台的JavaScript运行时环境,用于执行服务器端JavaScript代码。你可以使用在服务器端创建动态网页,然后将其发送到客户端。
这意味着你可以用JavaScript开发一个从前端到后端的客户端-服务器端应用程序。
3)SpringBoot
我已经使用Spring框架许多年了,所以当我一次被介绍到SpringBoot时,我完全被它相对匮乏的配置震惊到了。使用SpringBoot编写基于Spring的Java应用程序就像使用main()方法编写核心Java应用程序一样简单。
尽管我已经尝试过SpringBoot,但我还没有掌握它,这就是为什么我需要在2023年学习SpringBoot的原因。
React是用于构建用户界面的另一个JavaScript库或框架。它就像AngularJS,但由Facebook、Instagram、以及一个由个人开发人员和企业组成的社区维护。它允许Web开发人员创建大型网页应用程序,允许随时改变而无需重新加载页面。
web开发世界被分成了Angular和React两个阵营,具体在哪个阵营取决于你选择的方面。大多数情况下,天通苑电脑培训认为这是由情况决定的。例如,如果你工作于一个基于React的项目,那么显然,你需要学习React。
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。