- 博客(19)
- 资源 (5)
- 收藏
- 关注
转载 观察者模式(Observer模式)详解
在现实世界中,许多对象并不是独立存在的,其中一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变。例如,某种商品的物价上涨时会导致部分商家高兴,而消费者伤心;还有,当我们开车到交叉路口时,遇到红灯会停,遇到绿灯会行。这样的例子还有很多,例如,股票价格与股民、微信公众号与微信用户、气象局的天气预报与听众、小偷与警察等。在软件世界也是这样,例如,Excel 中的数据与折线图、饼状图、...
2019-08-30 15:15:27 1510
转载 Dubbo源码分析——服务发布
了解服务发布Dubbo官方文档说明了服务提供者暴露服务的主过程,如图所示:首先ServiceConfig类拿到对外提供服务的实际类ref(如:HelloWorldImpl),然后通过ProxyFactory类的 getInvoker方法使用ref生成一个AbstractProxyInvoker实例,到这一步就完成具体服务到Invoker的转化。接下来就是Invoker转换到Export...
2019-08-28 17:34:52 182
转载 dubbo源码--如何与spring无缝对接
官方api说明:Dubbo 采用全 Spring 配置方式,透明化接入应用,对应用没有任何 API 侵入,只需用 Spring 加载 Dubbo 的配置即可,Dubbo 基于Spring 的 Schema 扩展进行加载。在使用dubbo的时候会有两个配置文件,provider.xml和consumer.xml文件。dubbo是怎么解析这两个xml的呢?细心的你估计看到了,这...
2019-08-28 16:27:41 513
转载 高并发设计思想之Future模式
并行程序设计模式并行设计模式是设计优化的一部分,在大型 JAVA企业级应用中,对常用的多线程结构的总结和抽象。与串行程序相比,并行程序的结构通常更为复杂。合理地使用并行模式在多线程开发中,对应用的底层架构代码搭建有着牢固地基的作用。把公开课的内容整理了一下,希望对大家有帮助。先来思考两个问题,也许在面试中你会被问到。问题一:你在实际开发中遇到并行设计问题吗?问题二:如果遇到,你是如何在...
2019-08-28 09:58:49 438
转载 Druid数据库连接池源码分析
上一篇文章重点介绍了一下Java的Future模式,最后意淫了一个数据库连接池的场景。本想通过Future模式来防止,当多个线程同时获取数据库连接时各自都生成一个,造成资源浪费。但是忽略了一个根本的功能,就是多个线程同时调用get方法时,得到的是同一个数据库连接的多个引用,这会导致严重的问题。 所以,我抽空看了看呼声很高的Druid的数据库连接池实现,当然关注点主要是多线程方面的处理。我觉得...
2019-08-27 18:37:43 722
转载 Java的Future模式 理论逻辑原理
现在我们设计一个场景:假如你突然想做饭,但是没有厨具,也没有食材。网上购买厨具比较方便,食材去超市买更放心。实现分析:在快递员送厨具的期间,我们肯定不会闲着,可以去超市买食材。所以,在主线程里面另起一个子线程去网购厨具。但是,子线程执行的结果是要返回厨具的,而run方法是没有返回值的。所以,这才是难点,需要好好考虑一下。模拟代码1:package test;public ...
2019-08-27 18:22:47 203
原创 Java主线程与线程池的任务同步机制
在Java中多线程实现的方式有三种,分别为1、继承Thread类型实现多线程的业务方法,2、实现Runnable接口服务重写run()方法实现多线程的业务3、实现Callable接口重写run()方法实现多线程的业务而主线程和子线程的同步策略有两种方式:1、通过主线程在启用子线程的时候,我们给子线程一个指定的信号量,标志当前子线程的处理状态,而主线程通过定时的访问该信号量判断子...
2019-08-26 16:05:01 1472
原创 jenkins构建任务进行自动化部署
1、在使用Jenkins进行自动化部署时,我们需要在Jenkins的所在服务其,配置好可以使用的maven环境如我本地配置:https://blog.csdn.net/qq_31854907/article/details/85014708(这是Windows安装maven的方法,Linux也是类似)2、准备好Jenkins的的运行环境,我这里Jenkins的部署方式是使用Jenkin...
2019-08-26 14:44:00 614
转载 Jenkins Unknown lifecycle phase "mvn". You must specify a valid lifecycle phase or a goal in the fo
Unknown lifecycle phase "mvn". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-ver...
2019-08-23 16:48:44 2119
原创 jenkins安装
这里我采用的是使用war进行Jenkins环境的部署:1、下载安装包:https://jenkins.io/zh/download/2、Jenkins的服务有两种启动方2.1、使用java指令进行服务的静默运行启动:java -jar jenkins.war –httpPort=8888 &但是会出现各种问题不方便解决2.2、使用tomcat进行运行服务3、准备...
2019-08-22 14:22:56 773
原创 spring 容器加载源文案解释(第三章AbstractApplicationContext)
AbstractApplicationContextpackage org.springframework.context.support;/** 抽象实现{@link org.springframework.context. context}*接口。 不强制要求配置使用的存储类型;简单的实现公共上下文功能。使用模板方法设计模式,*需要具体的子类来实现抽象方法。** 与普通的Bean...
2019-08-13 19:20:56 562
原创 spring 容器加载源文案解释(第二章ContextLoader )
package org.springframework.web.context;/*** 为根应用程序上下文执行实际的初始化工作。* Called by {@link ContextLoaderListener}.** 在{@code web中查找{@link #CONTEXT_CLASS_PARAM "contextClass"}参数。* 返回到{@link org.s...
2019-08-13 19:16:49 906
原创 spring 容器加载源文案解释(第一章ContextLoaderListener )
ContextLoaderListenerpackage org.springframework.web.context;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;/** * 引导监听器启动和关闭Spring的root {@link WebApplic...
2019-08-13 19:14:23 178
原创 MySQL索引使用说明(单列索引和多列索引)
1. 单列索引在性能优化过程中,选择在哪些列上创建索引是最重要的步骤之一。可以考虑使用索引的主要有两种类型的列:在Where子句中出现的列,在join子句中出现的列。请看下面这个查询: 1 2 3 Select age ## 不使用索引 FROM people Where firstname='Mike' ## 考虑使用索引 ...
2019-08-09 11:46:17 334
原创 Spring源码2:发布启动事件进行业务的监控与拓展
在spring boot实现对监控与拦截器的aop切入spring boot提供了两大种监控的切入方式:1. 发布启动事件ApplicationStartingEvent1.1 SpringApplicationRunListeners源码1.2 EventPublishingRunListener源码1.3 SimpleApplicationEventMu...
2019-08-07 17:41:55 190
转载 Spring源码2:发布启动事件ApplicationStartingEvent
目录1. 发布启动事件ApplicationStartingEvent1.1 SpringApplicationRunListeners源码1.2 EventPublishingRunListener源码1.3 SimpleApplicationEventMulticaster源码2. 启动事件的监听器2.1 LoggingApplicati...
2019-08-07 11:30:12 1387
转载 Spring源码1:初始化SpringApplication实例
目录1. 项目结构2. 启动SpringApplication3. SpringApplication构造函数3.1 通过加载各个Web类型的容器类,判断当前模块web类型3.2 加载Application初始化器3.3 加载Application监听器3.4 找到启动类4. 返回结果5. 总结1. 项目结构本文基于spr...
2019-08-07 11:22:03 270
转载 Spring源码0. springboot启动流程以及源码剖析目录
前言当我们使用springboot的时候, 我们只需要配置如下启动类, spring便可以配置所有的环境和上下文, 本文基于springboot2.1.3, 剖析spring的启动流程和原理@SpringBootApplicationpublic class YanggxApplication { public static void main(String[] args) {...
2019-08-07 11:13:15 238
原创 Redis数据过期策略详解
本文对Redis的过期机制简单的讲解一下 讲解之前我们先抛出一个问题,我们知道很多时候服务器经常会用到redis作为缓存,有很多数据都是临时缓存一下,可能用过之后很久都不会再用到了(比如暂存session,又或者只存放日行情股票数据)那么就会出现一下几个问题了Redis会自己回收清理不用的数据吗? 如果能,那如何配置? 如果不能,如何防止数据累加后大量占用存储空间的问题? 之前一直...
2019-08-02 09:28:31 197
postgreSQL中文操作手册
2017-01-13
postrgeSQL pgadmin操作手册
2017-01-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人