0%

Design-Pattern 学习笔记

设计模式是什么

百科:是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结

设计模式有什么用

在项目开发中构建一个优秀的系统最困难之处不在于编码(coding),而是在早期做出的设计(design)上的决定。
设计是软件开发生命周期中的关键阶段,好的设计能产生好的产品,而不当的设计则会影响最终产品的质量。
设计模式是拥有多年开发设计经验的人给我们的经验传承,它是作为专家的建议而引入的,它背后的真正威力是其对真实世界的抽象。
如果我们没有足够的经验,我们很难做出好的设计,但是富有经验的开发者和设计者以设计模式的形式将他们的经验传授给我们,拥有了这些经验之后,我们也能做出好的设计来了。
不仅如此,设计模式还提高了我们软件复用的水平,从而提高了生产效率

阅读全文 »

1、油猴的介绍

  • 油猴也叫暴力猴(Violentmonkey)、篡改猴(Tampermonkey),她是一个非常流行的浏览器扩展插件,常用的Google与火狐浏览器都可以使用它。
  • 它有什么用?
    阅读全文 »

乐观锁重试机制代码实现

有乐观锁,那当然也是有悲观锁的

悲观锁和乐观锁的原理和应用场景

悲观锁(Pessimistic Lock)

顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。

阅读全文 »

SpringBoot2.0 与 Quartz 整合

Quartz 干嘛用的?
在开发工作中,可能会遇到一些周期性的操作,比如每30分钟刷新缓存啊,每10分钟执行某操作之类的。
这样就需要用到定时器了,比如会使用 java.util.Timer工具类。
或者在Spring 框架中使用注解@Scheduled,比如 @Scheduled(cron = "0 0/10 * * * ?")
阅读全文 »

一、前言

有时yum用不了,比如没联网,本地也没有镜像。缺好多依赖很烦

二、下载RMP镜像

  • 下载地址:http://mirrors.163.com/centos/7/os/x86_64/Packages/
  • 下载以下镜像:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    cpp-4.8.5-44.el7.x86_64.rpm
    gcc-4.8.5-44.el7.x86_64.rpm
    glibc-2.17-317.el7.x86_64.rpm
    glibc-common-2.17-317.el7.x86_64.rpm
    glibc-devel-2.17-317.el7.x86_64.rpm
    glibc-headers-2.17-317.el7.x86_64.rpm
    glibc-static-2.17-317.el7.x86_64.rpm
    glibc-utils-2.17-317.el7.x86_64.rpm
    kernel-headers-3.10.0-1160.el7.x86_64.rpm
    libmpc-1.0.1-3.el7.x86_64.rpm
    mpfr-3.1.1-4.el7.x86_64.rpm

    放在同一目录
阅读全文 »

Neo4j下载地址

配置环境变量:NEO4J_HOME

把neo4j 安装为服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 安装服务
neo4j install-service

# 卸载服务
neo4j uninstall-service

# 启动
neo4j start

# 停止
neo4j stop

# 重启
neo4j restart

# 查询服务状态
neo4j status

阅读全文 »

SpringBoot 国际化配置

一、配置LocaleResolver

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@Configuration
public class LocaleConfig extends WebMvcConfigurerAdapter{

@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver slr = new SessionLocaleResolver();
// 默认语言
slr.setDefaultLocale(Locale.CHINA);
return slr;
}

@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
// 参数名
lci.setParamName("lang");
return lci;
}

@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
super.addInterceptors(registry);
}

}
阅读全文 »

一、概述

先了解下含义

1、BIOS

BIOS是一组固化到主板中一个ROM芯片上的程序,它可以从CMOS中读写系统设置的具体信息,它可以对主板上的键盘、鼠标、外部接口、频率、电源、磁盘驱动器等方面进行参数控制和调整。我们常用的调整硬盘或U盘的启动顺序,电源管理的设置或者一些超频设置。都是在BIOS中完成的。

2、UEFI

UEFI:全称“统一的可扩展固件接口”(Unified Extensible Firmware Interface), 是一种详细描述类型接口的标准。
这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上。可以说UEFI是BIOS的升级版,从上世纪九十年代就开始开发。
UEFI运行于32或64位模式,它突破了传统16位代码的寻址能力,达到处理器的最大寻址,克服了BIOS代码运行缓慢的弊端

阅读全文 »

Zuul 过滤器

Zuul大部分功能都是通过过滤器来实现的。Zuul中定义了四种标准过滤器类型,这些过滤器类型对应于请求的典型生命周期。

  • PRE:这种过滤器在请求被路由之前调用。我们可利用这种过滤器实现身份验证、在集群中选择请求的微服务、记录调试信息等。
  • ROUTING:这种过滤器将请求路由到微服务。这种过滤器用于构建发送给微服务的请求,并使用Apache HttpClient或Netfilx Ribbon请求微服务。
  • POST:这种过滤器在路由到微服务以后执行。这种过滤器可用来为响应添加标准的HTTP Header、收集统计信息和指标、将响应从微服务发送给客户端等。
  • ERROR:在其他阶段发生错误时执行该过滤器。
阅读全文 »

一、Zuul 的回退

Zuul 本身就有断路器的功能
很简单只需自定义一个ZuulFallbackProvider即可,在实现这个ZuulFallbackProvider的getRoute()方法中定义你的服务名称。下面是简单的示例
我这个是producer这个微服务的fallback

阅读全文 »