<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lemon]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/nm147852</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; nm147852]]></copyright><item><title><![CDATA[java 四种引用类型]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/127133278</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/127133278</guid><author>nm147852</author><pubDate>Sat, 01 Oct 2022 16:21:35 +0800</pubDate><description><![CDATA[这就一个强引用类型。他的特点就是不会被GC回收,那怕jvm报出OOM异常.也不会被回收, 如果想要GC回收到这个强引用的话,需要在代码中将这个对象赋值为null,这样GC回收器进行垃圾回收时才会把这个强引用进行垃圾回收,例如。弱引用是用WeakReference进行描述.当gc回收器进行垃圾回收时,不管该引用有没有被使用,都会被直接回收。虚引用是PhantomReference进行描述的,当gc回收器进行垃圾回收时被回收,软引用是用SoftReference进行描述的,指的是有用但是非必要的对象,当。]]></description><category></category></item><item><title><![CDATA[docker镜像的导出和导入]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/127013539</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/127013539</guid><author>nm147852</author><pubDate>Mon, 26 Sep 2022 11:17:47 +0800</pubDate><description><![CDATA[docker镜像的导入导出]]></description><category></category></item><item><title><![CDATA[springboot自定义配置文件 yml格式]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/125068294</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/125068294</guid><author>nm147852</author><pubDate>Tue, 31 May 2022 16:27:00 +0800</pubDate><description><![CDATA[第一步

继承DefaultPropertySourceFactory 重写createPropertySource方法

import org.springframework.boot.env.YamlPropertySourceLoader;
import org.springframework.core.env.PropertySource;
import org.springframework.core.io.support.DefaultPropertySourceFactory;
import ]]></description><category></category></item><item><title><![CDATA[boot日志文件分等级并自动滚动拆分]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/123918636</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/123918636</guid><author>nm147852</author><pubDate>Sat, 02 Apr 2022 13:55:06 +0800</pubDate><description><![CDATA[&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;configuration&gt;

    &lt;contextName&gt;nhg&lt;/contextName&gt;
    &lt;!--  日志输出目录 根据自己实际情况改 --&gt;
    &lt;property name="log.path" value="logs"/&gt;

    &lt;!--  控制台日志格式：彩色日志 --&gt;
    &lt;!--  magen]]></description><category></category></item><item><title><![CDATA[微信小程序获取手机号后台springboot开发]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/123889902</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/123889902</guid><author>nm147852</author><pubDate>Fri, 01 Apr 2022 09:50:18 +0800</pubDate><description><![CDATA[微信小程序获取手机号需要后台进行解密

以java为例

想要获取用户在小程序里面的手机号,需要用户先在小程序里面登录,因为微信小程序提供的登录接口(这个接口在微信开发文档里面有)里面返回值有一个code,
前端拿到这个code后再进行访问微信的另外一个接口,传三个参数:刚获取的code和appId和appSecret(appId和appSecret在小程序管理后台可以看见)
String params = "appid=" + appId + "&amp;secret=" + appSecret + "&]]></description><category></category></item><item><title><![CDATA[对eureka注册中心做登录拦截]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/123731144</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/123731144</guid><author>nm147852</author><pubDate>Fri, 25 Mar 2022 11:23:42 +0800</pubDate><description><![CDATA[目标
针对eureka server

这样的方式只是针对新版的springcloud,就是版本好是年份的springcloud,之前以地铁站名命名的springcloud还是用以前的办法对eureka进行拦截

实现
1: 导入security依赖
&lt;dependency&gt;
    &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
    &lt;artifactId&gt;spring-boot-starter-security&]]></description><category></category></item><item><title><![CDATA[vue登录拦截]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/123495091</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/123495091</guid><author>nm147852</author><pubDate>Tue, 15 Mar 2022 10:22:47 +0800</pubDate><description><![CDATA[总体流程:
1.在登录页面中的登录方法将账号密码发给后台进行校验,校验成功后将后台返回的token存到浏览器本地(存到哪里,自己根据自己的实际业务来, 我以存到sessionStorage为例)
2.在路由中设置一下前置守卫拦截器,判断跳转路由时sessionStorage存储的token是否为空,为空则调到登录页面
3.设置每次向后台请求时从sessionStorage存储的token带上传给后台,因为后台需要校验

登录页面
&lt;template&gt;
  &lt;div&gt;
    &lt.]]></description><category></category></item><item><title><![CDATA[springboot防止用户多次提交]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/123406819</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/123406819</guid><author>nm147852</author><pubDate>Thu, 10 Mar 2022 17:27:41 +0800</pubDate><description><![CDATA[概述
使用场景：表单提交业务
作用：防止用户在同一时刻点击造成垃圾数据的生成。=
原理：根据url地址和上次地址链接是否相同，如果相同的话，在5秒(可以自定义)不会再次提交。
步骤

定义一个注解

/**
 * 自定义注解防止表单重复提交
 *
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RepeatSubmit {
    /**
     * 间隔时间]]></description><category></category></item><item><title><![CDATA[springboot项目使用war包进行部署]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/123132120</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/123132120</guid><author>nm147852</author><pubDate>Fri, 25 Feb 2022 14:29:37 +0800</pubDate><description><![CDATA[第一步

将pom文件中的打包方式修改成 war

&lt;packaging&gt;war&lt;/packaging&gt;

第二步

将springboot依赖中自带的tomcat剔除

		&lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            &lt;artifactId&gt;spring-boot-starter-web&lt;/artifactId&]]></description><category></category></item><item><title><![CDATA[完整的logback-spring.xml]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/122036889</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/122036889</guid><author>nm147852</author><pubDate>Mon, 20 Dec 2021 10:58:45 +0800</pubDate><description><![CDATA[01、application-dev.yml配置
myapp:
  logpath: G:/logs/springboot/

02、application-prod.yml配置
myapp:
  logpath: /logs/springboot/

03、log-spring-xml
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;configuration scan="true" scanPeriod="60 seconds" debug="false]]></description><category></category></item><item><title><![CDATA[自定义注解]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/121414923</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/121414923</guid><author>nm147852</author><pubDate>Fri, 19 Nov 2021 10:04:25 +0800</pubDate><description><![CDATA[自定义注解

使用场景还是很多的,比如说是 在一定时间内限制接口请求次数 下面就来举个栗子

业务需求

限制一个接口或者多个接口在规定的时间内只能请求规定好的次数以内

首先定义一个自定义注解
import java.lang.annotation.*;

@Documented   // @Documented注解只是用来做标识，没什么实际作用，了解就好。
@Target(ElementType.METHOD) // 说明该注解只能放在方法上面
@Retention(RetentionPolicy.RU]]></description><category></category></item><item><title><![CDATA[springboot在linux上启动项目]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/121379671</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/121379671</guid><author>nm147852</author><pubDate>Wed, 17 Nov 2021 15:39:38 +0800</pubDate><description><![CDATA[准备材料

项目的jar包
linux上的tomcat地址(tomcat中的这个包下: webapps 放项目)


打包的话可以用maven自带的打包工具进行打包
查看自己的tomcat在linux上的安装路径命令:   sudo find / -name tomcat   这个命令可以找到关于tomcat的文件夹,自己看看哪个文件夹符合

将jar放好后下面开始运行起来
永久运行jar
nohup java -jar xxx.jar &gt; xxx.log 2&gt;&amp;1 &amp;
运行命令]]></description><category></category></item><item><title><![CDATA[微信Native支付V3版本]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/120865105</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/120865105</guid><author>nm147852</author><pubDate>Wed, 20 Oct 2021 15:19:26 +0800</pubDate><description><![CDATA[微信Native支付V3版本

微信支付在开发之前也是需要进行商户接入的

接入文档链接: https://pay.weixin.qq.com/index.php/core/home/login
Native支付介绍
商户系统按微信支付协议生成支付二维码，用户再用微信“扫一扫”完成支付的模式
对应的链接: https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_7_3.shtml
微信提供的文档听详细的,需要准备的东西也有介绍,简单分为以下几种:]]></description><category></category></item><item><title><![CDATA[支付宝扫码支付]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/120861940</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/120861940</guid><author>nm147852</author><pubDate>Wed, 20 Oct 2021 11:46:59 +0800</pubDate><description><![CDATA[扫码支付

企业使用支付宝支付的话,需要先进行账户的接入支付
接入支付文档链接: https://opendocs.alipay.com/open/0128wr
接入支付文档视频: https://www.kuangstudy.com/course/play/1377518279077142529#ksd_1381861907484418050_1381862218542391297
ps : 该视频来自于学相伴

企业接入完成后可以得到以下参数:

appId
回调地址
应用私钥:
支付宝公钥


以上参]]></description><category></category></item><item><title><![CDATA[项目war包部署到第三方Tomcat,访问路径必须加上项目名称的坑]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/119247266</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/119247266</guid><author>nm147852</author><pubDate>Fri, 30 Jul 2021 14:41:37 +0800</pubDate><description><![CDATA[项目打成war包后需要放在tomcat上进行启动,但是会出现,访问路径是必须要加上项目名称才可以访问
可以按照以下方式进行修改
1.将项目打好包后放在tomcat下的webapps文件夹下
2,启动tomcat
3.启动完毕后会发现访问的话必须要加上你这个项目的打成war包的名字才可以访问
4.停止tomcat
5,修改tomcat的server.xml文件
6.在tomcat安装目录的conf目录下打开配置文件server.xml，笔者的路径是D:/ruanjian/apache-tomcat-8.5.3]]></description><category></category></item><item><title><![CDATA[springboot上传文件]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/119246647</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/119246647</guid><author>nm147852</author><pubDate>Fri, 30 Jul 2021 14:36:10 +0800</pubDate><description><![CDATA[直接上代码
 @PostMapping("/uploadImage")
    @ApiOperation(value = "上传图片", notes = "上传图片")
    public R uploadImage(@RequestParam(value = "file") MultipartFile file,@RequestParam(value = "projectIconName") String projectIconName) {
        // 非空校验
        if (f]]></description><category></category></item><item><title><![CDATA[vue项目初始化]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/118935811</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/118935811</guid><author>nm147852</author><pubDate>Tue, 20 Jul 2021 15:08:01 +0800</pubDate><description><![CDATA[vue项目初始化步骤
1.安装 Vue 脚手架
1.1.安装好node.js 
1.2.配置好阿里云镜像
1.3.npm install vue-cli -g  安装脚手架

2.通过 Vue 脚手架创建项目
2.1.使用 vue ui 命令打开创建vue项目可视化界面
2.2.选择创建,选择好自己的项目目录
2.3.输入项目名称
2.4.根据自己情况选择是否初始化git仓库后下一步
2.5.如果之前没有预设的话就寻找手动配置
2.6.打开 Babel、Router、Linter/Formatter和使用配]]></description><category></category></item><item><title><![CDATA[打开或者swagger文档控制台出现For input string: ““的报错]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/118301457</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/118301457</guid><author>nm147852</author><pubDate>Mon, 28 Jun 2021 13:41:05 +0800</pubDate><description><![CDATA[出现原因

是因为swagger文档上每个参数都会设定一个默认值，包装类型的默认值是""，所以会出现转换异常。

解决方案
方案一

在@ApiModelProperty设定默认值

方案二

降低 springfox-swagger2 包中 swagger-annotations 和 swagger-models 的版本号

	&lt;dependency&gt;
            &lt;groupId&gt;io.springfox&lt;/groupId&gt;
            &lt]]></description><category></category></item><item><title><![CDATA[前后端分离无Cookie模式登录]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/118220442</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/118220442</guid><author>nm147852</author><pubDate>Fri, 25 Jun 2021 15:30:42 +0800</pubDate><description><![CDATA[无Cookie模式的下登录校验方式
总体流程

前端把账号密码给后端校验
后端校验完毕后，正确的情况，后端生成token并返回（至于怎么生成token方式有很多，例如：jwt，uuid）
前端接受token后，可以把token存在本地（方式很多：Cookie、LocalStorage、SessionStorage），本篇以存入Cookie为例
前端每次想后端发请求的时候先从Cookie中取出token,然后放在请求头里面发送过去
后端配置一个拦截器,拦截请求,从请求中获取token进行操作

这篇文章是使用]]></description><category></category></item><item><title><![CDATA[vue前后端分离项目http请求携带cookie设置问题]]></title><link>https://blog.youkuaiyun.com/nm147852/article/details/118151319</link><guid>https://blog.youkuaiyun.com/nm147852/article/details/118151319</guid><author>nm147852</author><pubDate>Wed, 23 Jun 2021 13:46:16 +0800</pubDate><description><![CDATA[问题描述
前后端完全分离的项目，前端使用Vue + axios，
使用CORS协议解决跨域访问数据限制的问题，但是发现客户端的Ajax请求不会自动带上服务器返回的Cookie：SESSIONID
导致每一个Ajax请求在服务端看来都是一个新的请求，都会在服务端创建新的Session（在响应消息头中设置Set-Cookie：JSESSIONID=xxx）
解决方法
首先前端方面
在main.js文件中加上
axios.defaults.withCredentials=true;

最后后端方面
解决跨域问题
]]></description><category></category></item></channel></rss>