<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[adjan的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/adjan</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; adjan]]></copyright><item><title><![CDATA[Spring Boot 通过 Swagger 自动生成 ShowDoc 文档]]></title><link>https://blog.youkuaiyun.com/adjan/article/details/119538632</link><guid>https://blog.youkuaiyun.com/adjan/article/details/119538632</guid><author>adjan</author><pubDate>Mon, 09 Aug 2021 15:35:14 +0800</pubDate><description><![CDATA[配置Spring Boot 自动化文档提高开发效率
Spring Boot配置Swagger

pom.xml添加依赖

&lt;dependency&gt;
	&lt;groupId&gt;io.springfox&lt;/groupId&gt;
	&lt;artifactId&gt;springfox-swagger2&lt;/artifactId&gt;
	&lt;version&gt;2.9.2&lt;/version&gt;
&lt;/dependency&gt;
&lt;dependency&g]]></description><category></category></item><item><title><![CDATA[Hazelcast and Management for docker]]></title><link>https://blog.youkuaiyun.com/adjan/article/details/117250649</link><guid>https://blog.youkuaiyun.com/adjan/article/details/117250649</guid><author>adjan</author><pubDate>Tue, 25 May 2021 10:39:44 +0800</pubDate><description><![CDATA[建立网络
docker network create --subnet=172.23.0.0/16 hazelcast

hazelcast
拉镜像
docker pull hazelcast/hazelcast:3.7.1

运行容器
docker run -d -p 5701:5701 --network hazelcast --ip 172.23.0.2 --restart always  hazelcast/hazelcast:3.7.1

可视化管理工具
拉镜像
docker pull hazel]]></description><category></category></item><item><title><![CDATA[github博客域名绑定]]></title><link>https://blog.youkuaiyun.com/adjan/article/details/116480320</link><guid>https://blog.youkuaiyun.com/adjan/article/details/116480320</guid><author>adjan</author><pubDate>Fri, 07 May 2021 09:07:11 +0800</pubDate><description><![CDATA[通过github创建的blog绑定域名时出现不加载js,css.可以尝试该方法
hugo的config.toml文件中需要指定访问地址
baseurl = "https://githubname.github.io"

这里的baseurl必须指向blog的github地址.

]]></description><category></category></item><item><title><![CDATA[Java反射获取实体属性]]></title><link>https://blog.youkuaiyun.com/adjan/article/details/116480289</link><guid>https://blog.youkuaiyun.com/adjan/article/details/116480289</guid><author>adjan</author><pubDate>Fri, 07 May 2021 09:06:30 +0800</pubDate><description><![CDATA[Java中可以通过反射获取未知实体的属性
Field field=message.getClass().getDeclaredField("value");
field.setAccessible(true);
field.get(message);


]]></description><category></category></item><item><title><![CDATA[获取资源文件]]></title><link>https://blog.youkuaiyun.com/adjan/article/details/116480248</link><guid>https://blog.youkuaiyun.com/adjan/article/details/116480248</guid><author>adjan</author><pubDate>Fri, 07 May 2021 09:05:51 +0800</pubDate><description><![CDATA[Java中可以通过getClass().getResource()方法获取资源文件
比如我们有以下目录
|--project
    |--src
        |--main
            |--java
                |--Test.java
                |--file.txt
    |--target
        |--classes
            |--Test.class
            |--file.txt

现在要在T]]></description><category></category></item><item><title><![CDATA[MultipartFile转换成File]]></title><link>https://blog.youkuaiyun.com/adjan/article/details/116480138</link><guid>https://blog.youkuaiyun.com/adjan/article/details/116480138</guid><author>adjan</author><pubDate>Fri, 07 May 2021 09:02:28 +0800</pubDate><description><![CDATA[MultipartFile转换成File
    public static File convertFileByMultipartFile(MultipartFile file) {
        File toFile = null;
        if (file.equals("") || file.getSize() &lt;= 0) {
            file = null;
        } else {
            InputStream ins = null;
]]></description><category></category></item><item><title><![CDATA[将网络url图片链接转换为File类型对象]]></title><link>https://blog.youkuaiyun.com/adjan/article/details/116480119</link><guid>https://blog.youkuaiyun.com/adjan/article/details/116480119</guid><author>adjan</author><pubDate>Fri, 07 May 2021 09:01:55 +0800</pubDate><description><![CDATA[将网络url图片链接转换为File类型对象
    public static File convertFileByUrl(String url) {
        File file = null;

        URL urlfile;
        InputStream inputStream = null;
        OutputStream outputStream= null;
        try {
            file = File.createTempFil]]></description><category></category></item><item><title><![CDATA[二维码生成与解析]]></title><link>https://blog.youkuaiyun.com/adjan/article/details/116480068</link><guid>https://blog.youkuaiyun.com/adjan/article/details/116480068</guid><author>adjan</author><pubDate>Fri, 07 May 2021 09:00:34 +0800</pubDate><description><![CDATA[二维码生成与解析
pom.xml
&lt;dependency&gt;
    &lt;groupId&gt;com.google.zxing&lt;/groupId&gt;
    &lt;artifactId&gt;core&lt;/artifactId&gt;
    &lt;version&gt;3.3.3&lt;/version&gt;
    &lt;scope&gt;compile&lt;/scope&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
   ]]></description><category></category></item><item><title><![CDATA[SonarQube 安装使用心得]]></title><link>https://blog.youkuaiyun.com/adjan/article/details/116480012</link><guid>https://blog.youkuaiyun.com/adjan/article/details/116480012</guid><author>adjan</author><pubDate>Fri, 07 May 2021 08:59:12 +0800</pubDate><description><![CDATA[最近搭建SonarQube的一些安装心得，记录下来。


mysql初始化数据库

CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; 
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' I]]></description><category></category></item><item><title><![CDATA[内网穿透工具 Frp 学习]]></title><link>https://blog.youkuaiyun.com/adjan/article/details/116479876</link><guid>https://blog.youkuaiyun.com/adjan/article/details/116479876</guid><author>adjan</author><pubDate>Fri, 07 May 2021 08:56:31 +0800</pubDate><description><![CDATA[frp 是一个可用于内网穿透的高性能的反向代理应用
github地址
服务器端
配置:
[common]
bind_port = 7000
vhost_http_port = 7000

启动命令
./frps -c frps.ini

客户端
配置:
[common]
server_addr = 159.71.44.60
server_port = 7000

[web]
type = http
local_port = 8080
custom_domains = taobao.yooxinz.com

]]></description><category></category></item><item><title><![CDATA[实现Hugo中的搜索功能]]></title><link>https://blog.youkuaiyun.com/adjan/article/details/107763160</link><guid>https://blog.youkuaiyun.com/adjan/article/details/107763160</guid><author>adjan</author><pubDate>Mon, 03 Aug 2020 14:45:43 +0800</pubDate><description><![CDATA[基于Grunt实现Hugo中的搜索功能，先生成索引文件，再根据索引文件检索关键词。
安装需要的组件
安装Grunt
npm install -g grunt-cli

安装需要的包工具
npm install --save-dev toml string html-entities marked grunt

生成索引文件

新建Gruntfile文件，并修改其中相关参数。


CONTENT_PATH_PREFIX：要搜索的内容路径
FILE_SUFFIX：目标文件的文件后缀名
FILE_SPLIT：文章]]></description><category></category></item><item><title><![CDATA[通过Travis-CI发布博客]]></title><link>https://blog.youkuaiyun.com/adjan/article/details/107763134</link><guid>https://blog.youkuaiyun.com/adjan/article/details/107763134</guid><author>adjan</author><pubDate>Mon, 03 Aug 2020 14:38:20 +0800</pubDate><description><![CDATA[通过Travis CI使增加新博客后自动生成对应的站点并上传到Github Page中。
在Github中生成Personal access tokens
添加认证信息：
在你Travis CI 对应的仓库的Setting页中添加对应的环境变量，变量名为GITHUB_TOKEN，值为之前创建的Personal access tokens。
编写CI文件
编写对应的.travis.yml文件
sudo: true
dist: trusty

install:
  - sudo apt-get --yes in]]></description><category></category></item><item><title><![CDATA[Spring Boot 添加日志链 TraceId]]></title><link>https://blog.youkuaiyun.com/adjan/article/details/107763067</link><guid>https://blog.youkuaiyun.com/adjan/article/details/107763067</guid><author>adjan</author><pubDate>Mon, 03 Aug 2020 14:36:06 +0800</pubDate><description><![CDATA[配置Spring Boot 日志的 TraceId,提高问题排查的效率。
通过MDC添加TraceId变量
创建拦截器 添加traceId
@Component
@Slf4j
public class TraceFilter extends OncePerRequestFilter {

    @Override
    protected void doFilterInternal(HttpServletRequest httpServletRequest, HttpServletResponse ht]]></description><category></category></item><item><title><![CDATA[nginx https认证]]></title><link>https://blog.youkuaiyun.com/adjan/article/details/107763026</link><guid>https://blog.youkuaiyun.com/adjan/article/details/107763026</guid><author>adjan</author><pubDate>Mon, 03 Aug 2020 14:34:30 +0800</pubDate><description><![CDATA[通过CertBot为nginx配置https。
先配置nginx
server {
    server_name  taobao.yooxinz.com;

    location / {
       proxy_pass http://localhost:8080;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
  ]]></description><category></category></item><item><title><![CDATA[Mysql逻辑删除保留唯一索引]]></title><link>https://blog.youkuaiyun.com/adjan/article/details/107763010</link><guid>https://blog.youkuaiyun.com/adjan/article/details/107763010</guid><author>adjan</author><pubDate>Mon, 03 Aug 2020 14:33:37 +0800</pubDate><description><![CDATA[通常的业务系统中为了防止认为操作失误,造成误删数据,都要求对于删除操作只执行逻辑删除,即假删除。常见的做法添加删除标识字段,用户操作删除时更新删除标识字段来达到目的。但是当遇到表中需要有唯一性索引时则会造成问题。
案例
创建一个商品编码为A110的商品,商品编码为该表的唯一性索引,此时对该商品进行删除后,无法再次添加商品编码为A110的商品。
将删除标识加入唯一索引
把商品编码和删除标识设置为复合唯一索引,删除A110商品后可以再次新建一个A110,解决了上述问题。但是此时需要再次删除A110商品时则会出现]]></description><category></category></item><item><title><![CDATA[.gitignore规则不生效的解决办法]]></title><link>https://blog.youkuaiyun.com/adjan/article/details/107762975</link><guid>https://blog.youkuaiyun.com/adjan/article/details/107762975</guid><author>adjan</author><pubDate>Mon, 03 Aug 2020 14:32:18 +0800</pubDate><description><![CDATA[先创建的项目后添加.gitignore文件时遇到不生效的情况

git rm -r --cached .
git add .
git commit -m 'update .gitignore'


]]></description><category></category></item><item><title><![CDATA[Arrays.asList()学习]]></title><link>https://blog.youkuaiyun.com/adjan/article/details/107762860</link><guid>https://blog.youkuaiyun.com/adjan/article/details/107762860</guid><author>adjan</author><pubDate>Mon, 03 Aug 2020 14:27:22 +0800</pubDate><description><![CDATA[Arrays.asList() 是泛型方法, 传入的对象必须是对象数组
int[] myArray = { 1, 2, 3 };
List myList = Arrays.asList(myArray);
System.out.println(myList.size());//1
System.out.println(myList.get(0));//数组地址值
System.out.println(myList.get(1));//报错：ArrayIndexOutOfBoundsException

可以]]></description><category></category></item><item><title><![CDATA[可视化学习Git]]></title><link>https://blog.youkuaiyun.com/adjan/article/details/86223241</link><guid>https://blog.youkuaiyun.com/adjan/article/details/86223241</guid><author>adjan</author><pubDate>Thu, 10 Jan 2019 12:01:36 +0800</pubDate><description><![CDATA[给大家推荐一个Git学习工具LearnGitBranching，以可视化的方式讲述Git的命令原理。并且设置了一系列有挑战性的任务来帮助Git的学习。
先上张图看看效果：

看看它包含的关卡：

详情：

在线的网站
GitHub地址


...]]></description><category></category></item></channel></rss>