<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[uwei的博客]]></title><description><![CDATA[愿我如星君如月，夜夜流光相皎洁。]]></description><link>https://blog.youkuaiyun.com/dummyo</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; dummyo]]></copyright><item><title><![CDATA[使用JSR（Java规范请求）规范校验请求参数]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/115219912</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/115219912</guid><author>dummyo</author><pubDate>Thu, 25 Mar 2021 22:02:33 +0800</pubDate><description><![CDATA[JSR（Java规范请求，Java Specification Requests）是Java的一个验证框架，它定义了很多注解来验证Bean 的属性。
spring-boot-starter-web包里面有hibernate-validator包，hibernate-validator实现了JSR的规范。所以如果开发 web 就不需要重复添加 spring-boot-starter-validation 依赖了。但如果没用 web 依赖时候想要实现 Bean 验证，则只要单单加入 spring-boot-st]]></description><category></category></item><item><title><![CDATA[Jmeter并发测试接口]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/112325138</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/112325138</guid><author>dummyo</author><pubDate>Thu, 07 Jan 2021 17:54:47 +0800</pubDate><description><![CDATA[Jmeter并发测试接口



固定参数

场景：每次请求接口时使用同样的参数。


	新建计划： File→ New 。 在Name中可以输入计划名称
	




  2. 新建线程组：在刚刚新建的计划上右键→ add→ Threads(Users)→ ThreadGroup





Name: 线程组名称

Comments：附加信息

Action to be taken after s Sample error: 当出现测试例失败时，选择的措施。 （继续 ，开始下一轮循环，...]]></description><category></category></item><item><title><![CDATA[CollapsingToolbarLayout里面添加textview，一直重绘布局报错]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/105135673</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/105135673</guid><author>dummyo</author><pubDate>Fri, 27 Mar 2020 10:30:53 +0800</pubDate><description><![CDATA[布局如下

&lt;com.google.android.material.appbar.AppBarLayout
    android:id="@+id/appBarLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:expanded="false"&...]]></description><category></category></item><item><title><![CDATA[Android监听输入法的状态：弹起，关闭]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/105046724</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/105046724</guid><author>dummyo</author><pubDate>Mon, 23 Mar 2020 13:28:54 +0800</pubDate><description><![CDATA[Android监听输入法的状态：弹起，关闭


在根视图添加一个id，@+id=root_view，如



监听布局的状态
@BindView(R.id.rl_rootview)
FrameLayout frameLayout;

frameLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.On...]]></description><category></category></item><item><title><![CDATA[必须学会的Linux下一键部署项目的shell脚本]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/103916570</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/103916570</guid><author>dummyo</author><pubDate>Thu, 09 Jan 2020 23:45:46 +0800</pubDate><description><![CDATA[必须学会的Linux下一键部署项目的shell脚本

在公司也经历了几次项目更新，往服务器上部署上线。然鹅每次都是用的服务器上已经存在的脚本文件，类似这个样子：

每次我就上传个jar包，然后执行./restart就结束所谓的发包，太无聊了， 于是想着为什么要用别人的脚本文件呢？ 于是有了本篇博客。

基础知识

需要用到linux基本命令

怎么执行shell脚本
使用nohup启动jar包
d...]]></description><category></category></item><item><title><![CDATA[Springboot登录会话过期,重定向到登录界面]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/103552283</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/103552283</guid><author>dummyo</author><pubDate>Sun, 15 Dec 2019 19:37:44 +0800</pubDate><description><![CDATA[Springboot实现登录过期,重定向到登录页面
集成spring session

很多时候我们网站都会需要登录和验证.
试想: 如果我登录了网站后, 有事离开了电脑60分钟; 在这段时间内, 如果有人使用我的电脑, 那么我的账号是十分危险的.
因此需要一个浏览器与服务器之间的会话, 在没有一定时间内没有交互的话, 就让这次登陆状态过期, 如果过期后, 在页面上点击, 让它跳转回登陆页面.
这...]]></description><category></category></item><item><title><![CDATA[程序员不能不懂的Retry机制]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/103451238</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/103451238</guid><author>dummyo</author><pubDate>Mon, 09 Dec 2019 00:24:20 +0800</pubDate><description><![CDATA[Retry重试机制

当我们调用一个接口时, 可能由于网络等原因造成第一次失败, 再去尝试就成功了, 这就是重试机制.
重试的解决方案有很多, 比如利用 try-catch-redo简单重试模式, 通过判断返回结果或监听异常来
判断是否重试, 具体可以看如下例子:

public void testRetry(){
        boolean result = false;
        t...]]></description><category></category></item><item><title><![CDATA[程序员一定不能错过的全局异常处理]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/103450968</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/103450968</guid><author>dummyo</author><pubDate>Sun, 08 Dec 2019 23:35:58 +0800</pubDate><description><![CDATA[SpringBoot全局异常使用
自定义错误界面

Springboot自带的错误提示界面不太友好, 我们自己实现错误界面.
在src/main/resources/static 下面新建自定义错误页面404.html, 具体代码如下图所示:

&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charse...]]></description><category></category></item><item><title><![CDATA[Springboot事务的使用]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/103412604</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/103412604</guid><author>dummyo</author><pubDate>Thu, 05 Dec 2019 21:13:53 +0800</pubDate><description><![CDATA[Springboot事务的使用
Springboot事务介绍

​	Springboot开启事务很简单, 只需要一个注解 @Transactional 就可以了, 因为在 Springboot 中已经默认对JPA, JDBC, Mybatis开启了事务, 引入它们依赖的时候, 事务就默认开启. 当然, 如果你需要用其他的ORM框架, 比如 Beat1SQL, 就需要自己配置相关的事务管理器.
​	...]]></description><category></category></item><item><title><![CDATA[Spring注解事务行为]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/103396859</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/103396859</guid><author>dummyo</author><pubDate>Thu, 05 Dec 2019 01:20:34 +0800</pubDate><description><![CDATA[Spring注解事务行为

当事务方法被另一个事务方法调用时, 必须指定事务应该如何传播. 例如, 方法可能继续在现有事务中运行, 也可能开启一个新事务, 并在自己的事务中运行. 事务的传播行为可以在 @Transctional的属性中指定, spring定义了 7 种传播行为, 具体如下图所示.

Spring传播行为
表1 Spring事务播行为




传播行为
含义




PROPAGA...]]></description><category></category></item><item><title><![CDATA[Spring常用注解含义]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/103396566</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/103396566</guid><author>dummyo</author><pubDate>Wed, 04 Dec 2019 23:49:45 +0800</pubDate><description><![CDATA[Spring常用注解含义

@Service Springboot会自动扫描到@Service注解的类, 并把这些类纳入Spring容器中管理. 也可以用@Component注解, 只是@Service注解更能表明该类是服务层类.
@Component 泛指组件, 当组件不好归类的时候, 我们可以使用这个注解进行标注.
@Repository 持久层组件, 用于标注数据访问的组件, 即DAO层.
...]]></description><category></category></item><item><title><![CDATA[SpringBoot集成Druid]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/103341661</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/103341661</guid><author>dummyo</author><pubDate>Sun, 01 Dec 2019 23:55:23 +0800</pubDate><description><![CDATA[SpringBoot集成Druid
先添加druid依赖
&lt;dependency&gt;
            &lt;groupId&gt;com.alibaba&lt;/groupId&gt;
            &lt;artifactId&gt;druid-spring-boot-starter&lt;/artifactId&gt;
            &lt;versio...]]></description><category></category></item><item><title><![CDATA[springboot集成tkbatis,并借助PageHelper进行分页 添加依赖]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/103330669</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/103330669</guid><author>dummyo</author><pubDate>Sat, 30 Nov 2019 23:07:15 +0800</pubDate><description><![CDATA[springboot集成tkbatis,并借助PageHelper进行分页
添加依赖

spring依赖
jdbc依赖
tkmybatis依赖
pagehelper依赖
pagehelper-autoconfigure依赖

&lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
...]]></description><category></category></item><item><title><![CDATA[Springboot整合mybatis]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/103245618</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/103245618</guid><author>dummyo</author><pubDate>Mon, 25 Nov 2019 21:18:30 +0800</pubDate><description><![CDATA[使用springboot整合mybatis。使用代码配置。

整体结构：



1. 添加所需依赖


&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta...]]></description><category></category></item><item><title><![CDATA[使用git将项目关联远程仓库并push到新的branch]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/103074975</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/103074975</guid><author>dummyo</author><pubDate>Thu, 14 Nov 2019 21:47:53 +0800</pubDate><description><![CDATA[场景：我有一个项目名为Test托管在GitHub，项目Test现在只有一个master分支，现在我朋友用邮件给我发了一份代码，我想把这份代码上传到我的Test项目的dev分支。

lets go

使用idea打开项目，然后在进入到项目所在目录，即/User/uwei/IdeaProjects/demo 目录，执行git init 来初始化


git init



初始化后，就将需要push到...]]></description><category></category></item><item><title><![CDATA[Linux杀掉某个进程]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/102622847</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/102622847</guid><author>dummyo</author><pubDate>Fri, 18 Oct 2019 11:51:12 +0800</pubDate><description><![CDATA[Linux运行jar https://blog.youkuaiyun.com/dummyo/article/details/102622541

Linux查看运行的java程序   https://blog.youkuaiyun.com/dummyo/article/details/102622651

Linux查看某个端口号的运行程序 https://blog.youkuaiyun.com/dummyo/article/...]]></description><category></category></item><item><title><![CDATA[Linux查看某个端口号的运行程序]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/102622752</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/102622752</guid><author>dummyo</author><pubDate>Fri, 18 Oct 2019 11:45:15 +0800</pubDate><description><![CDATA[Linux运行jar https://blog.youkuaiyun.com/dummyo/article/details/102622541

Linux查看运行的java程序   https://blog.youkuaiyun.com/dummyo/article/details/102622651

Linux查看某个端口号的运行程序 https://blog.youkuaiyun.com/dummyo/article/...]]></description><category></category></item><item><title><![CDATA[Linux查看运行的java程序]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/102622651</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/102622651</guid><author>dummyo</author><pubDate>Fri, 18 Oct 2019 11:41:41 +0800</pubDate><description><![CDATA[Linux运行jar https://blog.youkuaiyun.com/dummyo/article/details/102622541

Linux查看运行的java程序   https://blog.youkuaiyun.com/dummyo/article/details/102622651

Linux查看某个端口号的运行程序 https://blog.youkuaiyun.com/dummyo/article/...]]></description><category></category></item><item><title><![CDATA[Linux运行jar]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/102622541</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/102622541</guid><author>dummyo</author><pubDate>Fri, 18 Oct 2019 11:35:11 +0800</pubDate><description><![CDATA[Linux运行jar https://blog.youkuaiyun.com/dummyo/article/details/102622541

Linux查看运行的java程序   https://blog.youkuaiyun.com/dummyo/article/details/102622651

Linux查看某个端口号的运行程序 https://blog.youkuaiyun.com/dummyo/article/...]]></description><category></category></item><item><title><![CDATA[使用@Conditional注解根据配置文件注入不同的对象]]></title><link>https://blog.youkuaiyun.com/dummyo/article/details/102539604</link><guid>https://blog.youkuaiyun.com/dummyo/article/details/102539604</guid><author>dummyo</author><pubDate>Mon, 14 Oct 2019 00:14:16 +0800</pubDate><description><![CDATA[背景：

项目中使用了datahub，kafka两种消息队列，为了避免硬编码，应该根据配置文件来决定使用哪种消息队列，以及初始化哪个对象。

为了简洁，我只写了简单代码来表明实现逻辑。

定义一个IBase的接口，声明一个send方法，然后datahub，kafka去实现：


public interface IBase {
    void send();
}


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