<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[had__had的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/had__had</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; had__had]]></copyright><item><title><![CDATA[在实体类中临时返回特定字段@Transient]]></title><link>https://blog.csdn.net/had__had/article/details/120565263</link><guid>https://blog.csdn.net/had__had/article/details/120565263</guid><author>had__had</author><pubDate>Thu, 30 Sep 2021 13:48:12 +0800</pubDate><description><![CDATA[指定不持久化特定字段
如果我们想让 secrect 这个字段不被持久化，可以使用 @Transient 关键字声明。
一般使用注解的方式比较多。

Entity(name="USER")
public class User {
......
@Transient
private String secrect; // not persistent because of @Transient
}


...]]></description><category></category></item><item><title><![CDATA[SpringSecurity入门（一）超级详细]]></title><link>https://blog.csdn.net/had__had/article/details/120137387</link><guid>https://blog.csdn.net/had__had/article/details/120137387</guid><author>had__had</author><pubDate>Mon, 06 Sep 2021 16:11:30 +0800</pubDate><description><![CDATA[概述
Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架。它是保护基于 Spring 的应用程序的事实上的标准。
Spring Security 是一个专注于为 Java 应用程序提供身份验证和授权的框架。与所有 Spring 项目一样，Spring Security 的真正强大之处在于它可以轻松扩展以满足自定义要求
特性：
-对身份验证和授权的全面且可扩展的支持
-防止会话固定、点击劫持、跨站点请求伪造等攻击
-Servlet API 集成
-与 Spring Web MV]]></description><category></category></item><item><title><![CDATA[用redis的key过期事件做定时任务]]></title><link>https://blog.csdn.net/had__had/article/details/119635989</link><guid>https://blog.csdn.net/had__had/article/details/119635989</guid><author>had__had</author><pubDate>Thu, 12 Aug 2021 10:27:07 +0800</pubDate><description><![CDATA[普通的定时任务：
Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println("定时任务开始执行！");
            }
        },System.currentTimeMillis()-60*1000L);

因为我们做的是消息服务，当]]></description><category></category></item><item><title><![CDATA[记录一次使用easypoi导出excel文件的全过程（超详细）]]></title><link>https://blog.csdn.net/had__had/article/details/119108037</link><guid>https://blog.csdn.net/had__had/article/details/119108037</guid><author>had__had</author><pubDate>Mon, 26 Jul 2021 14:06:47 +0800</pubDate><description><![CDATA[先引入依赖：
 &lt;!--easypoi--&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;cn.afterturn&lt;/groupId&gt;
            &lt;artifactId&gt;easypoi-base&lt;/artifactId&gt;
            &lt;version&gt;3.0.1&lt;/version&gt;
        &lt;/dependency&gt;
     ]]></description><category></category></item><item><title><![CDATA[通过webSocket实现服务端推送消息到前端页面]]></title><link>https://blog.csdn.net/had__had/article/details/117929323</link><guid>https://blog.csdn.net/had__had/article/details/117929323</guid><author>had__had</author><pubDate>Tue, 15 Jun 2021 17:31:36 +0800</pubDate><description><![CDATA[pom文件中引入依赖
&lt;!-- 开启websocket支持--&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            &lt;artifactId&gt;spring-boot-starter-websocket&lt;/artifactId&gt;
        &lt;/dependency&gt;

配置类
@Component]]></description><category></category></item><item><title><![CDATA[BindingException: Invalid bound statement (not found):]]></title><link>https://blog.csdn.net/had__had/article/details/117739873</link><guid>https://blog.csdn.net/had__had/article/details/117739873</guid><author>had__had</author><pubDate>Wed, 09 Jun 2021 13:46:38 +0800</pubDate><description><![CDATA[然后在网上找了好多解决方案都是说mapper.xml文件路径或者名称填错的 ，我看了自己的项目都没有错，但就是一直报错
然后！！！
在写dao层时
public interface UserDao extends BaseMapper {}

大家看错哪儿错了没 ，正确写法应该是
public interface UserDao extends BaseMapper&lt;user&gt;{} 

虽然很可笑，但是也花了不少时间，记录一下吧！！！

...]]></description><category></category></item><item><title><![CDATA[记录一次windows中查看服务端口]]></title><link>https://blog.csdn.net/had__had/article/details/116769652</link><guid>https://blog.csdn.net/had__had/article/details/116769652</guid><author>had__had</author><pubDate>Thu, 13 May 2021 22:40:18 +0800</pubDate><description><![CDATA[进入系统盘目录：
C:\Windows\System32\drivers\etc
用记事本打开services就可以查看

]]></description><category></category></item><item><title><![CDATA[Ubuntu中vi编辑器中按i后方向键和删除键显示ABCD等，不能正常操作]]></title><link>https://blog.csdn.net/had__had/article/details/112859725</link><guid>https://blog.csdn.net/had__had/article/details/112859725</guid><author>had__had</author><pubDate>Wed, 20 Jan 2021 10:47:29 +0800</pubDate><description><![CDATA[问题
Ubuntu16.04中vi编辑器中按i后方向键和删除键显示ABCD等，不能正常操作
解决
# 安装方法
sudo apt-get install vim


1.方法一：
用这个命令查看一下apt-get的相关进程，然后kill掉
2.方法二：
sudo rm /var/cache/apt/archives/lock  
sudo rm /var/lib/dpkg/lock  

我的以上方法都不能解决这个问题，然后看评论用以下方式解决
sudo rm /var/lib/dpkg/lock-fron]]></description><category></category></item><item><title><![CDATA[idea创建springboot项目]]></title><link>https://blog.csdn.net/had__had/article/details/112591238</link><guid>https://blog.csdn.net/had__had/article/details/112591238</guid><author>had__had</author><pubDate>Wed, 13 Jan 2021 21:09:15 +0800</pubDate><description><![CDATA[创建springboot项目
1、创建主题工程、选择maven  一直—next

创建每个模块：





创建成功


]]></description><category></category></item><item><title><![CDATA[无DB版kong的安装使用]]></title><link>https://blog.csdn.net/had__had/article/details/111942413</link><guid>https://blog.csdn.net/had__had/article/details/111942413</guid><author>had__had</author><pubDate>Wed, 30 Dec 2020 09:57:08 +0800</pubDate><description><![CDATA[kong官网：
&nbsp;&nbsp; &nbsp;https://docs.konghq.com/install/centos/?_ga=2.110797315.728319704.1539597667-917309945.1539077269#packages
安装
$ sudo yum update -y
$ sudo yum install -y wget
$ wget https://bintray.com/kong/kong-rpm/rpm -O bintray-kong-kong-rpm.r]]></description><category></category></item><item><title><![CDATA[算法：求两数之和]]></title><link>https://blog.csdn.net/had__had/article/details/110881756</link><guid>https://blog.csdn.net/had__had/article/details/110881756</guid><author>had__had</author><pubDate>Tue, 08 Dec 2020 20:44:28 +0800</pubDate><description><![CDATA[/**
     * 给定一个整数数组 nums 和一个目标值 target ,请你在该数组中找出和为目标值的那两个整数,
     * 并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
     * 给定：nums = [2,7,11,15],target = 9
     * 因为nums[0] + nums[1] = 2+7 = 9
     * 所以返回[0,1]
     */
    public class Solution {
   ...]]></description><category></category></item><item><title><![CDATA[centos操作firewalld]]></title><link>https://blog.csdn.net/had__had/article/details/110821434</link><guid>https://blog.csdn.net/had__had/article/details/110821434</guid><author>had__had</author><pubDate>Mon, 07 Dec 2020 16:26:12 +0800</pubDate><description><![CDATA[启动一个服务：systemctl start firewalld.service
关闭一个服务：systemctlstop firewalld.service
重启一个服务：systemctlrestart firewalld.service
显示一个服务的状态：systemctlstatus firewalld.service
在开机时启用一个服务：systemctlenable firewalld.service
在开机时禁用一个服务：systemctldisable firewalld.service]]></description><category></category></item><item><title><![CDATA[centos查看内存、cpu、版本等]]></title><link>https://blog.csdn.net/had__had/article/details/110111223</link><guid>https://blog.csdn.net/had__had/article/details/110111223</guid><author>had__had</author><pubDate>Wed, 25 Nov 2020 10:05:45 +0800</pubDate><description><![CDATA[查看cpu
#查看CPU
more /proc/cpuinfo | grep "model name"


查看内存
#产看内存
free -m


1是内存总量3788m
2是用了395m
3是空闲的3085m
#查看磁盘空间
df -h


#查看当前linux版本
cat /etc/redhat-release



]]></description><category></category></item><item><title><![CDATA[get、post、put、delete的用法]]></title><link>https://blog.csdn.net/had__had/article/details/110100463</link><guid>https://blog.csdn.net/had__had/article/details/110100463</guid><author>had__had</author><pubDate>Tue, 24 Nov 2020 23:19:55 +0800</pubDate><description><![CDATA[get请求特点：
a. 请求参数会添加到请求资源路径的后面，只能添加少量参数（因为请求行只有一行，大约只能存放2K左右的数据）
b. 请求参数会显示在浏览器地址栏，路由器会记录请求地址 （极为的不安全）
c.如果传输中文，必定会乱码（原因：get请求默认编码格式为：IIO-8859-1,后台编码格式一般为：GBK或者UTF-8）
post请求的特点：
a. 请求参数添加到实体内容里面，可以添加大量的参数（也解释了为什么浏览器地址栏不能发送post请求，在地址栏里我们只能填写URL，并不能进入到Http包的实]]></description><category></category></item><item><title><![CDATA[@RequestBody、@RequestParam和 @Pathvariable区别]]></title><link>https://blog.csdn.net/had__had/article/details/110099735</link><guid>https://blog.csdn.net/had__had/article/details/110099735</guid><author>had__had</author><pubDate>Tue, 24 Nov 2020 23:07:21 +0800</pubDate><description><![CDATA[@RequestBody、@RequestParam和 @Pathvariable区别
@RequestParam
是接受的参数是来自http请求体或者请求url的QueryString中
参数：
@RequestParam有三个配置参数：
required 表示是否必须，默认为 true，必须。
defaultValue 可设置请求参数的默认值。
value 为接收url的参数名（相当于key值）。
@Controller
@RequestMapping("/pets")
@SessionAttribut]]></description><category></category></item><item><title><![CDATA[linux环境变量配置]]></title><link>https://blog.csdn.net/had__had/article/details/110089618</link><guid>https://blog.csdn.net/had__had/article/details/110089618</guid><author>had__had</author><pubDate>Tue, 24 Nov 2020 18:05:20 +0800</pubDate><description><![CDATA[#修改/etc/profile文件,如果你的计算机仅仅作为开发使用时推荐使用这种方法，因为所有用户的shell都有权使用这些环境变量，可能会给系统带来安全性问题。 这里是针对所有的用户的,所有的shell; 
 $ vi /etc/profile 
在里面加入: 
export PATH="$PATH:/my_new_path" 

使用source命令使修改立刻生效：  
source  /etc/profile
=============================================.]]></description><category></category></item><item><title><![CDATA[日志跟踪器（利用spring的aop打印方法调用的开始时间和结束时间，以及耗时）]]></title><link>https://blog.csdn.net/had__had/article/details/109744217</link><guid>https://blog.csdn.net/had__had/article/details/109744217</guid><author>had__had</author><pubDate>Tue, 17 Nov 2020 15:38:35 +0800</pubDate><description><![CDATA[直接上代码：
/**
 * 类名：常量类
 * 用途：用于存储各类常量数据
 */
public class Constants {
    public final static String UTIL_TRACER_INVOKE_METHOD_BEGIN = "&gt;&gt;&gt;&gt;&gt;开始调用:";                           //调用方法开始
    public final static String UTIL_TRACER_INVOKE_METHOD_END]]></description><category></category></item><item><title><![CDATA[HashMap的实现原理]]></title><link>https://blog.csdn.net/had__had/article/details/109732850</link><guid>https://blog.csdn.net/had__had/article/details/109732850</guid><author>had__had</author><pubDate>Mon, 16 Nov 2020 23:48:49 +0800</pubDate><description><![CDATA[HashMap概述：
	HashMap是基于哈希表map接口的非同步实现，并提供可选的映射操作，并且允许使用null值和null键，此类不保证映射的顺序，不保证顺序恒久不变。

#数据结构：
	HashMap实际上是一个“链表散列”，的数据结构，数组和链表的结合体。


从上图可以看出，HashMap的底层就是一个数据结构，数组中的每一项又是一个链表，当新建一个HashMap的时候就会初始化一个数组。
HashMap的存取实现：
public V put(K key, V value) {
2. // Ha]]></description><category></category></item><item><title><![CDATA[java中常见的单词]]></title><link>https://blog.csdn.net/had__had/article/details/109711566</link><guid>https://blog.csdn.net/had__had/article/details/109711566</guid><author>had__had</author><pubDate>Sun, 15 Nov 2020 22:52:33 +0800</pubDate><description><![CDATA[abstract (关键字)            加粗样式 抽象 [’.bstr.kt]
access                            vt.访问,存取 [’.kses]‘(n.入口,使用权)
algorithm                     n.算法 [’.lg.riem]
annotation                     [java]代码注释 [.n.u’tei…n]
anonymous                     adj.匿名的[.'n.nim]]></description><category></category></item><item><title><![CDATA[Lambda表达式]]></title><link>https://blog.csdn.net/had__had/article/details/109522160</link><guid>https://blog.csdn.net/had__had/article/details/109522160</guid><author>had__had</author><pubDate>Thu, 05 Nov 2020 22:35:05 +0800</pubDate><description><![CDATA[一、Lambda表达式简介
什么是Lambda？
Lambda是JAVA 8添加的新特性，说白了，Lambda是一个匿名函数
为什么使用Lambda
使用Lambda表达式可以对一个接口的方法进行非常简洁的实现
Lambda对接口的要求
虽然可以使用Lambda表达式对某些接口进行简单的实现，但是并不是所有的接口都可以用Lambda表达式来实现，要求接口中定义的必须要实现的抽象方法只能是一个
在JAVA8中 ，对接口加了一个新特性：default
可以使用default对接口方法进行修饰，被修饰的方法在接口]]></description><category></category></item></channel></rss>