<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[weixin_48508049的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/weixin_48508049</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; weixin_48508049]]></copyright><item><title><![CDATA[读取xml]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/117547286</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/117547286</guid><author>weixin_48508049</author><pubDate>Fri, 04 Jun 2021 08:44:34 +0800</pubDate><description><![CDATA[读取xml两种方式
一.
public R getTaskLists(ServletRequest request) {
        String number = getTaskLists(request);
        return R.ok(number);
    }
public String getTaskLists(ServletRequest request) {
        String a= null;
        String b = null;
        Str]]></description><category></category></item><item><title><![CDATA[mybatis使用in的使用方法]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/117256433</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/117256433</guid><author>weixin_48508049</author><pubDate>Tue, 25 May 2021 15:04:25 +0800</pubDate><description><![CDATA[很多人都想着拼接字符串用比如in（‘1’，‘2’）这样的方式去获取数据，其实没有这个必要，mybatis有foreach方法来自动用这样的数据
如下
比如传入的是roleIdList
//上面省略
xxxxx
WHERE ROLE_ID in
        &lt;foreach collection="roleIdList" item="roleId" index="index" open="(" separator="," close=")"&gt;
            #{roleId}
   ]]></description><category></category></item><item><title><![CDATA[利用反射获取传递过来的object对象的内容]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/117256164</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/117256164</guid><author>weixin_48508049</author><pubDate>Tue, 25 May 2021 14:58:39 +0800</pubDate><description><![CDATA[如果传递过来的数据是list的object对象，那可以用如下方法获取
Object obj = userServer.getUserRoleById(sysUser.getId()).getData();
        List&lt;String&gt; list = new ArrayList&lt;&gt;();
        if (obj instanceof ArrayList&lt;?&gt;) {
            for (Object o : (List&lt;?&gt;) o]]></description><category></category></item><item><title><![CDATA[Redis]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/116747006</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/116747006</guid><author>weixin_48508049</author><pubDate>Thu, 13 May 2021 14:48:45 +0800</pubDate><description><![CDATA[Redis
会了后反过来写博客我就好懒= =||，这个redis拖了很久，总是懒得去写它，今天刚好有空，写一下
springboot自带的redis只要通过导入maven，配置cache使用redis，然后就可以通过注解@Cacheable来使用redis，不过听同事说，这种的会因单个修改导致整个redis重新去读数据库（没验证，不知道是不是真的），那就用aop自己写一个呗，自定义注解，读取的话在进入方法前用jedis去操作redis读数据，修改的话，在方法结束后去操作redis放入缓存数据
今天主要不写这]]></description><category></category></item><item><title><![CDATA[java实现UDP传输——第二节持续接收信息]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/116206581</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/116206581</guid><author>weixin_48508049</author><pubDate>Tue, 27 Apr 2021 17:55:48 +0800</pubDate><description><![CDATA[java实现UDP传输——第二节持续接收信息
第一节里写了单向发送udp信息，只不过是单次的，这一节将写个demo来讲解如何一方持续接收信息，一方持续发送消息，第三节则是来实现如何两个人可以持续互相发送消息，用多线程实现
代码如下
public class udpSend1 {
    public static void main(String[] args) throws IOException {
        DatagramSocket socket = new DatagramSocket()]]></description><category></category></item><item><title><![CDATA[java实现UDP传输——第一节]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/116165686</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/116165686</guid><author>weixin_48508049</author><pubDate>Mon, 26 Apr 2021 18:09:22 +0800</pubDate><description><![CDATA[java实现UDP传输——第一节
这一章简单写下发送端接收端发送消息，互相传与持续在线交互放到后面几节来展示
这边就用本机localhost来写，方便一些，像是学校的机房可以通过开放防火墙的端口进行传输，不过不太建议，容易感染病毒
附上代码
public class udpTest1 {
    public static void main(String[] args) throws IOException {
        DatagramSocket socket = new DatagramSoc]]></description><category></category></item><item><title><![CDATA[joint绘制流程图]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/115715950</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/115715950</guid><author>weixin_48508049</author><pubDate>Thu, 15 Apr 2021 09:36:30 +0800</pubDate><description><![CDATA[joint绘制流程图
首先给个效果图，以防你们点进来发现不是自己想要的东西

这里调试的时候是按手机大小写的，所以看起来有点小，问题不大。
我在这用的是joint工具进行绘制。
第一步当然是安装这个工具，毋庸置疑
npm install jointjs --save

安装完后，别的资料有说要用在main.js里加入
window.$ = require('jquery');
window.joint = require('jointjs');

搞一下全局变量，我没用这个，所以忽略这一步，直接在页面里引用]]></description><category></category></item><item><title><![CDATA[具名slot插槽使用]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/115697540</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/115697540</guid><author>weixin_48508049</author><pubDate>Wed, 14 Apr 2021 14:17:17 +0800</pubDate><description><![CDATA[具名slot插槽使用
首先搞个页面放插槽用
&lt;template&gt;
  &lt;div&gt;
    &lt;div&gt;
      &lt;h2&gt;这是上部&lt;/h2&gt;
      //放两个插槽，名字分别为a1跟a2
      &lt;slot name="a1"&gt;&lt;/slot&gt;
      &lt;slot name="a2"&gt;&lt;/slot&gt;
      &lt;h2&gt;这是下部&lt;/h2&gt;
    &lt;/div&g]]></description><category></category></item><item><title><![CDATA[Vuex的运用]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/115689248</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/115689248</guid><author>weixin_48508049</author><pubDate>Wed, 14 Apr 2021 08:26:24 +0800</pubDate><description><![CDATA[Vuex在element-ui中的运用
简单实现效果如下


勾选的是已完成的数据，去掉勾选则放到未完成处，展示个动态总数
代码如下：
以下为index.js中的代码
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
  //原始数据list，也可以在mutations中获取获取后端数据
    list: [{
        id: '0',
 ]]></description><category></category></item><item><title><![CDATA[sql获取多条有相同属性数据中的第一条]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/114572190</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/114572190</guid><author>weixin_48508049</author><pubDate>Tue, 09 Mar 2021 08:40:21 +0800</pubDate><description><![CDATA[sql获取多条有相同属性数据中的第一条
当我们遇到一条数据如
id  &nbsp;&nbsp; bbid &nbsp;&nbsp;  name &nbsp;&nbsp;   time
1  &nbsp;&nbsp;  2    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   上厕所 &nbsp;&nbsp; 9：30
2  &nbsp;&nbsp;  2  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;      上厕所 &nbsp; 14：30
3 ]]></description><category></category></item><item><title><![CDATA[vue全屏时隐藏顶部栏]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/114024603</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/114024603</guid><author>weixin_48508049</author><pubDate>Wed, 24 Feb 2021 15:49:08 +0800</pubDate><description><![CDATA[vue全屏时隐藏顶部栏
vue可以点击按钮进行全屏显示，如果想在全屏时看到更多，隐藏掉顶部栏，我们可以这样编写代码，按钮图如下

设置完后效果图如下，这是整个电脑窗口的样子

首先我们找到这个按钮的代码
screenfull的index.vue
路径在src/components/Screeful/index.vue，找不到就全局搜索下
进入里面我们可以看到如下代码
&lt;template&gt;
  &lt;div&gt;
  //isFullscreen表示全屏与不全屏
    &lt;svg-ico]]></description><category></category></item><item><title><![CDATA[vue框架如何将侧边栏完全隐藏]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/114018306</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/114018306</guid><author>weixin_48508049</author><pubDate>Wed, 24 Feb 2021 13:23:55 +0800</pubDate><description><![CDATA[vue框架如何将侧边栏完全隐藏
如何将vue的左侧边栏在缩进的时候完全隐藏呢，效果图如下

找到目录src/style/sidebar.scss  然后搜索.hideSidebar可以搜出两个，不要慌，下面的时手机端的，我们拉到上面的.hideSidebar找到
.hideSidebar {
    .sidebar-container {
      width: 54px !important;
    }
    .main-container {
      margin-left: 54px;
 ]]></description><category></category></item><item><title><![CDATA[vue项目中加入富文本编辑器]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/113969601</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/113969601</guid><author>weixin_48508049</author><pubDate>Tue, 23 Feb 2021 08:54:53 +0800</pubDate><description><![CDATA[vue项目中加入富文本编辑器
如何在vue项目中加入富文本编辑器呢，我们首先先下载
npm install vue-quill-editor

下载完后，在vue页面中引入组件
import { quillEditor } from 'vue-quill-editor'
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
import 'quill/dist/quill.bubble.css'

并记得注册组件
comp]]></description><category></category></item><item><title><![CDATA[vue监听div大小改变多个echart大小]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/113114895</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/113114895</guid><author>weixin_48508049</author><pubDate>Mon, 25 Jan 2021 15:44:20 +0800</pubDate><description><![CDATA[vue监听div大小改变多个echart大小，使echart自适应div的大小且不冲突
我们在写echart图表时会遇到其不会根据窗口大小的变更而自适应界面的问题
第一种问题：单个echart，不会根据窗口大小的变更而变更
第二种问题：多个echart，不会根据窗口大小的变更而变更
第三种问题：多个echart，不会根据父组件的div大小的变更而变更
以下给出解决方案，三种都能解决掉，如果有优化余地请留言提醒一下
我们先通过下载element-resize-detector用来监听dom元素（如div）
在]]></description><category></category></item><item><title><![CDATA[如何搭建一个vue项目(完整步骤)]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/112799308</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/112799308</guid><author>weixin_48508049</author><pubDate>Tue, 19 Jan 2021 09:20:38 +0800</pubDate><description><![CDATA[转载如何搭建一个vue项目(完整步骤)


]]></description><category></category></item><item><title><![CDATA[前端生成随机字符串]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/112663071</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/112663071</guid><author>weixin_48508049</author><pubDate>Fri, 15 Jan 2021 13:52:01 +0800</pubDate><description><![CDATA[前端生成随机字符串
当我们需要一组无序编码时，又不想自己手打，又想符合一个特定标准时，就需要以下这个随机字符串生成的代码
以下是生成的几组随机字符串
286e93d8-ec8b-49e9-9e0b-56b0851c8c5c
6ec0519a-9387-4472-93f0-52a8e9eff625
33ea6a84-a251-4c90-82d2-0552e262b839
a883d8ad-db75-4fa7-81f8-f9b0521bb2cb

加入到按钮里就可以实现点击一下换一组随机数，如下所示

此处可以]]></description><category></category></item><item><title><![CDATA[重写basic认证]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/111992222</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/111992222</guid><author>weixin_48508049</author><pubDate>Wed, 30 Dec 2020 15:51:15 +0800</pubDate><description><![CDATA[basic认证
basic认证代码，可以放在之前写的aop自定义注解的@Before里,实现加个注解就能搞个basic认证的效果
代码如下
		RequestAttributes ra = RequestContextHolder.getRequestAttributes();
        ServletRequestAttributes sra = (ServletRequestAttributes) ra;
        assert sra != null;
        HttpServle]]></description><category></category></item><item><title><![CDATA[springmvc项目Aop自定义注解]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/111991904</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/111991904</guid><author>weixin_48508049</author><pubDate>Wed, 30 Dec 2020 15:45:34 +0800</pubDate><description><![CDATA[springmvc项目Aop自定义注解
今日份敷衍
在mvc项目里写个aop自定义注解（因为没在配置文件里加入扫描跟开启aop搞了一天，简直浪费时间）
首先建两个文件如下

一个注解，一个aop
注解是上面那个，里面怎么写呢，如下
package com.esse.project.sys.annotation;

import java.lang.annotation.*;

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(Retenti]]></description><category></category></item><item><title><![CDATA[用easypoi读取模板excel并用foreach存入数据，多层表头/乱七八糟表头]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/111478048</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/111478048</guid><author>weixin_48508049</author><pubDate>Mon, 21 Dec 2020 16:46:08 +0800</pubDate><description><![CDATA[用easypoi读取模板excel并用foreach存入数据，多层表头/乱七八糟表头
咋说呢，用map被总监说了，大概就是人家想修改名称跟顺序的时候都要改程序，太麻烦了（我咋知道人家还要修改模板的= =，模板难道不是定死的吗，没事改一改？）然后就用easypoi再写一份，正好下面分享一下
	private Workbook exportSheetByTemplate(List&lt;ExcelExport&gt; list) {

        // 设置导出配置
        // 获取导出excel]]></description><category></category></item><item><title><![CDATA[用jdbcTemplate查询数据库]]></title><link>https://blog.youkuaiyun.com/weixin_48508049/article/details/111477949</link><guid>https://blog.youkuaiyun.com/weixin_48508049/article/details/111477949</guid><author>weixin_48508049</author><pubDate>Mon, 21 Dec 2020 16:36:47 +0800</pubDate><description><![CDATA[String sql ="xxxx"
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
List&lt;ExcelExport&gt; list = new ArrayList&lt;&gt;();
try {
            Class.forName(className);
            connection = DriverMana]]></description><category></category></item></channel></rss>