<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[June的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/weflycaoyang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; weflycaoyang]]></copyright><item><title><![CDATA[Spring @Enable原理解析，实现一个简单的MyFeginClient模块]]></title><link>https://blog.youkuaiyun.com/weflycaoyang/article/details/100174025</link><guid>https://blog.youkuaiyun.com/weflycaoyang/article/details/100174025</guid><author>weflycaoyang</author><pubDate>Sat, 31 Aug 2019 16:42:03 +0800</pubDate><description><![CDATA[@EnableXXX在spring项目中很常见，下面看看它背后的原理，其实它的实现离不开spring bean的生命周期。

1、定义@MyFeginClientScanner注解，修饰接口，表示接口使用动态代理生成实例。


@Documented
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @...]]></description><category></category></item><item><title><![CDATA[Spring Mybatis Mapper原理]]></title><link>https://blog.youkuaiyun.com/weflycaoyang/article/details/100173532</link><guid>https://blog.youkuaiyun.com/weflycaoyang/article/details/100173532</guid><author>weflycaoyang</author><pubDate>Sat, 31 Aug 2019 16:01:29 +0800</pubDate><description><![CDATA[使用mybatis时dao层（public interface SysUserMapper extends BaseMapper&lt;SysUser&gt;）是一个接口，那么它是怎么实例化的呢？其实@FeignClient(value = "service-provider")注解的接口，也是利用这样的原理，动态代理实现的。接口的实例化是通过FactoryBean实现的，Facto...]]></description><category></category></item><item><title><![CDATA[Centos7安装Docker]]></title><link>https://blog.youkuaiyun.com/weflycaoyang/article/details/88543672</link><guid>https://blog.youkuaiyun.com/weflycaoyang/article/details/88543672</guid><author>weflycaoyang</author><pubDate>Sat, 20 Apr 2019 16:33:51 +0800</pubDate><description><![CDATA[一、安装 Docker

1.1、安装docker


# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# mv docker-ce.repo /etc/yum.repos.d/
# yum install -y docker

1.2、启动 docker 守护进程及设置开机启动。


#systemc...]]></description><category></category></item><item><title><![CDATA[ubuntu 18.04LTS远程访问和设置静态IP]]></title><link>https://blog.youkuaiyun.com/weflycaoyang/article/details/83868929</link><guid>https://blog.youkuaiyun.com/weflycaoyang/article/details/83868929</guid><author>weflycaoyang</author><pubDate>Thu, 08 Nov 2018 22:32:31 +0800</pubDate><description><![CDATA[一、远程访问

        1、安装openssh-server


sudo apt install openssh-server

       2、启动service ssh restart


service ssh restart

二、设置静态IP（ubuntu 18.04LTS采用的是netplan来管理network）

       1、编辑/etc/netplan/01-n...]]></description><category></category></item><item><title><![CDATA[Centos7安装redis]]></title><link>https://blog.youkuaiyun.com/weflycaoyang/article/details/52810207</link><guid>https://blog.youkuaiyun.com/weflycaoyang/article/details/52810207</guid><author>weflycaoyang</author><pubDate>Thu, 13 Oct 2016 21:17:44 +0800</pubDate><description><![CDATA[redis源码以及文档：https://github.com/antirez/redis 
一、redis编译需要gcc，因此先安装gcc # yum install gcc 
二、我这里安装到/user/local

#cd /usr/local
#yum install wget
#wget http://download.redis.io/releases/redis-3.2.4.tar.g]]></description><category></category></item><item><title><![CDATA[Centos7配置静态IP]]></title><link>https://blog.youkuaiyun.com/weflycaoyang/article/details/52810053</link><guid>https://blog.youkuaiyun.com/weflycaoyang/article/details/52810053</guid><author>weflycaoyang</author><pubDate>Thu, 13 Oct 2016 21:00:20 +0800</pubDate><description><![CDATA[一、Centos7配置静态ip 
       1、编辑 ifcfg-eno16777736(可能网卡配置文件名不一样，视具体情况而定）



# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736

2、修改为如下：

TYPE=Ethernet
BOOTPROTO=static #修改dhcp为static
DEFROUTE=yes
IPV4]]></description><category></category></item><item><title><![CDATA[Description	Resource	Path	Location	Type Cannot change version of project facet Dynamic Web Module to]]></title><link>https://blog.youkuaiyun.com/weflycaoyang/article/details/52780984</link><guid>https://blog.youkuaiyun.com/weflycaoyang/article/details/52780984</guid><author>weflycaoyang</author><pubDate>Mon, 10 Oct 2016 19:35:22 +0800</pubDate><description><![CDATA[eclipse里找到先.setting文件夹下的  org.eclipse.wst.common.project.facet.core.xml文件 



faceted-project>
  fixed facet="wst.jsdt.web"/>
  installed facet="jst.web" version="2.3"/>
  installed facet="wst.jsdt.we]]></description><category></category></item><item><title><![CDATA[python virtualenv虚拟化环境]]></title><link>https://blog.youkuaiyun.com/weflycaoyang/article/details/52771621</link><guid>https://blog.youkuaiyun.com/weflycaoyang/article/details/52771621</guid><author>weflycaoyang</author><pubDate>Sun, 09 Oct 2016 22:49:03 +0800</pubDate><description><![CDATA[系统中安装好python3.5之后，使用pip或easy_install命令安装的包都会安装到python目录下的site-packages中去。如果我们开发很多个应用，想没个应用都有一个独立的运行环境怎么办呢，这时我们就可以使用virtualenv来创建相互独立的运行环境。 
一、python3.5默认安装时已经安装了pip,因此可以 
       python -m pip install –]]></description><category></category></item><item><title><![CDATA[java多线程：synchronized]]></title><link>https://blog.youkuaiyun.com/weflycaoyang/article/details/52503301</link><guid>https://blog.youkuaiyun.com/weflycaoyang/article/details/52503301</guid><author>weflycaoyang</author><pubDate>Sun, 11 Sep 2016 12:12:02 +0800</pubDate><description><![CDATA[一、synchronized的使用 
java的synchronized关键字能够修饰方法和语句块，也就是同步方法和同步语句块。synchronized()并不是保护数据不被访问，只是保证同一时刻只有一个线程在运行。 
 1. 数据私有 
 2. 所有的访问都同步化 
 3. 用数据本身做钥匙 
synchronized (object) { // } 钥匙在对象中，而不在代码中。 每个对象有一个]]></description><category></category></item><item><title><![CDATA[java多线程：中断]]></title><link>https://blog.youkuaiyun.com/weflycaoyang/article/details/52502242</link><guid>https://blog.youkuaiyun.com/weflycaoyang/article/details/52502242</guid><author>weflycaoyang</author><pubDate>Sun, 11 Sep 2016 08:53:27 +0800</pubDate><description><![CDATA[一、java中终止线程主要有三种方法： 
①线程正常退出，即run()方法执行完毕了 
②使用Thread类中的stop()（已过期不推荐使用）方法强行终止线程。 
③使用中断机制 
t.stop()调用时，终止线程，会导致该线程所持有的锁被强制释放，从而被其他线程所持有，因此有可能导致与预期结果不一致。下面使用中断信号量中断非阻塞状态的线程中：public class TestStopThread]]></description><category></category></item><item><title><![CDATA[java多线程：wait()，notify()，notifyAll()方法]]></title><link>https://blog.youkuaiyun.com/weflycaoyang/article/details/52497730</link><guid>https://blog.youkuaiyun.com/weflycaoyang/article/details/52497730</guid><author>weflycaoyang</author><pubDate>Sat, 10 Sep 2016 23:02:52 +0800</pubDate><description><![CDATA[java.lang.Object类中提供了两个用于线程通信的方法：wait()和notify()。如果线程对一个同步对象this发出一个wait()调用，该线程会暂停执行，直到另一个线程对同一个同步对象this也发出一个notify()调用，释放加在对象上的“锁”。 
为了让线程对一个对象调用wait()或notify()，线程必须锁定那个特定的对象。 
也就是说，只能在它们被调用的实例的同步块内使]]></description><category></category></item><item><title><![CDATA[java多线程：创建、join方法]]></title><link>https://blog.youkuaiyun.com/weflycaoyang/article/details/52497580</link><guid>https://blog.youkuaiyun.com/weflycaoyang/article/details/52497580</guid><author>weflycaoyang</author><pubDate>Sat, 10 Sep 2016 22:48:28 +0800</pubDate><description><![CDATA[一、进程和线程的区别 
进程：每个进程都有独立的代码和数据空间（进程上下文），进程间的切换会有较大的开销，一个进程包含1–n个线程。 
线程：同一类线程共享代码和数据空间，每个线程有独立的运行栈和程序计数器(PC)，线程切换开销小。 
线程和进程一样分为五个阶段：创建、就绪、运行、阻塞、终止。 
新建状态（New）：新建的线程处于新建状态，如：Thread t = new MyThread();]]></description><category></category></item><item><title><![CDATA[Python函数参数的传递]]></title><link>https://blog.youkuaiyun.com/weflycaoyang/article/details/44808517</link><guid>https://blog.youkuaiyun.com/weflycaoyang/article/details/44808517</guid><author>weflycaoyang</author><pubDate>Wed, 01 Apr 2015 16:06:56 +0800</pubDate><description><![CDATA[Python函数参数与命令行参数ython中函数参数的传递是通过赋值来传递的。python中函数参数的定义主要有四种方式：
1.F(arg1,arg2,...) 
函数调用时必须与括号内参数个数相同，且顺序相同。 

def fun(x,y):
    print(x,y)
fun(1,2)调用该函数，fun(1,2)则x取1，y取2，fun(1)或者fun(1,2,3)则会报错。 
2]]></description><category></category></item><item><title><![CDATA[org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter报错]]></title><link>https://blog.youkuaiyun.com/weflycaoyang/article/details/44316299</link><guid>https://blog.youkuaiyun.com/weflycaoyang/article/details/44316299</guid><author>weflycaoyang</author><pubDate>Mon, 16 Mar 2015 22:24:07 +0800</pubDate><description><![CDATA[Maven开发web项目时调试开启tomcat时爆出异常：
java.lang.ClassCastException: org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filt




原因是由于tomcat 启动时先加载tomcat/lib下的jar包，如果w]]></description><category></category></item><item><title><![CDATA[递归算法求幂]]></title><link>https://blog.youkuaiyun.com/weflycaoyang/article/details/44197899</link><guid>https://blog.youkuaiyun.com/weflycaoyang/article/details/44197899</guid><author>weflycaoyang</author><pubDate>Wed, 11 Mar 2015 13:56:31 +0800</pubDate><description><![CDATA[1. 迭代算法
public static int power(int n,int m){
		int temp=1;
		for(int i=0;i<m;i++)
			temp*=n;
		return temp;
	}2. 递归算法 
n^m == n^((m/2) * 2)
n^m == (n^(m/2))^2
因此采用递归算法：
m为偶数： n^m = n^(m/2) *  n]]></description><category></category></item></channel></rss>