写在前面:关于shiro介绍以及shiro整合spring,我在另一篇文章中已详细介绍,此处不作说明,请参考spring整合shiro。点我下载源码。开发环境:1、mysql - 5.7.21 2、navicat(mysql客户端管理工具) 3、idea 2017 4、jdk9 5、tomcat 8.5 6、springboot 7、mybatis 3 8、shiro 9、maven项目开始:一、
定时器Scheduler在平时使用比较频繁(Spring定时任务:https://www.jianshu.com/p/570d6820b054 )在springboot中,配置好@Scheduled和@EnableScheduling之后,定时器就能正常执行,实现定时任务的功能。但是在这样的情况下:如果开发的服务需要水平部署实现负载均衡,那么定时任务就会同时在多个服务实例上运行,那么一方面,可能由
概述我们知道,对于处理大量数据库事务的大型软件应用程序,实现并发管理机制是必不可少的,这样我们才能同时有效地处理多个数据库调用而不会丢失任何数据。实现并发控制的方法之一是Java 持久性 API 提供的乐观锁定机制。与悲观锁定相反,乐观锁定不会对数据库应用锁定,从而降低系统的隔离级别并增加软件的吞吐能力。此外,这不会像悲观锁定那样出现死锁。它允许发生事务冲突并在提交事务时检测它们,然后我
前言时代在变化,科技在进步,程序员不努力,终将会被时代淘汰,就好比SSH(struts+spring+hibernate),SSM(Spring+SpringMVC+Mybatis)框架渐渐地被越多公司所更替掉,配置地狱嘛,受不了,如今,又了简化配置的Springboot微服务框架,当然还有分布式集群的Springcloud框架,进而大部分公司转入Springboot的怀抱,这谁又能说的定,可能以
转载 2024-08-19 12:08:56
35阅读
文章目录前言注解类redis加锁解锁操作类切面类配置类dto传输对象启动类配置文件测试类 前言分布式环境下多个不同线程需要对共享资源进行同步,那么用Java的机制就无法实现了,这个时候就必须借助分布式来解决分布式环境下共享资源的同步问题。aop 通过设置切面,当切面设置的目标类的方法被调用时,aop 框架会拦截此次调用,源码中 pointCut 类里有两个核心属性,即 ClassFilter
转载 2023-10-24 10:07:50
119阅读
缓存是最直接有效提升系统性能的手段之一。个人认为用好用对缓存是优秀程序员的必备基本素质。本文结合实际开发经验,从简单概念原理和代码入手,一步一步搭建一个简单的二级缓存系统。一、通用缓存接口1、缓存基础算法FIFO(First In First Out),先进先出,和OS里的FIFO思路相同,如果一个数据最先进入缓存中,当缓存满的时候,应当把最先进入缓存的数据给移除掉。LFU(Least Frequ
一、前言上一篇博客记录了仅仅加入spring security依赖,Springboot做的一些自动化配置。这些自动化配置已经可以完成一个完整的登录流程。但是系统不可能只有这一个用户,密码也不能每次启动程序都会改变。所以这篇博客记录一下,在内存中配置用户,以及自定义一些其他的操作。二、开整2.1、在配置文件中添加自定义用户在内存中配置用户的最简单方法就是在配置文件中添加用户spring: se
转载 2024-02-18 09:45:32
28阅读
SpringBoot是为了简化Spring应用的创建、运行、调试、部署等一系列问题而诞生的产物,自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖就可以轻易的搭建出一个WEB工程在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单
原创 2019-07-04 09:54:58
4757阅读
一、问题现象 前端小姐姐对我说过,需要后台限制重复表单提交。前端小姐姐把form表单数据提交到后台,但是
原创 2022-07-21 21:23:30
89阅读
Application.properties配置文件 1、创建Spring Boot的Web项目PropertiesDemo
智能门户系统是部署在企业微信上的企业级应用。智能门户系统是一种集成了多种功能模块的企业信息管理平台,可以提供员工信息、内部新闻、文件共享等服务。企业微信是一款专为企业打造的即时通讯工具,可以方便地进行企业内部沟通、协作和信息分享。智能门户与企业微信的系统级融合可以完善企业全平台业务信息管理能力。为了提高企业内部的工作效率和信息流动性,将智能门户系统与企业微信进行数据同步是一种常见的需求。通过将两者
单机版的重复提交解决方案,在如今这个分布式与集群横行的世道中,那怎么够用呢,所以本章重点来了....重复提交(分布式)单机版中我们用的是Guava Cache,但是这玩意存在集群的时候就凉了,所以我们还是要借助类似Redis、ZooKeeper 之类的中间件实现分布式。本章目标利用 自定义注解、Spring Aop、Redis Cache 实现分布式,你想表单表单,想
转载 2024-03-20 14:57:13
33阅读
代码千万行,安全第一行;密码明文存,同事两行泪 --摘自 技术最前线一遍文章标题 最近又发生了勒索病毒。中勒索病毒原因:受攻击的账户密码都是以明文形式存储的。下面这位hacker是不是很帅。最近刚弄完一个项目,结果我的数据库配置文件是明文的,被leader看到了 就被骂了一顿。说如果hacker直接拉去了你的配置文件 根本不用破解直接把你数据库数据就给拉走了。 我翻了好几个项目貌似都没有加密 直
# Java中的并发增加线程安全性 在现代软件开发中,尤其是在涉及多线程操作的场景中,确保线程安全是一个不容忽视的重要主题。在Java中,**并发**是实现线程安全机制的常用方式。本文将详细介绍**Java中的并发**,并通过代码示例展示其应用。 ## 并发的概念 **并发**是在多线程环境中保护共享资源的一种机制。当一个线程获得了,其他线程就不能访问被保护的代码或数据,从而
原创 2024-09-17 07:34:15
40阅读
NFS,Network File Syttem,网络文件系统。它允许网络上运行不同操作系统的主机通过网络连接到运行NFS服务的主机上,以实现数据共享。NFS的配置非常简单,经过简单的设置既能快速使用NFS。使用NFS,首先在服务端运行NFS服务,并设置共享指定的目录,客户端即可将该目录挂载到本地,以使用这些共享的目录。1、NFS服务端配置要运行NFS服务端依赖以下软件包: rpcbind nfs
Synchronized使用场景Synchronized是一个同步关键字,在某些多线程场景下,如果不进行同步会导致数据不安全,而Synchronized关键字就是用于代码同步。什么情况下会数据不安全呢,要满足两个条件:一是数据共享(临界资源),二是多线程同时访问并改变该数据。Synchronized的3种使用形式: Synchronized修饰普通同步方法:对象当前实例对象; Synchron
转载 10月前
21阅读
  生成sqlSessionFactory时装配dao层操作 使用@Mapper实现springboot去xml配置化,默认自动关闭连接 高级使用,可选择衍生工具 tk.mybatis 使用Mapper注解时: @Configuration @MapperScan(basePackages = "cn.com.xmh.oneIbatiaMapper.mapper", sq
转载 2023-10-08 09:32:40
57阅读
SpringBoot 是为了简化 Spring 应用的创建、运行、调试、部署等一系列问题而诞生的产物,自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖就可以轻易的搭建出一个 WEB 工程在 一起来学SpringBoot | 第二十二篇:轻松搞定重复提交(一) 一文中介绍了单机版的重复提交解决方案,在如今这个分布式与集群横行的世道中,那怎么够用呢,所
思路所有响应获取的线程都先尝试往redis中创建一个缓存数据,所有线程的key必须相同。使用的是redis的setnx命令。就只有一个线程能够创建成功,创建成功的线程就成功获取。没有获取的线程就循环去获取。获取的线程在执行完业务后释放,也就是删除该key,然后后面的线程重新获取时就会有线程能够获取成功。可能出现的问题:假如线程在创建以后,出现了异常,走不到释放的那一步,那么这个
转载 2024-03-06 21:02:59
49阅读
第一步:引入shedlock包 maven中pom文件添加如下配置:<dependency> <groupId>net.javacrumbs.shedlock</groupId> <artifactId>shedlock-spring</artifactId> <version>4.42.1</vers
  • 1
  • 2
  • 3
  • 4
  • 5