Springboot-聊天室Websockt
引入依赖1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId></dependency>
WebSocket 配置类注册 WebSocket 扫描类到容器中(注册该对象主要用于扫描带有@ServerEndpoint 的类,如果使用外置的 tomcat 就不需要该对象)
12345678@Configurationpublic class WebSocketStompConfig { //这个bean的注册,用于扫描带有@ServerEndpoint的注解成为websocket ,如果你使用外置的tomcat就不需要该配置文件 @Bean public ServerEndpointExporter serverEndpointExporter(){ return new ServerEndpointExpo ...
SpringBoot-定时任务
在编写 Spring Boot 应用中经常会遇到这样的场景,比如:需要定时地发送一些短信、邮件之类的操作,也可能会定时地检查和监控一些标志、参数等。
创建定时任务在 Spring Boot 中编写定时任务是非常简单的事,下面通过实例介绍如何在 Spring Boot 中创建定时任务,实现每过 5 秒输出一下当前时间。
在 Spring Boot 的主类中加入@EnableScheduling注解,启用定时任务的配置
123456789@SpringBootApplication@EnableSchedulingpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}
创建定时任务实现类
1234567891011@Componentpublic class ScheduledTasks { private static final SimpleDateFormat ...
SpringSecurity-权限控制
简介官网:https://spring.io/projects/spring-security实际应用系统中,为了安全起见,一般都必备用户认证(登录)和权限控制的功能,以识别用户是否合法,以及根据权限来控制用户是否能够执行某项操作。Spring Security 是一个安全相关的框架,能够与 Spring 项目无缝整合,本文主要是介绍 Spring Security 默认的用户认证和权限控制的使用方法和原理,但不涉及到自定义实现。Spring Security 用户认证和权限控制(自定义实现)这篇文章专门讲解用户认证和权限控制相关的自定义实现。(1)用户认证指的是:验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。通俗点说就是系统认为用户是否能登录(2)用户授权指的是验证某个用户是否有权限执行某个操作。在一个系统中,不同用户所具有的权限是不同的。比如对一个文件来说,有的用户只能进行读取,而有的用户可以进行修改。一般来说,系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限。通俗点讲就 ...
SpringBoot-全局异常处理
为什么需要全局异常处理?在日常开发中,为了不抛出异常堆栈信息给前端页面,每次编写 Controller 层代码都要尽可能的 catch 住所有 service 层、dao 层等异常,代码耦合性较高,且不美观,不利于后期维护。这时就需要进行统一的异常处理。为解决该问题,计划将 Controller 层异常信息统一封装处理,且能区分对待 Controller 层方法返回给前端的 String、Map、JSONObject、ModelAndView 等结果类型。
Springboot 默认是如何做的?Spring Boot 提供了一套默认的异常处理机制,一旦程序中出现了异常,Spring Boot 会自动识别客户端的类型(浏览器客户端或机器客户端),并根据客户端的不同,以不同的形式展示异常信息。
对于浏览器客户端而言,Spring Boot 会响应一个“ whitelabel”错误视图,以 HTML 格式呈现错误信息,如图:
对于机器客户端而言,Spring Boot 将生成 JSON 响应,来展示异常消息:
1234567{ "timestamp": "2021-07-12T ...
SpringBoot-参数校验Validator
数据校验是在平时的编码过程中常做的工作,在系统的各个层可能都要去实现一些校验逻辑,再去做业务处理。这些繁琐的校验与我们的业务代码在一块就会显得臃肿。而且这些校验通常是业务无关的。Bean Validation 2.0(JSR 380)定义了用于实体和方法验证的元数据模型和 API,Hibernate Validator 是目前最好的实现,下面整理具体使用。
依赖如果是 Spring Boot2.3 之前的项目,那么 spring-boot-starter-web 中就已经依赖 hibernate-validator 了
1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>
否则可以添加 hibernate-validator 依赖
12345<dependency> <groupId> ...
SpringBoot-自定义注解切面AOP
简介在做博客项目的时候需要记录用户操作日志,这时候需要自定义注解与切面来实现。
步骤1、依赖需要引入相应依赖,这里肯定时能和数据库关联了(简单的来说就是能够在浏览器上进行增删改查)。
12345<!-- aop的依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>
2、自定义日志注解定义一个方法级别的@Log注解,用于标注需要监控的方法:
12345678910111213import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * ...
一个基础的SpringBoot 项目该包含哪些东西?
前言建立一个全新的项目,或者把旧的庞大的项目,进行拆分成多个项目。在建立新的项目中,经常需要做一些重复的工作,比如说拷贝一下常用的工具类,通用代码等等。所以就可以做一个基础的项目方便使用,在经历新项目的时候,直接在基础项目上进行简单配置就可以开发业务代码了。
基础项目该包含哪些东西
Swagger 在线接口文档。
CodeGenerator 代码生成器。
统一返回。
通用的分页对象。
常用工具类。
全局异常拦截。
错误枚举。
自定义异常。
多环境配置文件。
Maven 多环境配置。
日志配置。
JenkinsFile。
Swagger写接口文档通常是一件比较头疼的事情,然而 swagger 就用是用来解决这个问题的。可以在线生成接口文档,并且可以在页面上进行测试。可以非常清楚的显示,请求数据已经响应数据。当然这一切都需要在代码中进行配置。「注意的点:接口文档只能在测试 / 开发环境开启,其他环境请关闭。」
常用的 Swagger 注解
@Api用于Controller
@ApiOperation用于Controller内的方法。
@ApiResponses用于标识接口返回数据的类 ...