<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[u012548939的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u012548939</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u012548939]]></copyright><item><title><![CDATA[Spring框架编译报could not resolve plugin artifact io.spring.dependency-management]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/109046216</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/109046216</guid><author>u012548939</author><pubDate>Tue, 13 Oct 2020 10:43:35 +0800</pubDate><description><![CDATA[spring框架编译的时候，报
Plugin Repositories (could not resolve plugin artifact ‘io.spring.dependency-management:io.spring.dependency-management.gradle.plugin:1.0.5.RELEASE’)
解决办法：
打开配置文件gradle-wrapper.properties将distributionUrl修改
旧：distributionUrl=https://services]]></description><category></category></item><item><title><![CDATA[注解配置整合springmvc源码笔记]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/108966567</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/108966567</guid><author>u012548939</author><pubDate>Thu, 08 Oct 2020 23:12:07 +0800</pubDate><description><![CDATA[启动tomcat后，tomcat会去扫描MATA-INF-》services文件夹下的配置文件

这个类继承了ServletContainerInitializer接口，tomcat会去调用onStartUp方法。

这个方法主要的作用是递归文件夹，并赛选出继承WebApplicationInitializer接口的类

筛选完成之后调用他们的onStartUp方法。

我自己写了一个类，继承了AbstractAnnotationConfigDispatcherServletInitializer，onSt]]></description><category></category></item><item><title><![CDATA[Spring事务的传播和开启]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/108896578</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/108896578</guid><author>u012548939</author><pubDate>Sat, 03 Oct 2020 22:57:54 +0800</pubDate><description><![CDATA[若要开启Spring的事务功能，可以使用Annotation注解的方式开启，@EnableTransactionManagement(proxyTargetClass = false)，

这个注解会自动导入TransactionManagementConfigurationSelector类

然后TransactionManagementConfigurationSelector会去

通过查看父类，可知会在TransactionManagementConfiguration中调用

在调用invoke]]></description><category></category></item><item><title><![CDATA[spring的aop入口]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/108785185</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/108785185</guid><author>u012548939</author><pubDate>Thu, 24 Sep 2020 23:42:24 +0800</pubDate><description><![CDATA[Spring的aop触发是在bdf实例化完成后触发。方法的入口在这里

得先冲aop的入口类跟

先去找该类的切面

首先拿到所有切面

通过这个canApply方法来匹配当前类的切面

eligibleAdvisors当前类的切面，candidateAdvisors是所有切面。
这里是给切面排序

然后记录该类有没有被切面拦截

然后开始生成代理



...]]></description><category></category></item><item><title><![CDATA[spring源码导入报DefaultKotlinSourceSetK和plugin is not in]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/107735464</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/107735464</guid><author>u012548939</author><pubDate>Sat, 01 Aug 2020 19:27:00 +0800</pubDate><description><![CDATA[导入spring源码的时候报了两个错误
错误1 Gradle Core Plugins (plugin is not in ‘org.gradle’ namespace)
修改gradle-wrapper.properties的配置，将gradle的版本与自己本地安装的版本一致。

错误2 org.jetbrains.kotlin.gradle.plugin.sources.DefaultKotlinSourceSetKt的错误
排查了很久发现其原因是build.gradle配置的kotlin版本与自己本地]]></description><category></category></item><item><title><![CDATA[使用工具Mysqldumpslow和pt_query_digest查看MySql慢查询日志]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/107048616</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/107048616</guid><author>u012548939</author><pubDate>Tue, 30 Jun 2020 23:56:37 +0800</pubDate><description><![CDATA[配置了慢查询后，它会记录符合条件的 SQL 包括：
1.查询语句
2.数据修改语句
3.已经回滚得 SQL
查看慢查询日志是否开启
show VARIABLES like '%slow_query_log%'

查看慢查询文件的存放位置
show VARIABLES like '%slow_query_log%'

查看记录慢查询语句的阈值默认为10s
show VARIABLES like '%long_query_time%'

查看是否记录没有使用索引的sql语句
show VARIABLES lik]]></description><category></category></item><item><title><![CDATA[MySql锁等待问题的处理办法]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/107052680</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/107052680</guid><author>u012548939</author><pubDate>Tue, 30 Jun 2020 23:20:09 +0800</pubDate><description><![CDATA[建表
CREATE TABLE testdemo ( `id` int(255) NOT NULL , `c1` varchar(300) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL , `c2` int(50) NULL DEFAULT NULL , PRIMARY KEY (`id`), INDEX `idx_c2` (`c2`) USING BTREE )ENGINE=InnoDB;

insert into testdem]]></description><category></category></item><item><title><![CDATA[Ferderated引擎使用]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/107021086</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/107021086</guid><author>u012548939</author><pubDate>Tue, 30 Jun 2020 22:47:19 +0800</pubDate><description><![CDATA[Ferderated特点
1.提供了访问远程 MySQL 服务器上表的方法。
2.本地不存储数据，数据全存储在远程服务器上。
3.本地要保存表结构和远程连接的信息。
使用场景
的统计分析及手工查询（某些游戏行业）
开启Ferderated
默认是关闭的，需要在mysql配置中添加配置
[root@localhost mall]# vi /etc/my.cnf


跨数据库查询
# 创建一个本地库
create database local;
#创建一个远程库
create database remote;
]]></description><category></category></item><item><title><![CDATA[MySql_Utilities安装与并查看frm格式文件]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/106990227</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/106990227</guid><author>u012548939</author><pubDate>Sun, 28 Jun 2020 19:35:05 +0800</pubDate><description><![CDATA[安装
tar -zxvf mysql-utilities-1.6.5.tar.gz
cd mysql-utilities-1.6.5
python ./setup.py build
python ./setup.py install

连接MySQL服务器
使用mysql_config_editor工具添加如下连接信息：
[root@localhost mysql-utilities-1.6.5]# mysql_config_editor set --login-path=instance_3306 --h]]></description><category></category></item><item><title><![CDATA[CentOS开机启动时执行Shell脚本文件启动MySql多实例服务]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/106973557</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/106973557</guid><author>u012548939</author><pubDate>Sun, 28 Jun 2020 18:31:34 +0800</pubDate><description><![CDATA[编辑my.cnf，将用户名和密码录入到文件中
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin =/usr/local/mysql/bin/mysqladmin
log =/usr/local/mysql/mysqld_multi.log
user=root
pass=root1234%

[mysqld1]
socket = /tmp/mysql1.sock
port = 3307
pid-file = /usr/loc]]></description><category></category></item><item><title><![CDATA[CentOS7安装MySql多实例]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/106969478</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/106969478</guid><author>u012548939</author><pubDate>Fri, 26 Jun 2020 15:35:08 +0800</pubDate><description><![CDATA[安装之前的环境
在安装多实例之前首先先在虚拟机中的服务器里边先安装好一个MySql，端口为3306

开始安装一个新实例
1.在local目录下，创建一个data3文件夹，
cd /usr/local

mkdir data3

请忽略我的data1和data2

到etc修改my.cnf文件，如果没有就创建，
vi my.cnf

将下面的文本粘贴上去
[root@localhost etc]# vi my.cnf

[mysqld_multi]
mysqld = /usr/local/mysql/bin]]></description><category></category></item><item><title><![CDATA[MySql权限分配]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/106963941</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/106963941</guid><author>u012548939</author><pubDate>Fri, 26 Jun 2020 00:20:15 +0800</pubDate><description><![CDATA[MySql权限所涉及的表
mysql.user，mysql.db，mysql.table_priv，mysql_column_priv
最简单的权限
grant SELECT on mall.* TO ‘dev’@‘192.168.159.%’ IDENTIFIED BY ‘123’ WITH GRANT OPTION;
创建一个dev用户，密码为123，只能在运行在网段为192.168.159.*的网段做查询操作。
在执行
show grants for ‘dev’@‘192.168.159.%’
结果：]]></description><category></category></item><item><title><![CDATA[CentOS虚拟机上不网报Name or service not known解决办法]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/106923502</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/106923502</guid><author>u012548939</author><pubDate>Tue, 23 Jun 2020 14:50:50 +0800</pubDate><description><![CDATA[之前虚拟机一直上不了网，虽然service network restart没有报错，物理机可以ping通虚拟机，但是虚拟机ping不通互联网如,ping www.baidu.com时，会报Name or service not known，之前一直以为是NAT没有配好，但是检查了很久NAT应该没有问题，之后谷歌搜了一位大神的解决办法，之后就搞掂了，具体步骤如下
1.Remove the broken symlink:
rm /etc/resolv.conf

2.Create an /etc/Network]]></description><category></category></item><item><title><![CDATA[JVM调优和深入理解性能优化]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/106883471</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/106883471</guid><author>u012548939</author><pubDate>Sun, 21 Jun 2020 23:54:46 +0800</pubDate><description><![CDATA[JVM调优的本质
JVM调优主要调的是稳定，如果系统出现频繁的垃圾回收，这个时候系统是不稳定的，所以需要我们来进行JVM调优，调整垃圾回收的频次。
GC调优原则
1.大多数的java应用不需要GC优化。
2.大部需要GC调优的不是参数问题，而是代码问题。
3.分析GC情况优化代码比优化GC擦书多得多。
4.GC调优是最后手段。
观察需要调优的条件
MinorGC执行时间不到50ms
MinorGC执行不频繁，约10s一次
FullGC执行时间不到1s
FullGC执行频率不算频繁，大于10分钟1次
GC 调]]></description><category></category></item><item><title><![CDATA[idea启动tomcat乱码问题终极解决方案]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/106883089</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/106883089</guid><author>u012548939</author><pubDate>Sun, 21 Jun 2020 11:10:07 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/liu865033503/article/details/81094575
如果以上文章试过了还是不行就这么干
Tomcat conf 下面
logging.properties这个文件
UTF-8改成GBK

]]></description><category></category></item><item><title><![CDATA[JVM执行子程序]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/106773375</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/106773375</guid><author>u012548939</author><pubDate>Tue, 16 Jun 2020 18:45:29 +0800</pubDate><description><![CDATA[Class文件结构
Class文件类
每个 Class 文件的头 4 个字节称为魔数（Magic Number），它的唯一作用是确定这个文件是否为一个能被虚拟机接受的 Class 文件。
后四位代表JDK的版本。
版本推算：
1.34（16进制）=56（十进制）
2.java的版本号从45开始，56-45=7
3.jdk1.1+0.7=jdk1.8
所以可推算class文件适运行在jdk1.8版本中。
虚拟机栈
运行时的栈桢结构
局部变量表
操作数栈
动态连接
方法返回地址

重叠区域，同一个方法调用方法时]]></description><category></category></item><item><title><![CDATA[JVM垃圾回收算法与垃圾回收器]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/106754254</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/106754254</guid><author>u012548939</author><pubDate>Mon, 15 Jun 2020 20:46:03 +0800</pubDate><description><![CDATA[谁要GC？
栈(线程)—不需要GC
堆(对象)——需要GC
方法区（存放字节码常量）——需要GC
GC如何判断对象的存活？
1.使用引用技术算法。
2.可达性分析。
引用计数算法
给对象添加一个引用计数器，当对象增加一个引用时计数器加 1，引用失效时计数器减 1。
优点：快，方便，实现简单。
缺点：：对象相互引用时（A.instance=B 同时 B.instance=A），产生循环引用，很难判断对象是否该回收。
可达性分析
判定对象是否存活的。这个算法的基本思路就是通过一系列的称为“GC Roots”的对]]></description><category></category></item><item><title><![CDATA[JVM中的对象]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/106740064</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/106740064</guid><author>u012548939</author><pubDate>Sun, 14 Jun 2020 20:38:32 +0800</pubDate><description><![CDATA[在java虚拟机中new指令时，对象的分配过程如下：
检查加载-》分配内存-》内存空间初始化-》设置-》对象初始化。
检查加载
先执行相应的类加载过程，如果没有，则进行类加载。
分配内存
根据方法区的信息确定为该类分配内存空间大小。
内存分配方式可分为“指针碰撞”和“空闲列表”两种方式。
指针碰撞：java 堆内存空间规整的情况下使用。
空闲列表：java堆空间不规整的情况下使用。
如下图：

具体使用哪种方式分配内存与使用的GC机制有关。
在多线程环境下创建对象，虚拟机如何保证线程安全？
在多线程环境下，]]></description><category></category></item><item><title><![CDATA[java字节码文件解读]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/106731598</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/106731598</guid><author>u012548939</author><pubDate>Sat, 13 Jun 2020 23:04:51 +0800</pubDate><description><![CDATA[有一个简单的main方法
public class ConstantPool {
    public static void main(String[] args) {
        String b = "卧虎";
        String a = b + "藏龙";
        System.out.println(a.intern() == a);
    }
}


使用javac指定编译，将生成字节码文件ConstantPool.class
javac ConstantPool.jav]]></description><category></category></item><item><title><![CDATA[JVM内存区域]]></title><link>https://blog.youkuaiyun.com/u012548939/article/details/106725573</link><guid>https://blog.youkuaiyun.com/u012548939/article/details/106725573</guid><author>u012548939</author><pubDate>Sat, 13 Jun 2020 00:47:04 +0800</pubDate><description><![CDATA[虚拟机的发展
Hotspot VM是当今使用最广泛Java虚拟机。
程序计数器的作用
记录线程的执行进度，确保多线程程序正常执行。
为什么JVM使用栈
因为使用栈可以兼容方法调用方法的特点。
JVM运行时序图

局部变量表：存放我们的局部变量的。主要存放Java的八大基础数据类型，如果是Object对象，我们只需要存放引用类型地址。
操作数栈：存放方法执行的操作数。
动态链接：Java语言特定多态，需要类加载、运行时才能确定具体的方法。
返回地址：调用程序计数器中的地址为返回。
本地方法栈：各虚拟机自由实现]]></description><category></category></item></channel></rss>