<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[海恩的博客]]></title><description><![CDATA[生活就像海洋，只有掌握方向的人，才能到达彼岸。]]></description><link>https://blog.youkuaiyun.com/jiachunchun</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jiachunchun]]></copyright><item><title><![CDATA[Element UI三十一Avatar头像]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/115368069</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/115368069</guid><author>jiachunchun</author><pubDate>Thu, 01 Apr 2021 10:20:46 +0800</pubDate><description><![CDATA[简介

el-avatar：该组件用于设置图标、图片或文字来展示用户或事物信息。其属性表入下，


其子组件的slot属性取值：


基础用法

通过shape和size属性可设置头像的形状和大小：

            &lt;el-row&gt;
                &lt;el-col :span="12"&gt;
                    &lt;div&gt;circle&lt;/div&gt;
                    &lt;div&gt;
    ]]></description><category></category></item><item><title><![CDATA[Element UI三十二Alert警告]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/110276042</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/110276042</guid><author>jiachunchun</author><pubDate>Sat, 28 Nov 2020 14:51:33 +0800</pubDate><description><![CDATA[简介

el-alert：用于在页面中展示重要的提示信息，实际不局限于警告信息的。它是页面中的非浮层元素，不会自动消失的。其属性表如下，


其子组件的slot属性取值如下，


基础示例

通过type属性指定不同主题，默认为info。

        &lt;div&gt;
            &lt;el-alert type="success" title="成功提示的文案"&gt;&lt;/el-alert&gt;
            &lt;el-alert type="info" t]]></description><category></category></item><item><title><![CDATA[Element UI三十三Loading加载]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/110275981</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/110275981</guid><author>jiachunchun</author><pubDate>Sat, 28 Nov 2020 14:51:02 +0800</pubDate><description><![CDATA[简介

在Element中，并没有提供组件用于加载，而是通过指令或服务的方法调用Loading。指令指的是v-loading，它需要绑定一个Boolean。默认情况下，Loading遮罩会插入到绑定元素的子节点，若添加body修饰符则可以使遮罩插入DOM中的body上。

        &lt;el-table v-loading="loading" :data="tableData" style="width: 100%;"&gt;
            &lt;el-table-column pro]]></description><category></category></item><item><title><![CDATA[Element UI三十四Message消息提示]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/110275863</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/110275863</guid><author>jiachunchun</author><pubDate>Sat, 28 Nov 2020 14:50:34 +0800</pubDate><description><![CDATA[简介

Element在Vue实例内注册了一个$message方法用于主动操作后的反馈提示，与Notification的区别是后者更多用于系统级通知的被动提醒。

基础用法

$message方法接收一个字符串或对象作为参数，并将其显示为正文内容（当入参为对象时，将其‘message’字段显示为正文，该字段值可以是一个字符串或VNode）。从顶部弹出，默认3s后自动消失。

        &lt;div&gt;
            &lt;el-button :plain="true" @click=]]></description><category></category></item><item><title><![CDATA[Element UI三十五MessageBox弹框]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/110275798</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/110275798</guid><author>jiachunchun</author><pubDate>Sat, 28 Nov 2020 14:49:35 +0800</pubDate><description><![CDATA[简介

MessageBox实际是一套对话框组件的概称，包括alert,alert,alert,confirm,prompt以及最基础的prompt以及最基础的prompt以及最基础的msgbox四种方法，适合展示较为简单的内容。

消息提示

通过$alert方法在用户要进行某个操作时弹出对话框中断该操作，直到用户确认知晓后才可真正执行。它接收两个参数message和title，表示弹框内容和标题。注意，当窗口被关闭后，该方法默认返回一个Promise对象用于进行后续操作的处理，如不确定浏览器是否支持Pr]]></description><category></category></item><item><title><![CDATA[Element UI三十六Notification通知]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/110275733</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/110275733</guid><author>jiachunchun</author><pubDate>Sat, 28 Nov 2020 14:49:04 +0800</pubDate><description><![CDATA[简介

Element注册了$notify方法用于显示悬浮在页面角落的通知提醒消息，是适用性广泛的通知栏。

基础用法

该方法接收一个options对象，通过添加title和message字段可设置通知的标题和正文。默认经过一段时间后通知栏会自动关闭，通过duration字段可控制关闭的时间间隔，如设为0则表示不自动关闭，默认为4500ms。

    &lt;template&gt;
        &lt;div&gt;
            &lt;el-button plain @click="]]></description><category></category></item><item><title><![CDATA[Element UI三十七NavMenu导航菜单]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/110275499</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/110275499</guid><author>jiachunchun</author><pubDate>Sat, 28 Nov 2020 14:47:57 +0800</pubDate><description><![CDATA[简介


el-menu：该组件为网站提供导航功能的菜单。其属性表入下，







el-submenu:子菜单，其属性表如下，





el-menu-item:菜单项，其属性入下，





el-menu-group:为菜单分组，其属性表如下，





顶栏

通过mode属性可将导航菜单设置为水平模式，默认垂直。使用el-submenu组件可生成二级菜单。通过background-color、text-color和active-text-color属性可分别设置菜单的背景色、文字颜色和当前激]]></description><category></category></item><item><title><![CDATA[三对象创建与回收]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/106813200</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/106813200</guid><author>jiachunchun</author><pubDate>Wed, 17 Jun 2020 16:58:04 +0800</pubDate><description><![CDATA[创建对象流程

一个对象的创建过程一般如下：


首先是代码执行到new关键词，于是根据new后面的参数到常量池总定位该类的符号引用。
如果没有找到这个符号引用，说明类还没被加载，那么进行类的加载、连接和初始化。
然后jvm为实例在堆中分配内存，并把该内存空间都初始化为0值。
初始化后，jvm会进行一些必要的设置，如，把这个对象是哪个类的实例、在GC中的分代年龄信息放到对象头中。
通过构造函数对该对象进行初始化。

为实例分配内存

在堆中给实例分配内存的方式有两种：指针碰撞和空闲列表。具体使用哪一种，就要]]></description><category></category></item><item><title><![CDATA[二类的生命周期]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/106813169</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/106813169</guid><author>jiachunchun</author><pubDate>Wed, 17 Jun 2020 16:57:35 +0800</pubDate><description><![CDATA[简介

Java中类的生命周期为加载（装载）、连接、初始化、使用和卸载5个过程。


加载：jvm使用类加载器ClassLoader，从.class（不要求必为class文件，也可以是jar包，war包，jsp文件等）读取字节码数据到堆中方法区，其中静态数据会被转化为方法区的运行时数据结构，然后在堆区创建一个java.lang.Class对象，作为方法区中该类信息的入口。




时机：并不强制约束何时进行加载，不过，当执行以下操作时，类会被加载：


（1） 通过命令行启动应用时，jvm加载含有main方]]></description><category></category></item><item><title><![CDATA[一Java内存模型]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/106813124</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/106813124</guid><author>jiachunchun</author><pubDate>Wed, 17 Jun 2020 16:56:57 +0800</pubDate><description><![CDATA[JDK,JRE,JVM

JDK：JavaSEDevelopmentKit，Java开发工具，提供了编译和运行Java程序所需的各种资源和工具，包括JRE和Java开发工具。
JRE：JavaRuntimeEnvironment，Java运行环境，包括JVM和Java核心类库。
JVM：JavaVisualMachine，运行Java程序的核心虚拟机。


Java内存模型


首先了解一下计算机中的存储模型。


RAM：易挥发性随机存取存储器（Random access Memory），即可以往存储器中]]></description><category></category></item><item><title><![CDATA[第1章 初识微服务]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/105412981</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/105412981</guid><author>jiachunchun</author><pubDate>Thu, 09 Apr 2020 16:05:22 +0800</pubDate><description><![CDATA[1-2 软件架构的进化


软件架构是在软件的内部，经过综合各种因素的考量、权衡，选择特定的基数，将系统划分为不同的部分并使这些部分相互分工，彼此协作，为用户提供需要的价值。


因素：业务需求、技术栈（公司人员会的技术）、成本、组织架构、可扩展性、可维护性。


软件架构进化：

一层架构
MVC
dubbo：前后端分离



单体架构（单块架构）：功能、业务集中在一个发布包（jar、war），...]]></description><category></category></item><item><title><![CDATA[Dubbo七服务集群实现负载均衡]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/104192880</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/104192880</guid><author>jiachunchun</author><pubDate>Thu, 06 Feb 2020 10:52:20 +0800</pubDate><description><![CDATA[集群适用场景：并发量特别大的项目。


模拟集群：idea运行一个发布端口为20880的provider，然后编辑代码换一下端口，再运行一个provider。
//dubbo-demo-provider.xml修改发布端口
&lt;dubbo:protocol name=“dubbo” port=“20881” /&gt;
//项目启动类ProviderTest修改打印信息
System.ou...]]></description><category></category></item><item><title><![CDATA[Dubbo六接口抽取及依赖版本一致]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/104192869</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/104192869</guid><author>jiachunchun</author><pubDate>Thu, 06 Feb 2020 10:51:15 +0800</pubDate><description><![CDATA[接口抽取


前面第三章发布服务和第五章消费我们发现，在服务方要暴露某个接口时，我们写了一个接口文件，在消费方要调用接口时，我们又写了一个一样的接口文件来接收接口，现在，我们要把这些公共的接口抽取出来，单独放到一个项目里面。


新建项目my-dubbo-demo-api，把接口按原来的包路径放进去，把服务方和消费方的接口文件都删除。


maven install该项目，然后把该项目作为依赖添加...]]></description><category></category></item><item><title><![CDATA[Dubbo五消费Dubbo服务]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/104192854</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/104192854</guid><author>jiachunchun</author><pubDate>Thu, 06 Feb 2020 10:50:39 +0800</pubDate><description><![CDATA[第三章讲了服务的的发布，相当于服务的生成，有生产就要有消费，接下来我们讲服务的消费。消费其实就是一个远程调用服务的过程。


参考官方代码，我们新建一个项目来实现服务的消费。


pom：去掉官方一些用不上的。
  
      
          com.alibaba
          dubbo
          2.6.0
      
      
          com....]]></description><category></category></item><item><title><![CDATA[Dubbo四Admin管理控制台]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/104192836</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/104192836</guid><author>jiachunchun</author><pubDate>Thu, 06 Feb 2020 10:49:48 +0800</pubDate><description><![CDATA[admin管理控制台：用于管理服务、消费、配置。


从"项目根目录"拿到war包，解压到tomcat/webapp/ROOT/下直接运行（以前都是复制war包到webapp/下运行的，现在直接把ROOT/下的东西删光贴文件上去）。





这样就把原来tomcat的默认主页给换成我们自己的项目了，也就是dubbo admin管理控制台。


启动zookeeper、tomcat（执行bin...]]></description><category></category></item><item><title><![CDATA[Dubbo三发布dubbo服务]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/104192828</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/104192828</guid><author>jiachunchun</author><pubDate>Thu, 06 Feb 2020 10:48:48 +0800</pubDate><description><![CDATA[首先把github上的源码下为zip包，这里我们选2.6.0版本。


我们准备仿写dubbo-demo/dubbo-demo-provider，这个是服务的提供方。


用eclipse开发，新建一个其他-&gt;maven项目，右键项目-&gt;构建项目路径，把原本为1.5的JRE移除，然后add library，选择jre 系统库，选中工作空间缺省JRE（1.8jre）。


额然后添加...]]></description><category></category></item><item><title><![CDATA[Dubbo二zookeeper安装]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/104192814</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/104192814</guid><author>jiachunchun</author><pubDate>Thu, 06 Feb 2020 10:47:58 +0800</pubDate><description><![CDATA[简介


zookeeper是一个分布式、开源的分布式应用程序协调服务。


目标：封装好复杂易出错的关键服务，将简单易用的接口和性能高效、功能稳定的系统提供给用户。


开发时再Windows下测试，但运行要到Linux上。


安装

官网不断找Download字样，点击来到以下页面，选择第一个镜像：




如有阿法beta版，为公测版和内测版，我们应选择没有这些后缀的稳定版，点进去，下载压...]]></description><category></category></item><item><title><![CDATA[Dubbo一简介]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/104192804</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/104192804</guid><author>jiachunchun</author><pubDate>Thu, 06 Feb 2020 10:47:25 +0800</pubDate><description><![CDATA[简介


Dubbo是阿里巴巴公司开源的一个服务框架，可以进行服务的管理，使得应用可通过高性能的RPC（remote procedure call，远程调用），实现服务的输入输出功能。


可以和spring框架无缝集成。


官网


github代码地址,在分支那里选择tag看最新版本。


用户手册


架构



首先有很多个provider服务的提供方，它们需要先到zookeeper中注...]]></description><category></category></item><item><title><![CDATA[Oracle一安装]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/104192791</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/104192791</guid><author>jiachunchun</author><pubDate>Thu, 06 Feb 2020 10:46:18 +0800</pubDate><description><![CDATA[安装

锋哥已经整理好压缩包，地址，把压缩包下载下来，解压，得到"Oracle 11g 64位"文件夹，其下下层包含setup.exe，运行，回到桌面，看到安装向导开始运行了（可能还会同时被提醒：ins-13001环境不满足最低要求，直接忽略，继续安装）。
跳过邮箱填写直接下一步：



默认下一步来到以下，换个安装目录E:/Oracle，管理口令设为123456：




忽略提示：管理口令不符...]]></description><category></category></item><item><title><![CDATA[ThreadLocal]]></title><link>https://blog.youkuaiyun.com/jiachunchun/article/details/94584405</link><guid>https://blog.youkuaiyun.com/jiachunchun/article/details/94584405</guid><author>jiachunchun</author><pubDate>Wed, 03 Jul 2019 18:07:28 +0800</pubDate><description><![CDATA[简介


线程本地变量，或线程本地存储，可以为变量在每个线程中都创建一个副本，使每个线程都可以访问自己内部的副本变量。


举个例子：
  class ConnectionManager {

      private static Connection connect = null;
       
      public static Connection openConnection()...]]></description><category></category></item></channel></rss>