自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 收藏
  • 关注

原创 接口安全防护

本文介绍了三种接口安全防护方案:防刷、防篡改和时效性验证。防刷方案通过Redis记录IP访问次数,1分钟内限制10次访问;防篡改采用签名机制,前端对参数排序拼接后MD5加密,后端验证签名一致性;时效性验证在签名机制基础上加入时间戳校验。三种方案均通过拦截器实现,配置简单高效,能有效防止接口滥用和参数篡改,保障系统安全性。

2022-12-26 19:16:34 806

原创 swagger2

本文介绍了如何在SpringBoot项目中集成Swagger2来自动生成API文档。主要内容包括:1)添加Swagger2和Swagger UI依赖;2)配置SwaggerConfig类,设置文档基本信息、扫描路径和全局参数;3)通过注解如@Api、@ApiOperation等为接口添加中文描述;4)常用注解的使用场景说明,包括参数描述(@ApiImplicitParam)、模型描述(@ApiModel)和响应描述(@ApiResponse);5)访问swagger-ui.html查看接口文档并进行测试。S

2022-12-26 16:54:00 351

原创 Spring自定义事件发布与监听

本文介绍了Spring框架中自定义事件的实现方法。首先创建自定义事件类MyEvent继承ApplicationEvent;然后实现自定义监听器MyEventListener,通过@Component注解注册为组件并重写onApplicationEvent方法处理事件;最后通过注入ApplicationEventPublisher发布自定义事件。当调用publishEvent()方法时,监听器会自动捕获并处理事件。整个流程实现了Spring应用中的事件发布与监听机制。

2022-12-25 21:42:49 94

原创 elasticsearch

Elasticsearch是一个分布式搜索和分析引擎,位于Elastic Stack核心。它支持近乎实时地索引和搜索各种结构化或非结构化数据,提供快速检索和分析功能。Elasticsearch通常与Logstash、Beats和Kibana配合使用,实现数据收集、处理和可视化。其核心特性包括分布式架构、RESTful API接口、多语言支持和PB级数据处理能力。应用场景涵盖多条件搜索、站内搜索和地理位置搜索等。安装过程包括部署Elasticsearch、可视化插件head和客户端工具kibana,并配置中文

2022-12-25 16:45:17 968

原创 自定义参数解析器

SpringMVC支持通过自定义参数解析器简化重复代码。开发者可创建实现HandlerMethodArgumentResolver接口的解析器,通过supportsParameter判断是否需要解析,在resolveArgument中实现解析逻辑。配合自定义注解标记需要解析的参数,并在WebConfig中注册解析器。这样在控制器方法中只需使用注解标记参数,即可自动获取解析后的对象,避免重复编写解析代码。这种机制特别适用于需要频繁获取登录用户等场景,能显著提升代码复用性和可维护性。

2022-12-15 03:59:09 88

原创 Mongo DB简单入门使用

1: MongoDB 是一个非关系型数据库2: 应用场景: 游戏 直播 日志记录3: MongoDB是半内存数据库(通过一段时间将内存中的数据同步到硬盘上), 这个时间大概60秒,所以可能会有60s间隔数据数据丢失(这个时间可以配置)

2022-12-15 01:02:30 230

原创 Spring Boot 定时器

本文介绍了如何使用Spring的定时任务功能。主要内容包括: 创建定时器类的方法:使用@Component注解标记类,并在方法上添加@Scheduled(cron="表达式")注解 启用定时任务:在配置类上添加@EnableScheduling注解 详细解释了cron表达式的结构和各字段含义,包括秒、分、小时等域 列举了常见特殊字符的含义和使用场景,如*、?、-、/等 提供了多个常用的cron表达式示例 注意事项:不适合分布式集群项目,建议将定时任务单独放在一个模块中 还推荐了一个在线c

2022-12-13 16:43:45 86

原创 跨域访问问题

本文介绍了两种解决跨域问题的方案:1)通过配置WebMvcConfigurer实现跨域访问,包括设置允许的请求路径、来源、方法、头部信息等,并处理拦截器中的OPTIONS预请求问题;2)通过自定义过滤器CrossFilter实现跨域访问,设置响应头允许跨域请求的相关参数,并在配置类中注册该过滤器。两种方案都能有效解决浏览器同源策略限制导致的跨域问题。

2022-12-09 05:02:41 53

原创 Springboot集成activiti7

本文介绍了如何在Spring Boot项目中集成Activiti 7工作流引擎。主要内容包括:1) 在pom.xml中添加Activiti依赖并排除MyBatis冲突;2) 配置application.yml中的Activiti相关属性;3) 排除Spring Security自动装配;4) 设计流程定义表结构;5) 提供流程文件上传接口;6) 实现流程部署功能。文章详细说明了各个配置项的作用和实现方法,为Spring Boot项目集成Activiti 7提供了完整的技术方案。

2022-12-06 02:00:39 866

原创 @JsonFormat和@DateTimeFormat注解

@JsonFormat注解是一个时间格式化注解,比如我们存储在mysql中的数据是date类型的,当我们读取出来封装在实体类中的时候,就会变成英文时间格式,而不是yyyy-MM-dd HH:mm:ss这样的中文时间,因此我们需要用到JsonFormat注解来格式化我们的时间。使用@JsonFormat注解需要引入maven依赖如下: 引入以上的pmaven依赖之后,就可以在实体类属性上面使用@JsonFormat注解了,要注意的是,它只会在声明返回类型为json时,比如使用@ResponseBody返回js

2022-12-05 19:22:43 920

原创 Activiti7内置表结构

Activiti7中25张表的含义描述:需要通过api来手动操作(Model)**描述:**通常用于存储流程的bpmn文件和图片文件描述:除了activiti7自带的系统属性,还能自定义添加,然后,通过managementService.getProperties();获取描述:存储通过activiti发起的定时作业的信息。描述:事件日志表,记录activiti引擎级别的事件日志,默认关闭**描述:**记录流程流转过的所有节点信息这里记录流程流转过的所有节点,与HI_TASKINST不同的是,taskins

2022-12-04 19:26:03 745 2

原创 Activiti7工作流(二)

查询流程相关信息,包含流程定义,流程部署,流程定义版本 流程资源下载 之前我们的流程资源文件已经上传到数据库了,如果其他用户想要查看这些资源文件,可以从数据库中把资源文件下载到本地。 流程定义删除 根据部署Id删除对应的流程定义 如果该流程定义下没有正在运行的流程,则可以用普通删除。如果该流程定义下存在已经运行的流程,使用普通删除报错,可用级联删除方法将流程及相关记录全部删除。项目开发中级联删除操作一般只开放给超级管理员使用用户或程序按照流程定义内容发起一个流程,这就是一个流程实例。流程定义和流程实例的

2022-12-04 18:12:26 799

原创 Activiti7工作流(一)

工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。案例: 出差费用报销目标: 公司把出差费用转账到自己的账户中.参与人: 申请人、部门主管、总经理、财务 一个软件系统中具有工作流的功能,我们把它称为工作流系统。消费品行业,制造业,电信服务业,银证险等金融服务业,物流服务业,物业服务业,物业管理,大中型进出口贸易公司,政府事业机构,研究院所及教育

2022-12-01 18:02:22 796

原创 Boostrap-Table插件

Boostrap-Table插件能使我们的分页查询数据不必重定向页面,因为重定向需要重新加载整个页面的资源对于一些复杂的页面响应时间是很长的,我们如果只关注表格中的数据改动如果项目中是使用Bootstrap Table来做数据展示的,所以我们要了解数据如何展示,我们需要先来了解Bootstrap Table是如何使用的.

2022-11-30 17:02:38 379

原创 POI的使用(Excel文档解析)

POI简介(Apache POI),Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

2022-11-30 03:10:11 969

原创 数据字典功能

我们在项目中会有很多的下拉框,这些下拉框都有一个特点,就是键值对的存在。

2022-11-29 22:24:20 206

原创 springboot配置静态资源映射路径

默认的静态资源目录/static/public/resources动态资源目录:/templates。

2022-11-29 18:18:52 285

原创 Shiro框架

自定义 Realm 在实际开发中使用非常多,通常我们使用的账户信息来自程序或者数据库中, 而不是前面使用到的 ini 文件的配置存储。在继承体系中的每个类所能够实现的功能不一样,在后面的开发中,我们通常需要使用到缓存、认证、授权所有的功能,所以选择继承 AuthorizingRealm。

2022-11-29 15:13:49 403

原创 IDEA自动导包和自动删包设置

自动添加导包:这个就是我们的自动导包功能了 注意:如果有多个包的话还是需要我们进行手动导包的。自动优化导包:这个主要帮我们自动删除一些无用的包。

2022-11-27 00:27:33 122

原创 统一异常处理

在开发中还可以根据自己业务的异常情况来自定义业务逻辑异常类,一般继承于java.lang.RuntimeException} }比如虽然登录出错,也响应 JSON 数据,但其需要提示的消息更详细,所以通过自定义异常,再利用 Spring MVC 全局处理异常方式,针对这个异常进行专门处理。

2022-11-26 19:23:43 57

原创 Bootstrap-validator前端验证插件

是一个表单验证插件,在做 Web 项目的时候,表单数据验证是再常见不过的需求了,友好的错误提示能增加用户体验,提高程序稳定性。

2022-11-26 19:13:25 416

原创 RequestContextHolder 工具类

它是 Spring MVC 提供的工具类,提供了一个静态方法,可以在代码任意的地方获取 request 对象,response 对象,sessison 对象,不需要每次自己把对象传进去,但是这个工具类获取 session 的代码很长,我们又需要在很多地方使用,所以我们可以再封装一个工具类用于获取 session 的方法,提供给其他方法调用。

2022-11-26 17:14:13 129

原创 前后端分页插件

是一个 MyBatis 的分页插件,支持多种数据库,可查看官网,负责将已经写好的 SQL 语句,进行SQL分页加工。无需你自己去封装以及关心 SQL 分页等问题,支持多种分页方式,如从第0或第一页开始, 使用很方便。

2022-11-25 19:57:07 638

原创 Bootstrap与AdminLTE

Bootstrap 是美国 Twitter 公司的设计师 Mark Otto 和 Jacob Thornton 合作基于 HTML、CSS、JavaScript 开发的简洁、直观、强悍的前端开发框架,使得 Web 开发更加快捷。Bootstrap 提供了优雅的 HTML 和 CSS 规范,它即是由动态 CSS 语言 Less 写成。(重点是响应式(随屏幕大小变化),能适应各种各种设备)

2022-11-25 14:04:06 281

原创 访问权限控制

在实际的组织中,为了完成组织的业务工作,需要在组织内部设置不同的职位,职位既表示一种业务分工,又表示一种责任与权利。根据业务分工的需要,职位被划分给不同群体,各个群体的人根据其工作任务的需要被赋予不同的职责和权利,每个人有权了解与使用与自己任务相关的信息与资源,对于那些不应该被知道的信息则应该限制他们访问。这就产生了访问控制的需求。限制主体对资源的访问,限制用户可以访问而且只能访问自己被授权的资源,从而保障数据资源在合法范围内得以有效使用和管理。权限管理几乎出现在任何系统里面,只要有用户和密码的系统。

2022-11-25 11:17:56 474

原创 ssm项目改造spring boot项目

Spring Boot 默认已经开启日志,其默认的日志格式为:时间 日志级别 线程ID 线程名称 日志类 日志说明。Spring Boot 的日志分为:系统日志和应用日志。日志级别,级别越高,输出的内容越少,如果设置的级别为 info,则 debug 以及 trace 级别的都无法显示,日志级别由低到高 trace < debug < info < warn < error。Spring Boot 默认选择 Logback 作为日志框架,也能选择其他日志框架,但是没有必要。

2022-11-23 21:57:17 1598

原创 Spring Boot

..并在spring配置文件中读取这个文件

2022-11-17 21:19:58 519

原创 Spring容器-Java代码配置方式

替代之前的 XML 文件,类中定义方法,返回 bean 对象交给 Spring 管理。

2022-10-25 17:02:35 290

原创 模板引擎-Thymeleaf

摘要:Thymeleaf是一款现代Java模板引擎,与Spring Boot完美整合,实现动静结合的Web开发。相比JSP,它具有代码分离清晰、渲染效率高、内存占用少等优势。通过th:*指令实现HTML模板与数据的动态绑定,支持内置对象和工具方法处理日期、字符串等。其字面值语法简化了字符串拼接,支持算术运算和布尔操作。配置简单,只需添加依赖并设置视图解析器即可快速开发高效、可维护的Web应用。

2022-10-25 00:20:17 428 1

原创 AJAX的使用

浏览器中显示一个页面后,这个页面以后一直不改变,所有的操作请求都由这个网页中的 Javascript 代码发出,所有的结果都由 Javascript 代码接受并增加到这个页面上,浏览器窗口中显示的网页始终都是初始的那个网页。异步是指:发送方发出数据后,不等接收方发回响应,就可以接着发送下个数据包的通讯方式。给点击更新的按钮绑定一个点击事件,响应行数中调用这个函数方法,传入具有下列属性的 js 对象(里面设计没有对应属性使用的是默认值)上面方式为js原生代码方式,使用JQuery能更方便的发送异步请求。

2022-10-24 21:22:45 272

原创 JSON的使用

JSON(JavaScript Object Notation, JS 对象简谱)是一种轻量级的。它基于 ECMAScript (欧洲计算机协会制定的 JS 规范)的一个子集,采用完全的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写(格式化),同时也易于机器解析和生成,并。

2022-10-19 16:14:09 286

原创 jQuery

jQuery 使用户能更方便地处理 HTML(标准通用标记语言下的一个应用)、events、实现动画效果,并且方便地为网站提供 AJAX 交互。 jQuery 的语法设计可以使开发者更加便捷,例如操作文档对象、选择 DOM 元素、制作动画效果、事件处理、使用 AJAX 以及其他功能。jQuery1.x.js:jQuery 源文件;学习 jQuery 或者 debug 的时候使用。 jQuery1.x.min.js:jQuery 压缩之后的文件;正常项目中使用。把 jQuery-1.11 文件夹拷贝到项目的

2022-10-10 19:06:28 276

原创 SSM 综合案例

完成部门基本的 CRUD 和分页查询,完成员工基本的 CRUD、分页查询和过滤查询(根据姓名和邮箱模糊查询,根据部门查询)。使用 Spring MVC + Spring(AOP TX) + MyBatis,数据库选用 MySQL,视图选用 JSP。作用:在框架上基础上开发,发挥各个框架在各层的好处,提高开发效率。本质:先用 Spring 集成 MyBatis再加入 Spring MVC一个 Maven 插件,根据数据的表生成实体类和 Mapper 接口和 Mapper XML。参考文档,在 ssm 库新建

2022-09-30 11:23:49 307

原创 Spring MVC

比如请求路径 /req4?注意传递参数名与封装对象的属性名一致,就需要编写如下处理方法。//用来封装的类 public class User {// 省略 setter getter toString }底层 Spring MVC 根据请求地址对应调用处理方法,调用方法时发现要传递 User 类型的实参,Spring MVC 会反射创建 User 对象,之后通过请求参数名找对应的属性,给对象的属性设置对应的参数值。定义一个类实现 HandlerInterceptor。

2022-09-30 04:49:02 354

原创 Spring AOP 事务与集成MyBatis

在开发中,为了给业务方法中增加日志记录,权限检查,事务控制等功能,此时我们需要去修改业务方法代码,考虑到代码的重用性,我们可以考虑使用 OOP 的继承或组合关系来消除重复,但是无论怎么样,我们都会在业务方法中纵向地增加这些功能方法的调用代码。此时,既不遵循开闭原则,也会为后期系统的维护带来很大的麻烦。(即不管怎样都得修改到原来的代码) 为了解决该问题,OOP 思想是不行了,得使用 AOP 思想。AOP(Aspect Oriented Programming),是面向切面编程的技术,把一个个的横切关注点放到

2022-09-29 02:22:44 152

原创 Spring IOC与DI注解及代理模式

Java 动态代理是使用 java.lang.reflect 包中的 Proxy 类与 InvocationHandler 接口这两个来完成的。要使用 JDK 动态代理,真实类必须实现接口,并只能代理这个接口中的方法。JDK 动态代理将会拦截所有 pubic 的方法(因为只能调用接口中定义的方法),这样即使在接口中增加了新的方法,不用修改代码也会被拦截。动态代理的最小单位是类(类中某些方法都会被处理),如果只想拦截一部分方法,可以在 invoke 方法中对要执行的方法名进行判断。

2022-09-28 04:36:48 301

原创 Spring框架

Spring 是一个轻量级的IoC / DI和 AOP 容器的开源框架,致力于构建轻量级的 JavaEE 应用,简化应用开发,本身涵盖了传统应用开发,还拓展到移动端,大数据等领域。什么是容器(Container):从程序设计角度看就是装对象的的对象(map),因为存在放入、拿出等操作,所以容器还要管理对象的生命周期,如 Tomcat 就是 Servlet 的容器。将原本在程序中手动创建对象的控制权,交由 IoC 容器来管理,在 Spring 中被管理的对象称之为 bean。

2022-09-27 03:02:18 102

原创 MyBatis核心

新建 Maven 项目和设置编译版本及添加依赖 配置文件 在 resources 目录下添加下面这些配置文件。 mybatis-config.xml log4j.properties 编写实体类 编写 UserMapper.xml 在 resources 目录下新建 cn/xxx/mapper/UserMapper.xml,具体内容如下: 编写 MyBatisUtil 编写单元测试类 之前代码问题 映射文件xml的命名空间id 使用的是 String 类型(第一个参数),一旦编写错误,只有等

2022-09-20 03:35:47 285

原创 Maven

Maven 翻译为“知识的积累”,“专家”,“行家”,是一个跨平台的项目管理工具;Maven 主要用作基于 Java 平台的项目(Maven 本身也是 Java 编写的)的构建、依赖包管理和项目信息管理;Maven 能提供一种项目的配置(pom.xml),配置好的项目,只需要运行一条简单的命令,就能完成重复的,繁琐的构建动作;Maven 能提供一种项目的依赖配置,配置好的项目,Maven 能自动的从 Maven 的中央仓库中帮我们下载并管理项目依赖的 jar 包。

2022-09-20 02:23:07 115

原创 过滤器与监听器

用户注销则为退出登录状态,将当前登录的用户信息销毁。而我们之前做的用户登录功能,是把当前登录用户信息是存在 session 中的,所以只需要清除 session 中的用户信息即可实现用户注销。

2022-09-19 21:38:11 203

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除