<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[dubai_ving的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/dubai_ving</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; dubai_ving]]></copyright><item><title><![CDATA[Spring Boot 整合 Shiro 实现单用户与多用户认证授权指南]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/149442040</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/149442040</guid><author>dubai_ving</author><pubDate>Fri, 18 Jul 2025 14:29:28 +0800</pubDate><description><![CDATA[本文介绍了Apache Shiro与Spring Boot的整合实现用户认证与授权。Shiro作为轻量级Java安全框架，具有简单易用、功能全面和灵活扩展等优势。文章详细讲解了环境搭建步骤，包括Maven依赖配置和项目结构设计。核心实现部分涵盖单用户认证授权流程，涉及实体类设计、Shiro配置类编写以及过滤器链定义。通过自定义Realm和安全管理器配置，实现了基于角色的访问控制，为Web应用提供可靠的安全保障机制。]]></description><category></category></item><item><title><![CDATA[JAVA实现将富文本内容插入已有word文档并下载（dock4j+jsoup）]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/147584729</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/147584729</guid><author>dubai_ving</author><pubDate>Mon, 28 Apr 2025 14:55:03 +0800</pubDate><description><![CDATA[最近公司项目需要开发一个功能，需要将前端保存的富文本内容和目录插入到已有的word文档模版里，并提供下载功能。参考了很多方法，也踩了一些坑，最后使用dock4j+jsoup实现了；因为图片在富文本里保存的是相当路径，需要使用jsoup将富文本的标签解析出来并处理，dock4j无法直接将HTML的路径图片转换成word，所以需要将图片下载，并转换成base64编码格式。此处依赖是针对JDK8的，其实也写了一个JDK11的，提交代码的时候发现编译不通过，才想起公司运行的JDK版本是JDK1.8的。]]></description><category></category></item><item><title><![CDATA[Mybaits-plus的使用]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/134280819</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/134280819</guid><author>dubai_ving</author><pubDate>Sun, 26 Nov 2023 15:59:24 +0800</pubDate><description><![CDATA[只需简单配置，即可快速进行单表CRUD操作，从而节省大量时间。只做增强不做改变，引入它不会对现有工程产生改变，如丝般顺滑。]]></description><category></category></item><item><title><![CDATA[负载均衡（LoadBanlance）]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/133820541</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/133820541</guid><author>dubai_ving</author><pubDate>Sat, 14 Oct 2023 11:21:09 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[Java使用WebSocket(基础)]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/133608719</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/133608719</guid><author>dubai_ving</author><pubDate>Fri, 06 Oct 2023 11:52:30 +0800</pubDate><description><![CDATA[添加一个定时器来测试。]]></description><category></category></item><item><title><![CDATA[Java解析JSON数据]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/133311575</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/133311575</guid><author>dubai_ving</author><pubDate>Tue, 26 Sep 2023 15:31:36 +0800</pubDate><description><![CDATA[在做接口设计或者api接口测试时，经常会制作json格式的数据，或者json格式的数据。1  通过构建maven项目获取，在pom.xml中 的依赖中粘贴以下代码。下面是基本的使用方法。]]></description><category></category></item><item><title><![CDATA[HttpClientr入门]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/133275436</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/133275436</guid><author>dubai_ving</author><pubDate>Mon, 25 Sep 2023 18:57:53 +0800</pubDate><description><![CDATA[HttpClient是Apache Jakarta Common下的子项目，可以用来提供高效的，最新的、功能丰富的支持HTTP协议的客户端编程工具包，并且它支持HTTP协议的版本和建议。]]></description><category></category></item><item><title><![CDATA[在Java中操作Redis_Spring Data Redis使用方式——环境搭建]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/133254320</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/133254320</guid><author>dubai_ving</author><pubDate>Mon, 25 Sep 2023 16:07:27 +0800</pubDate><description><![CDATA[【代码】在Java中操作Redis_Spring Data Redis使用方式——环境搭建。]]></description><category></category></item><item><title><![CDATA[将图片上传到阿里云并回显]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/133132067</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/133132067</guid><author>dubai_ving</author><pubDate>Thu, 21 Sep 2023 13:12:00 +0800</pubDate><description><![CDATA[【代码】将图片上传到阿里云并回显。]]></description><category></category></item><item><title><![CDATA[实现公共字段自动填充 技术点：枚举、注解、AOP、反射]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/133126310</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/133126310</guid><author>dubai_ving</author><pubDate>Thu, 21 Sep 2023 13:01:02 +0800</pubDate><description><![CDATA[*** 自定义注解，用于标识某个方法需要进行功能字段自动填充处理*///数据库操作类型：Update Insert//枚举的方法@Aspect@Slf4j@Component/*** 切入点*//*** 前置通知，在通知中进行字段的赋值*/log.info("开始进行公共字段自动填充...");//获取到当前被拦截的方法上的数据库操作类型//方法签名对象//获取方法上的注解对象//获得数据库操作类型。]]></description><category></category></item><item><title><![CDATA[AOP基础&&进阶]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/133101534</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/133101534</guid><author>dubai_ving</author><pubDate>Thu, 21 Sep 2023 10:20:11 +0800</pubDate><description><![CDATA[execution（[方法的访问控制修饰符] 方法的返回值 包名.类名/接口名.方法名（参数））@Around 可以在目标方法的前后执行 通知    （应用场景：十分强大，可以做任何事情）@AfterReturning定义方法执行结果返回后通知    （应用场景：常规数据处理）@AfterThrowing定义方法执行中抛出异常后通知    （应用场景：异常处理）注意：方法的访问控制修饰符可以省略，写方法名的时候要把包名和类名全部带上。@After定义方法执行后通知    （应用场景：清理现场，释放资源）]]></description><category></category></item><item><title><![CDATA[Java返回日期格式问题]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/133036739</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/133036739</guid><author>dubai_ving</author><pubDate>Tue, 19 Sep 2023 17:16:22 +0800</pubDate><description><![CDATA[在WebMvcConfiguration配置文件中，新增一个Spring MVC的消息转换器。新建一个JacksonObjectMapper类。]]></description><category></category></item><item><title><![CDATA[MySQL学习-数据库创建-数据库增删改查语句-事务-索引]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/130985308</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/130985308</guid><author>dubai_ving</author><pubDate>Sun, 04 Jun 2023 14:39:39 +0800</pubDate><description><![CDATA[SQL语言的基础语法主要包括数据定义语言(DDL)、数据操作语言(DML)、数据查询语言(DQL)和事务控制语言(TCL)等。]]></description><category></category></item><item><title><![CDATA[Tomcat控制台乱码/进不了Tomcat]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/130562865</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/130562865</guid><author>dubai_ving</author><pubDate>Mon, 08 May 2023 17:14:09 +0800</pubDate><description><![CDATA[修改java.util.logging.ConsoleHandler.encoding = UTF-8 改成java.util.logging.ConsoleHandler.encoding = GBK。打开logging.properties文件。保存后启动startup.bat，乱码解决。打开tomcat目录下的配置文件conf。]]></description><category></category></item><item><title><![CDATA[I. Barbecue]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/125728310</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/125728310</guid><author>dubai_ving</author><pubDate>Mon, 11 Jul 2022 19:38:43 +0800</pubDate><description><![CDATA[Putata and Budada are playing a new game. In the beginning, Putata has a note with a string consists of lowercase letters on it. In each round, the player who has the note must rip off a character from the beginning or the end of the note, then pass it]]></description><category></category></item><item><title><![CDATA[P3958 奶酪（BDS）]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/125622249</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/125622249</guid><author>dubai_ving</author><pubDate>Tue, 05 Jul 2022 16:21:13 +0800</pubDate><description><![CDATA[现有一块大奶酪，它的高度为 h，它的长度和宽度我们可以认为是无限大的，奶酪中间有许多半径相同的球形空洞。我们可以在这块奶酪中建立空间坐标系，在坐标系中，奶酪的下表面为 z = 0，奶酪的上表面为 z = h。现在，奶酪的下表面有一只小老鼠 Jerry，它知道奶酪中所有空洞的球心所在的坐标。如果两个空洞相切或是相交，则 Jerry 可以从其中一个空洞跑到另一个空洞，特别地，如果一个空洞与下表面相切或是相交，Jerry 则可以从奶酪下表面跑进空洞；......]]></description><category></category></item><item><title><![CDATA[SPOJ - EPALIN - Extend to Palindrome]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/125601436</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/125601436</guid><author>dubai_ving</author><pubDate>Mon, 04 Jul 2022 15:59:38 +0800</pubDate><description><![CDATA[Your task is, given an integer N, to make a palindrome (word that reads the same when you reverse it) of length at least N (1 ]]></description><category></category></item><item><title><![CDATA[1488：新的开始(Primt模板题)]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/125565379</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/125565379</guid><author>dubai_ving</author><pubDate>Fri, 01 Jul 2022 20:53:59 +0800</pubDate><description><![CDATA[发展采矿业当然首先得有矿井，小 FF 花了上次探险获得的千分之一的财富请人在岛上挖了 n 口矿井，但他似乎忘记考虑的矿井供电问题……为了保证电力的供应，小 FF 想到了两种办法：在这一口矿井上建立一个发电站，费用为 v（发电站的输出功率可以供给任意多个矿井）。将这口矿井与另外的已经有电力供应的矿井之间建立电网，费用为 p。小 FF 希望身为「NewBe_One」计划首席工程师的你帮他想出一个保证所有矿井电力供应的最小花费。第一行一个整数 n，表示矿井总数。第 2∼n+1 行，每行一个整数，第 i 个数 vi]]></description><category></category></item><item><title><![CDATA[学奥一本通1459：friends BalticOI 2014]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/125509476</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/125509476</guid><author>dubai_ving</author><pubDate>Tue, 28 Jun 2022 21:10:24 +0800</pubDate><description><![CDATA[有三个好朋友喜欢在一起玩游戏，A 君写下一个字符串 S，B 君将其复制一遍得到 T，C 君在 T 的任意位置（包括首尾）插入一个字符得到 U。现在你得到了 U，请你找出 S。【输入】
第一行一个数 N，表示 U 的长度。 第二行一个字符串 U，保证 U 由大写字母组成。【输出】
输出一行，若 S 不存在,输出 NOT POSSIBLE。若 S 不唯一，输出 NOT UNIQUE，否则输出 S。【输入样例】
【输出样例】
【提示】
样例输入2:
样例输出2:
样例输入3:
样例输出3:
数据范围：2≤N≤20]]></description><category></category></item><item><title><![CDATA[L1-7 机工士姆斯塔迪奥]]></title><link>https://blog.youkuaiyun.com/dubai_ving/article/details/124435631</link><guid>https://blog.youkuaiyun.com/dubai_ving/article/details/124435631</guid><author>dubai_ving</author><pubDate>Tue, 26 Apr 2022 20:02:28 +0800</pubDate><description><![CDATA[L1-7 机工士姆斯塔迪奥

输出格式:
输出一个数，表示安全格子的数量。
输入样例:
5 5 3
0 2
0 4
1 3

输出样例:
12

解题思路：分别统计要释放技能的行 r 和列c（测试点 ：重复只算一次） ，我们可以用set来判断，然后结果就等于= 全部格子（N*M）- 全部行的格子（r *M）-全部列的格子（c *N）+列和行重复的格子（r *c）；
#include&lt;iostream&gt;
#include&lt;algorithm&gt;
#include&lt;string&gt]]></description><category></category></item></channel></rss>