202110-12 SpringBoot2整合Redis实现读写操作 目录1.启动RedisServer2.工程实例2.1工程目录2.2pom.xml2.3Java源文件3.测试4.问题1.启动RedisServer启动redisserver,如下图所示,端口号6379:2.工程实例2.1工程目录工程目录如下图所示:2.2pom.xml引入依赖:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency>... 继续阅读 >
202110-12 Springboot2 session设置超时时间无效的解决 问题:今天项目中遇到了一个设置时间超时的问题,按SpringBoot2的application.properties更改一直不生效。解决方案:server.*属性用于控制SpringBoot使用的嵌入式容器。SpringBoot将使用ServletWebServerFactory实例之一创建servlet容器的实例。这些类使用server.*属性来配置受控的servlet容器(tomcat,jetty等)。当应用程序作为war文件部署到Tomcat实例时,server.*属性不适用。它们不适用,因为可以使用预先配... 继续阅读 >
202109-04 SpringBoot2 参数管理实践之入参出参与校验的方式 目录一、参数管理二、接收参数三、响应参数四、参数校验1、借鉴参考2、常用校验方式五、源代码地址一、参数管理在编程系统中,为了能写出良好的代码,会根据是各种设计模式、原则、约束等去规范代码,从而提高代码的可读性、复用性、可修改,实际上个人觉得,如果写出的代码很好,即别人修改也无法破坏原作者的思路和封装,这应该是非常高水准。但是在日常开发中,碍于很多客观因素,很少有时间去不断思考和优化代码,所以只能从实... 继续阅读 >
202103-05 SpringBoot2整合JTA组件实现多数据源事务管理 一、JTA组件简介1、JTA基本概念JTA即Java-Transaction-API,JTA允许应用程序执行分布式事务处理,即在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序对JTA的支持极大地增强了数据访问能力。XA协议是数据库层面的一套分布式事务管理的规范,JTA是XA协议在Java中的实现,多个数据库或是消息厂商实现JTA接口,开发人员只需要调用SpringJTA接口即可实现JTA事务管理功能。JTA事务比JDBC事务更强大。一个JTA事务可以有多个参与... 继续阅读 >
202102-01 SpringBoot2 Jpa 批量删除功能的实现 前台处理首先前台先要获取所有的要删除数据的ID,并将ID拼接成字符串例如:2,3,4,5,然后通过GET请求返送到后台。后台处理控制器接收/***@function批量删除*@paramstu_id*@return*/@GetMapping("/del_stu")@ResponseBodypublicMsgbatch_del_stu(@RequestParam("stu_id")Stringstu_id){//接收包含stuId的字符串,并将它分割成字符串数组String[]stuList=stu_id.split(",");//将字符串数组转为List<Intger>类... 继续阅读 >
202102-01 SpringBoot2 JPA解决懒加载异常的问题 jpa解决懒加载异常在我上一遍文章上进行行修改,SpringBoot2实现JPA分页和排序分页实体类上改:@Entity@Table(name="employee")@JsonIgnoreProperties(value={"hibernateLazyInitializer","department"})publicclassEmployee{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)privateIntegerempId;privateStringlastName;privateStringemail;@Temporal(TemporalType.DATE)privateDatebirth;@Tempora... 继续阅读 >
202102-01 SpringBoot2 实现JPA分页和排序分页的案例 分页application.ymlspring:datasource:url:jdbc:mysql://127.0.0.1/jpa?useUnicode=true&characterEncoding=utf-8&useSSL=falseusername:rootpassword:123456driver-class-name:com.mysql.jdbc.Driverjpa:hibernate:#更新或者创建数据表结构ddl-auto:update#控制台显示SQLshow-sql:trueproperties:hibernate.format_sql:true实体类@Entity@Table(name="employee")publicclassEmployee{@Id@Gen... 继续阅读 >
202102-01 基于springboot2集成jpa,创建dao的案例 springboot中集成jpa需要再pom文件中添加jpa的jar包,使用springboot的话iju不用自己规定版本号了,自动管理依赖版本即可。<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency>然后我们再添加hibernate和oracle的jar包,同样自动管理版本。<dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId></dependency>... 继续阅读 >
202101-26 基于SpringBoot2的Shiro最简配置操作(两个文件) 基础环境:依赖<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.1.RELEASE</version><relativePath/><!--lookupparentfromrepository--></parent><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring-boot-starter</artifactId><version>1.4.0</version></dependency>如果不是前后端分离,要实现页面级的权限控制,则加... 继续阅读 >
202010-10 SpringBoot2使用Jetty容器操作(替换默认Tomcat) Jetty和tomcat的比较Tomcat和Jetty都是一种Servlet引擎,他们都支持标准的servlet规范和JavaEE的规范。架构比较Jetty的架构比Tomcat的更为简单Jetty的架构是基于Handler来实现的,主要的扩展功能都可以用Handler来实现,扩展简单。Tomcat的架构是基于容器设计的,进行扩展是需要了解Tomcat的整体设计结构,不易扩展。性能比较Jetty和Tomcat性能方面差异不大Jetty可以同时处理大量连接而且可以长时间保持连接,适合于web聊天应用等... 继续阅读 >
202010-10 解决SpringBoot2多线程无法注入的问题 1、情况描述使用springboot2多线程,线程类无法实现自动注入需要的bean,解决思路,通过工具类获取需要的bean如下packagecom.ps.uzkefu.apps.ctilink.handler;importcom.baomidou.mybatisplus.mapper.EntityWrapper;importcom.ps.uzkefu.apps.callcenter.entity.CallRecord;importcom.ps.uzkefu.apps.callcenter.service.CallRecordService;importcom.ps.uzkefu.apps.ctilink.init.ApplicationContextProvider;importcom.ps... 继续阅读 >
202010-09 SpringBoot2 整合Ehcache组件,轻量级缓存管理的原理解析 本文源码:GitHub·点这里||GitEE·点这里一、Ehcache缓存简介1、基础简介EhCache是一个纯Java的进程内缓存框架,具有快速、上手简单等特点,是Hibernate中默认的缓存提供方。2、Hibernate缓存Hibernate三级缓存机制简介:一级缓存:基于Session级别分配一块缓存空间,缓存访问的对象信息。Session关闭后会自动清除缓存。二级缓存:是SessionFactory对象缓存,可以被创建出的多个Session对象共享,二级缓存默认是关闭的,如果... 继续阅读 >
202010-08 SpringBoot2 整合MinIO中间件实现文件便捷管理功能 本文源码:GitHub·点这里||GitEE·点这里一、MinIO简介MinIO是为了高性能和亚马逊S3API而设计的。MinIO非常适合对安全要求严格的大型私有云环境,在各工作负载下可保证高可用。1、基础描述MinIO是一个开源的对象存储服务。适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinIO是一个非常轻量的服务,可以很简单的和其他应用的结... 继续阅读 >
202010-08 SpringBoot2 整合FreeMarker实现页面静态化示例详解 一、页面静态化1、动静态页面静态页面即静态网页,指已经装载好内容HTML页面,无需经过请求服务器数据和编译过程,直接加载到客户浏览器上显示出来。通俗的说就是生成独立的HTML页面,且不与服务器进行数据交互。优缺点描述:静态网页的内容稳定,页面加载速度极快;不与服务器交互,提升安全性;静态网页的交互性差,数据实时性很低;维度成本高,生成很多HTML页面;动态页面指跟静态网页相对的一种网页编程技术,页面的... 继续阅读 >
202010-08 Springboot2 配置AOP日志的方法步骤 Springboot2配置AOP前置增强,后置增强,异常增强,环绕增强,最终增强关于AOP切面相关具体概念不做过多阐述(概念弄懂有利于理解思想),这是配置AOP的各种增强日志,解决日志嵌套在业务代码的麻烦和不科学先来个Gitdemo项目压压惊: https://github.com/zhang-xiao-xiang/boot-aop (有的更新了一些)1pom依赖(这里使用log4j2作为日志框架,因为比log4j或者其他日志框架,它效率更高,功能更加强大)<!--引入log4j2依赖(注意... 继续阅读 >
202009-25 springboot2+mybatis多种方式实现多数据配置方法 业务系统复杂程度增加,为了解决数据库I/O瓶颈,很自然会进行拆库拆表分服务来应对。这就会出现一个系统中可能会访问多处数据库,需要配置多个数据源。第一种场景:项目服务从其它多处数据库取基础数据进行业务处理,因此各库之间不会出现重表等情况。第二种场景:为了减轻写入压力进行读写分库,读走从库,写为主库。此种表名等信息皆为一致。第三种场景:以上两种皆有。对于某些业务需要大数据量的汇总统计,希望不影响正常业务... 继续阅读 >