• PHP设计模式之观察者模式(Observer)详细介绍和代码实例

    [意图] 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新[GOF95] 又称为发布-订阅(Publish-Subscribe)模式.模型-视图(Model-View)模式.源-监听(Source-Listener)模式.或从属者(Dependents)模式 [观察者模式结构图] [观察者模式中主要角色] 1.抽象主题(Subject)角色:主题角色将所有对观察者对象的引用保存在一个集合中,每个主题可以有任意多个观察者. 抽象主题提供了增加和

    2024-06-18
  • SpringBoot项目部署到服务器上的方法(Jar包)

    1. 部署方式 Springboot 和普通web 应用程序不一样,其本质上是一个 Java 应用程序,那么又如何部署呢?  通常来说,Springboot 部署会采用两种方式:全部打包成一个jar,或者打包成一个war.现在讲一下打包成 jar 部署. 2. 打包成 jar 第一种方法(idea) 1. clean 2. package 第二种方法(命令行): 键盘输入 windows + r : cd 命令切换到你项目所在路径: online 是我的项目名称,这里换成你自己的,可以看到当前是

    2024-06-18
  • Redis 哨兵高模式搭建及Java代码配置

    Redis 的下载和安装及遇到问题的解决 准备配置文件 # 配置文件进行了精简,完整配置可自行和官方提供的完整conf文件进行对照.端口号自行对应修改 # 后台启动的意思 daemonize yes # 端口号 port 6380 # IP绑定,redis不建议对公网开放,直接绑定0.0.0.0没毛病 bind 0.0.0.0 # redis数据文件存放的目录 dir /usr/local/redis/data # 开启AOF appendonly yes # 开启集群 cluster-enab

    2024-06-18
  • Yii全局函数用法示例

    本文实例讲述了Yii全局函数用法.分享给大家供大家参考,具体如下: 由于YII致力于完美的整合第三方库,它并没有定义任何全局函数.yii中的每一个应用都需要全类别和对象范围. 例如,Yii::app()->user;Yii::app()->params['name'];等等.我们可以自行设定全局函数,使得代码看起来更加简洁易用. 我们可以保存在globals.php在protected/config目录下.然后,在入口脚本index.php中,定义如下内容: $globals=dirname(

    2024-06-18
  • UGUI实现图片拖拽功能

    这一篇博客我们来使用UGUI实现图片的拖拽功能. 说到拖拽,那必然离不开坐标,UGUI 的坐标有点不一样,它有两种坐标,一种是屏幕坐标,还有一种就是 UI 在Canvas内的坐标(暂时叫做ugui坐标.),这两个坐标是不一样的,所以拖拽是就需要转换.因为鼠标的移动是屏幕坐标,而 UI 的移动是ugui坐标.转换的方法: RectTransformUtility.ScreenPointToLocalPointInRectangle ( - );这个方法可以把屏幕坐标转换成 ugui 坐标.至于屏幕

    2024-06-18
  • python爬取微信公众号文章

    本文实例为大家分享了python爬取微信公众号文章的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- import requests from bs4 import BeautifulSoup from requests.exceptions import RequestException import time import random import MySQLdb import threading import socket import math soc

    2024-06-18
  • 关于Android Studio安装完后activity_main.xml前几行报错的解决建议

    当你安装完Android Studio之后,开始了一个新项目,然后你发现: activity_main.xml前几行报错,比如http://schemas.android.com/apk/res/android "URI is not registered". move refactoring is not available while indexing is in progress. apply script build.gradle有问题. activity_main.xml下的

    2024-06-18
  • 一个简单的JS鼠标悬停特效具体方法

    首先,需加载jquery库(略过). 其次,将下面 Javascript代码加到页面的头部:  复制代码 代码如下: <script type='text/javascript'>    jQuery(document).ready(function($){    $('a').hover(function()    {    $(this).stop().animate({'left': '5px'}, 'fast');    }, function() {    $(this).stop(

    2024-06-18
  • golang正则之命名分组方式

    正则中有分组这个功能,在golang中也可以使用命名分组. 一次匹配的情况 场景还原如下: 有一行文本,格式为:姓名 年龄 邮箱地址 请将其转换为一个map 代码实现如下: str := `Alice 20 alice@gmail.com` // 使用命名分组,显得更清晰 re := regexp.MustCompile(`(?P<name>[a-zA-Z]+)\s+(?P<age>\d+)\s+(?P<email>\w+@\w+(?:\.\w+)+)`) match

    2024-06-18
  • 解决idea web项目中out目录更新不同步问题

    今天碰到个很恶心的东西..就是明明导入了相应的依赖文件(css,html,js等文件),路径也正确..就是访问不了....弄了一个多小时... 原因在哪?看了一下web项目的生成位置,发现编译之后会重新生成一个out目录,更新不同步.... 解决方法:build->Build Artifact->clean,然后再build->build Artifact->rebuild...问题解决.. 如果使用的是maven构建的web项目,就简单很多直接cmd定位到项目根节点,有pom.x

    2024-06-18
  • 老生常谈C++的单例模式与线程安全单例模式(懒汉/饿汉)

    1 教科书里的单例模式 我们都很清楚一个简单的单例模式该怎样去实现:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实例的动作由一个public的类方法代劳,该方法也返回单例类唯一的实例. 上代码: class singleton { protected: singleton(){} private: static singleton* p; public: static singleton* instance()

    2024-06-18
  • 一起学JAVA基础之运算符

    目录 1运算符 1.1概述 1.2运算符速查表 1.3练习:测试自增自减 1.4练习:测试逻辑运算符 1.5练习:求两数的最大值 1.6练习:求平年闰年 2拓展补充: 2.1总结1:算术运算符之自增自减运算符 2.2总结2:逻辑运算符 2.3总结3:优先级控制 总结 1 运算符 1.1 概述 运算符 用于连接 表达式 的 操作数,并对操作数执行运算. 例如,表达式num1+num2,其操作数是num1和num2,运算符是”+”. 在java语言中,运算符可分为5种类型: 算术运算符.赋值运算符.

    2024-06-18
  • Python matplotlib图例放在外侧保存时显示不完整问题解决

    上次说到的,使用如下代码保存矢量图时,放在外侧的图例往往显示不完整: import numpy as np import matplotlib.pyplot as plt fig, ax = plt.subplots() x1 = np.random.uniform(-10, 10, size=20) x2 = np.random.uniform(-10, 10, size=20) #print(x1) #print(x2) number = [] x11 = [] x12 = [] for i

    2024-06-18
  • 完美解决AJAX跨域问题

    从AJAX诞生那天起,XMLHttprequest对象不能跨域请求的问题就一直存在.这似乎是一个很经典的问题了.是由于javascript的同源策略(这里不作深入探讨)所导致. 解决的办法,大概有如下几种: 1. 使用中间层过渡的方式(可以理解为"代理"): 中间过渡,很明显,就是在AJAX与不同域的服务器进行通讯的中间加一层过渡,这一层过渡可以是PHP.JSP.c++等任何具备网络通讯功能的语言,由中间层向不同域的服务器进行读取数据的操作.拿asp.net做一个例子,如果需要对不同域

    2024-06-18
  • Dropify.js图片宽高自适应的方法

    最近发现了一个比较好用的图片上传插件, Dropify.js ,具体使用方法挺简单的,这里就不介绍了. 但是由于我希望图片样式是宽度固定,高度自适应的,而这个插件好像无法自适应高度,只能在固定的区域内显示图片,看的非常不舒服. 看了一下插件的源码,发现可以在预览图片时,调整图片高度.需要修改css和js,下面贴下代码. <!-- 插件容器 --> <div class="blog-title-img clear"> <input type="fi

    2024-06-18
  • 详解Glide4.0集成及使用注意事项

    Glide 4.0由Google的各种团队内部使用,4.0被认为是内部稳定的.但外部用户可能会发现内部尚未发现的问题.因此,将此作为RC发布.如果没有发现稳定性或API中的重大问题,预计不久之后就会发布非RC版本. 一.集成 1.project gradle repositories { mavenLocal() } 2.app gradle compile 'com.android.support:support-v4:25.3.1' compile 'com.github.bumptech.

    2024-06-18
  • 详解Docker Compose 中可用的环境变量问题

    Compose 的多个部分在某种情况下处理环境变量.本教程可以帮助你找到所需的信息. 1. 替换Compose文件中的环境变量 可以使用 shell 中的环境变量填充 Compose 文件中的值: web: image: "webapp:${TAG}" 更多信息请参考 Compose 文件手册中的 Variable substitution章节. 2. 设置容器中的环境变量 可以通过 environment 关键字设置服务容器中的环境变量,就跟使用 docker run -e VARI

    2024-06-18
  • Vue-cli项目部署到Nginx服务器的方法

    0. Nginx使用 以windows版为例,下载niginx压缩包并解压到任意目录,双击nginx.exe,在浏览器中访问http://localhost,如果出现Welcome to nginx!页面则说明成功. nginx常用命令如下: nginx -h # 打开帮助 nginx -t # 检查配置文件是否正确 # 以下命令均要先启动nginx才能执行 nginx -s stop # 停止 nginx -s quit # 退出 nginx -s reopen # 重新启动(注意不会重新读取

    2024-06-18
  • C# List引用类型克隆的3种方法

    前言 有时候我们想克隆一个List去做别的事,而不影响原来的List,我们直接在list后面加上小点点,发现并没有Clone这样的扩展函数.这时候就只有自己扩展了. 尝试了三种方式,测试都通过了,至于性能方面我还没有做测试. 下面话不多说了,来一起看看详细的介绍吧 一.反射 public static List<T> Clone<T>(this List<T> list) where T : new() { List<T> items = new List&

    2024-06-18
  • Moment的feature导致线上bug解决分析

    目录 bug的出现 bug排查 bug的根因 解决方案 bug的出现 这一天,本来是平平淡淡的一天,我正准备一如既往的到点下班,结果qa说线上出了个匪夷所思的bug. 表象为:用户在日期选择器选择了1964-01-01之后,自动变成了1963-12-31 我心里想:这是什么神奇bug,于是我又尝试了一下选择1964-01-02.1963-12-31.1965-01-01.1963-01-01,结果都正常,那么到底是为什么会引发这个bug呢? bug排查 由于后端把时间.日期类的字段都定义为了时间

    2024-06-18
yixingzi wulianji zhihuizuan yunmashang pengyihao