换房子这六点一定要注意 否则后悔一辈子!

https://www.sohu.com/a/150676259_124725

 

与租房不同,买房之后住的地方不容易再发生变化,所住的房子的大小也不会自己变化。所以,为了改善居住环境,很多家庭开始换房置业,小房换大房,旧房换新房,品质差的换品质好的。

但换房是一大事,根据家庭情况,选择符合自身的方式最重要。购房者以小换大改善住房,是先卖后买,还是先买后卖,一买一卖之间的时间差如何把握,这里大有讲究。有实力的可以先买后卖,实力不强的应先卖后买。

那换房有哪些注意事项呢?

注意事项一:选择行情差的时候换房

换房有几种不同的形式,你可以先卖后买,以小换[……]

继续阅读

php

Laravel Inversion of Control (控制反转) 概念简介

https://github.com/seekerliu/laravel-tips/blob/master/introduction-to-inversion-of-control.md

 

本文内容部分摘自 Wikipedia – Inversion of Control .

概述

IoC (控制反转),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。

实现「控制反转」,有两种方式:

  • Dependency Injection (DI) – 依赖注入
  • Dependency Lookup – 依赖查找

两者的区别在于,前者是被动的[……]

继续阅读

php

Laravel Dependency Injection (依赖注入) 概念详解

https://github.com/seekerliu/laravel-tips/blob/master/what-is-dependency-injection.md

 

本文翻译自 Symfony 作者 Fabien Potencier 的 《Dependency Injection in general and the implementation of a Dependency Injection Container in PHP》 系列文章。

继续阅读

php

Laravel Service Provider 概念详解

https://laravel-china.org/articles/6189/laravel-service-provider-detailed-concept

https://github.com/seekerliu/laravel-tips

 

我们知道, Container 有很多种 「绑定」 的姿势,比如 bind() , extend() , singleton() , instance()等等,那么 Laravel 中怎样「注册」这些「绑定」呢?那就是 Service Provider

先看下 Laravel 文档中这句话:

Service[……]

继续阅读

第二十七章:SpringBoot使用ApplicationEvent&Listener完成业务解耦

https://segmentfault.com/a/1190000011433514?utm_source=tag-newest

 

ApplicationEvent以及Listener是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式,设计初衷也是为了系统业务逻辑之间的解耦,提高可扩展性以及可维护性。事件发布者并不需要考虑谁去监听,监听具体的实现内容是什么,发布者的工作只是为了发布事件而已。

我们平时日常生活中也是经常会有这种情况存在,如:我们在平时拔河比赛中,裁判员给我们吹响了开始的信号,也就是给我们发布了一个开始的事件,而拔河双方人[……]

继续阅读

一次生产 CPU 100% 排查优化实践

https://crossoverjie.top/2018/12/17/troubleshoot/cpu-percent-100/

 

前言

到了年底果然都不太平,最近又收到了运维报警:表示有些服务器负载非常高,让我们定位问题。

还真是想什么来什么,前些天还故意把某些服务器的负载提高(没错,老板让我写个 BUG!),不过还好是不同的环境互相没有影响。

定位问题

拿到问题后首先去服务器上看了看,发现运行的只有我们的 Java 应用。于是先用 ps 命令拿到了应用的 PID

接着使用 top -Hp pid 将这个进程的线程显示出来。输入大写的 P 可以将线程[……]

继续阅读

spring boot 项目中使用provided打包成war到tomcat运行出现的问题总结

https://blog.csdn.net/huangyuehong914/article/details/82252607

 

大家知道 spring boot 项目是自带tomcat 的,但是我们有时候是需要把项目打包成war 然后放到独立的tomcat中运行的,这个时候我们就需要将它自带的tomcat给排除开,这时候我们就可以使用<scope>provided</scope>来实现,我们在pom文件中这样写:

<dependency>
<groupId>org.springframework.boot</[……]

继续阅读

远程部署神器 Fabric,支持 Python3

https://mp.weixin.qq.com/s/BZ-HnjABX72S1SaudxKHnQ

 

如果你搜一圈 “Fabric “关键字,你会发现 90% 的资料都是过时的,因为现在 Fabric 支持 Python3,但是它又不兼容旧版 Fabric。所以,如果你按照那些教程去操作的话根本跑不通。

如果你还没用过 Fabric,那么这篇文章就是帮你快速上手 Fabric 的。不管你现在用不用,先了解了以后也用得着。

平时我们的开发流程是这样,经过几个月奋战,项目终于开发完了,测试也没问题了,我们就把代码提交到 GitHub 那样的托管平台,准备部署到正[……]

继续阅读

Java多线程-线程池ThreadPoolExecutor构造方法和规则

https://blog.csdn.net/qq_25806863/article/details/71126867

为什么用线程池

博客地址 http://blog.csdn.net/qq_25806863

原文地址 http://blog.csdn.net/qq_25806863/article/details/71126867

有时候,系统需要处理非常多的执行时间很短的请求,如果每一个请求都开启一个新线程的话,系统就要不断的进行线程的创建和销毁,有时花在创建和销毁线程上的时间会比线程真正执行的时间还长。而且当线程数量太多时,系统不一定能受得了。

使用线程池主[……]

继续阅读

正则表达式之(exp)、(?:exp)、(?=exp)、(?

https://www.cnblogs.com/oxspirt/p/8041717.html

先澄清下如下俩个概念:

1、分组(或捕获组)

    分组的定义

正则表达式通过使用括号将表达式分为不同的分组,识别的方法是通过从左至右搜寻左半括号,遇到第一个左半括号时,则该左半括号与对应的右半括号所包含的内容即为第一分组,以此类推 。例如,在表达式((A)(B(C))),有四个这样的组:((A)(B(C)))、(A)、(B(C))、(C)

    分组存在意义

向后引用:在第i个分组中被匹配的字符串,可以在在正则表达式中通过\i方式再次引用,例如\b(\[……]

继续阅读