设计模式 六月 03, 2021

门面模式

文章字数 3.3k 阅读约需 3 mins.

想要办理一些业务的时候,由于程序复杂,需要跑很多地方才能完成一项业务.这时候就想着能不能有个统一的窗口,能按照流程帮我办理好这些业务.这也是政府当下推广的”最多跑一次”服务.

提供一个统一的接口去访问...

查看全文

设计模式 六月 03, 2021

门面模式

文章字数 3.3k 阅读约需 3 mins.

想要办理一些业务的时候,由于程序复杂,需要跑很多地方才能完成一项业务.这时候就想着能不能有个统一的窗口,能按照流程帮我办理好这些业务.这也是政府当下推广的”最多跑一次”服务.

提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。

  • 门面角色:客户端调用这个角色的方法。此角色知晓相关的子系统的功能和责任。正常情况下,本角色会将所有从客户端发来的请求委派到相应的子系统中去。

  • 子系统角色:可以同时有一个或者多个子系统。每个子系统都...

查看全文

设计模式 六月 03, 2021

代理模式

文章字数 15k 阅读约需 14 mins.

​ 在不直接操作对象的情况下,对此对象进行访问.

​ 可以通过引入一个新的对象,来实现对真实对象的操作或者将新的对象作为真实对象的一个替身。即代理对象。它可以在客户端和目标对象之间起到中介的作用,并且可以通过代理对象去掉客户不能看到的内容和服务或者添加客户需要的额外服务.

代理可以提供延迟实例化(lazy instantiation),控制访问, 等等,包括只在调用中传递。

​ 一个处理纯本地资源的代理有时被称作虚拟代理。

​ 远程服务的代理常常称为远程代理。

​ 强制 控制访问的代理称为保护...

查看全文

HELLOWORD 四月 08, 2021

Hello World

文章字数 1.5k 阅读约需 1 mins.

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Create a new post

$ hexo new "My New Post"

More...

查看全文

JVM 四月 08, 2021

jvm

文章字数 17k 阅读约需 15 mins.

  1. calss loading 加载

  2. calss linking连接

    1. verification 验证:验证文件是否符合jvm规范
    2. perparation准备 :静态成员变量赋初始值
    3. resloution解析:将类、方法、属性等符号引用解析为直接引用 常量池中的各种符号引用解析为指针、偏移量等内存地址的直接引用
  3. class initializing 初始化: 将类的静态变量设置初始值,调用静态代码块

  4. 申请对象内存.

  5. 成员变量赋默认值

  6. 调用构造方法

    6.1 成员变量顺序赋初始值

    6...

查看全文

概念 三月 30, 2021

Oauth2 理解

文章字数 3.2k 阅读约需 3 mins.

​ Oauth是一套开放授权的标准/协议. 旨在让用户允许第三方应用去访问该用户存储在另外服务提供者上的用户信息,而不需要将用户名与密码提供给第三方应用. OAuth 2.0是OAuth协议的下一版本, 但不向后兼容OAuth 1.0.

用一句话来讲:

​ Oauth解决的问题是使用授权服务器提供一个访问凭据给到第三方应用,让第三方应用可以在不知道资源所有者资源服务器上的账号和密码的情况下,能获取到资源所有者资源服务器上的受保护资源.

第三方应用授权登录: 当app或者网页接入一些第三方应...

查看全文

OPENRESTY 三月 30, 2021

openresty 入门

文章字数 5.2k 阅读约需 5 mins.

Nginx 是一个主进程配合多个工作进程的工作模式.每个进程由单个线程来处理多个连接.

通过将cpu内核绑定到工作进程上,来提升性能.

预编译安装

参照: http://openresty.org/cn/installation.html

先在centos系统中添加openresty仓库.

  • yum install yum-utils 管理repository及扩展包的工具 (主要是针对repository)
  • yum-config-manager --add-repo https://openresty...
查看全文

SPRING 三月 30, 2021

spring源码下载编译阅读

文章字数 5k 阅读约需 5 mins.

​ 经过了两年多的工作沉淀, 该掌握的技术体系已经能过熟练运用了.但很多时候,都是知道具体的解决方法,至于为什么可以用此方法解决问题却一知半解.

​ 之前也有尝试着看过源码,但debug模式,一步步执行下去后,就被绕晕了.执行到哪了都不知道,有时候又感觉绕回了原来的地方.当然,没有添加自己的注释也是一个很大的原因.给自己当时理解了的地方打上注释,等下次运行到时查看注释帮助理解,再去理解下一步执行的代码.稳扎稳打才是更有效的学习方法.

2.1. 下载spring源码

​ github源码地址: https...

查看全文

文章 三月 30, 2021

java spi 机制

文章字数 6.1k 阅读约需 6 mins.

​ SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制。SPI是一种动态替换发现的机制, 比如有个接口,想运行时动态的给它添加实现,你只需要添加一个实现。我们经常遇到的就是java.sql.Driver接口,其他不同厂商可以针对同一接口做出不同的实现,mysql和postgresql都有不同的实现提供给用户,而Java的SPI机制可以为某个接口寻找服务实现。

如上图所示,接口对应的抽象SPI接口;实现方实现SPI接口;调用方依赖SPI...

查看全文

文章 三月 30, 2021

springboot-配置文件

文章字数 3.2k 阅读约需 3 mins.

resource目录下创建banner.txt文件.在里面替换想要的文案.

可以在中生成想要的文案

  • properties

    格式: key=value

  • yml

    格式: key: value

注解 @ConfigurationProperties @Value
功...
查看全文

文章 三月 30, 2021

springboot-启动流程

文章字数 29k 阅读约需 26 mins.

@SpringBootApplication
public class SampleWebServicesApplication {

    public static void main(String[] args) {
        SpringApplication.run(SampleWebServicesApplication.class, args);
    }

}

run静态方法会先创建一个spring应用对象.再执行具体的应用对象的run方法.

public static...
查看全文
加载更多
0%