• SpringBoot集成Mybatis+xml格式的sql配置文件操作

    SpringBoot集成Mybatis+xml格式的sql配置文件 最近一直在研究SpringBoot技术,由于项目需要,必须使用Mybatis持久化数据.所以就用SpringBoot集成Mybatis. 由于项目使用的是xml配置文件格式的SQL管理,所以SpringBoot必须配置Mybatis文件.但这样做的话又与SpringBoot的零xml配置冲突. 所以索性使用java类来配置Mybatis. 下面是Mybatis的配置类: import java.util.Properties;

    2024-06-08
  • Go语言从单体服务到微服务设计方案详解

    目录 概述 业务场景 设计方案 Api网关 数据 Go中的Grpc使用 问题和反思 概述 微服务是一种思想,与编程语言无关,编程语言是思想下具体的一种实现方式,怎么设计架构方案和实现主要看主要面临的业务场景. 业务场景 主站核心业务使用的是yaf(php)开发的,要实现k8s + x编程语言 自主微服务实现,受到陈皓(左耳听风)的影响,我选用的编程语言是Go,Go语言有更强大的生态,有谷歌,k8s作为强大的后盾,摸着石头过河. 设计方案 Api网关 提到微服务我们就联想到Rpc,主流微服务价格设

    2024-06-08
  • C++编辑距离(动态规划)

    题目描述: 给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 . 我们可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 编辑距离:是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数.问题:word1到word2的编辑距离子问题:word1前i个字符到word2前j个字符的编辑距离假如有两个字符串"hat"和"wtct"每个格子表示word1前i个字符到word2前j个字符的编

    2024-06-08
  • Android控件CardView实现卡片效果

    这是android新推出的一个,让卡片带立体感的一个控件,就是一个卡牌,有点类似于布局那种的东西,里面可以添加控件内容 先看看运行的效果图: 1.添加依赖 implementation 'com.android.support:cardview-v7:25.3.1' 2.主界面设置一些卡片的属性: package com.example.admin.ztest; import android.support.v7.app.AppCompatActivity; import android.os.

    2024-06-08
  • springboot以FTP方式上传文件到远程服务器

    一.html代码   <div class="layui-form-item"> <label class="layui-form-label">上传附件:</label> <div class="layui-input-block doc-litpic"> <button type="button" name="avatar" class="

    2024-06-08
  • MyBatisPlus分页的同时指定排序规则说明

    分页配置 MyBatis Plus要想使用分页,需要添加如下配置: @Configuration @ConditionalOnClass(value = {PaginationInterceptor.class}) public class MybatisPlusConfig { /** * 分页插件 * @return */ @Bean public PaginationInterceptor paginationInterceptor() { PaginationInterceptor pa

    2024-06-08
  • Intellij IDEA连接Navicat数据库的方法

    (一)配置环境变量 ①我的电脑右键选择属性→高级系统设置→环境变量→新建→输入变量名MYSQL_HOME和变量值→确定 ②选择Path→新建→把 %MYSQL_HOME%\bin 加上→确定 (二)导入数据库驱动的jar包 ①在官网下载驱动包 在浏览器搜maven repository,进入官网搜MySQL Connector/J 选择需要的版本下载 ②在项目的web目录下的WEB-INF下创建lib文件夹,把数据库驱动的包复制进来 (三)测试 创建一个类测试是否连接成功 import java

    2024-06-08
  • Rsync 服务安全加固方法

    Rsync 是一个通过检查文件的时间戳和大小,来跨计算机系统高效地传输和同步文件的工具. 通常情况下,管理程序在启动 Rsync 服务后,会直接运行传输任务.如果 Rsync 服务未经过安全加固,则很容易出现未授权访问等安全问题:其直接后果是传输数据裸露在互联网上,可以被任何人访问获取,带来严重的数据泄露风险. 建议您在使用 Rsync 服务端时,参考本文对 Rsync 服务进行安全加固,保障数据安全. 加固方案 隐藏 module 信息 将配置文件修改为以下内容: list = false 使

    2024-06-08
  • java关于并发模型中的两种锁知识点详解

    1.悲观锁 悲观锁假设最坏的情况(如果果你不锁门,那么捣蛋鬼就会闯入并搞得一团糟),只有在确保其他线程不受干扰(获得正确的锁)的情况下才能执行. 一般实现如独占锁等. 安全性更高,但中低并发性效率更低. 2.乐观锁 乐观锁通过冲突检查机制判断更新过程中是否存在其他线程干扰.如果存在,操作将失败,重试(也可以不重试). CAS等常见实现. 一些乐观锁削弱了一致性,但在中低并发性下效率大大提高. 知识点扩展: 并行与分布式编程 关注的是复杂软件系统的构造,"复杂"是指多线程.分布式与GUI

    2024-06-08
  • 详解Spring Boot 项目启动时执行特定方法

    Springboot给我们提供了两种"开机启动"某些方法的方式:ApplicationRunner和CommandLineRunner. 这两种方法提供的目的是为了满足,在项目启动的时候立刻执行某些方法.我们可以通过实现ApplicationRunner和CommandLineRunner,来实现,他们都是在SpringApplication 执行之后开始执行的. CommandLineRunner接口可以用来接收字符串数组的命令行参数,ApplicationRunner 是使用App

    2024-06-08
  • Linux yum软件包管理方法

    简介 yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载.安装.yum提供了查找.安装.删除某一个.一组甚至全部软件包的命令,而且命令简洁而又好记. yum命令 语法 yum [选项] [要进行的操作] [软件包名称--] 命令选项: -h:帮助 -y:当安装过程提示

    2024-06-08
  • vue对象的深度克隆方式

    目录 vue对象的深度克隆 方法1 方法2 方法3 vue克隆对象时遇到的问题 vue对象的深度克隆 方法1 通过js序列化,将js转换成字符串,然后再将字符串转换成js对象 var olbObj = {a:1}; var str = JSON.stringify(obj); //序列化对象 var newobj = JSON.parse(str); //还原 //相当于 var newObj = JSON.parse(JSON.stringify(olbObj )) 方法2 ES6语法对象展开

    2024-06-08
  • python使用正则表达式(Regular Expression)方法超详细

    一.导入re库 python使用正则表达式要导入re库. import re 在re库中.正则表达式通常被用来检索查找.替换那些符合某个模式(规则)的文本. 二.使用正则表达式步骤 1.寻找规律: 2.使用正则符号表示规律: 3.提取信息,如果每一个字符都能匹配,则匹配成功:一旦有匹配不成功的字符则匹配失败. 三.正则表达式中常见的基本符号 1.点号"." 一个点号可以代替除了换行符(\n)以外的任何一个字符,包括但不限于英文字母.数字.汉字.英文标点符号和中文标点符号. 2.星号&q

    2024-06-08
  • 基于canvas实现的钟摆效果完整实例

    本文实例讲述了基于canvas实现的钟摆效果.分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: <!DOCTYPE html> <html> <head> <title>demo</title> <style type="text/css"> body { margin:0; padding:0; } #canvas { border:2px solid gray; box-shadow:0px

    2024-06-08
  • Hive日期格式转换方法总结

    目录 背景 时间戳 日期格式转换 背景 日期计算平时在业务取数时经常涉及到,但是数据库中经常存放着不同的日期格式,有的存放是时间戳.有的是字符串等,这时需要对其进行转换才能提取到准确的数据,这里介绍的均是hive里面的函数功能,以下内容均是业务的数据需求经常使用的部分 时间戳 unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒,一般为10位的整数 一个在线工具:http://tools.jb51.net/code/unixtime 时间戳 字符串日期如:'2

    2024-06-08
  • javascript拖曳互换div的位置实现示例

    1 实现原理 利用dom元素的dragstart/ondragover/ondrop事件完成,在拖曳开始的时候获取到拖曳元素,然后允许拖动,最后鼠标抬起后放到新的位置:这里用到了event.preventDefault()方法,很多人可能比较疑惑,这里简单介绍一下 event.preventDefault() :该方法是让浏览器不要执行与事件关联的默认动作 我们在dragover事件中使用,因为dragover关联的默认动作是阻止将数据或者元素放置到其他元素中:所以需要通过event.preve

    2024-06-08
  • AngularJS实现单一页面内设置跳转路由的方法

    本文实例讲述了AngularJS实现单一页面内设置跳转路由的方法.分享给大家供大家参考,具体如下: 单一页面内设置跳转路由 鉴于现在很多应用的应用功能以及场景都非常简单,如果还按照以前的思路,每个页面做一个html,通过路由进行跳转,不仅在时间上会有延迟,在某些特殊的浏览器(最典型的如微信内置浏览器)中,跳转过程中会出现短暂的白页. 因此,我们在开发过程中,将页面逻辑封装到同一个html中.当系统第一次加载页面时,将所有页面全部加载进去,然后通过angularJS内置的路由进行加载. 直接上代码

    2024-06-08
  • 利用Python Pygame放个烟花

    uu们,有多久没放烟花了?今年你所在的地方允许放烟花么?既然我们不能线下放,那么我们就在线上放个够吧,先上最后效果图 老规矩,先导包,导入pygame,Python Pygame 是一款专门为开发和设计 2D 电子游戏而生的软件包,它支 Windows.Linux.Mac OS 等操作系统,具有良好的跨平台性. import pygame from random import randint, uniform, choice import math Pygame 绘制烟花的基本原理 1.发射阶段

    2024-06-08
  • android实现添加耳机状态图标的方法

    本文实例讲述了android实现添加耳机状态图标的方法.分享给大家供大家参考.具体如下: 原生态的android系统是没有耳机插入或未插入的状态指示的,本文就是讲解如何添加耳机插入的状态指示.效果图如下 如图,当插入耳机后,在status bar上出现了一个耳机的图标. 这个耳机的图标和sim卡信号等图标在status bar的右边,因此这个实现肯定不是通过notification实现的,那么添加这个功能只能在framwork里面寻找了.具体的修改步骤如下: 1.在frameworks/base

    2024-06-08
  • Nginx安装配置详解

    不论是本地开发,还是远程到 Server 开发,还是给提供 demo 给人看效果,我们时常需要对 Nginx 做配置,Nginx 的配置项相当多,如果考虑性能配置起来会比较麻烦.不过,我们往往只是需要一个静态 Server,或者一个反向代理 Server,这对 Nginx 来说小菜一碟. 简介 Nginx 的安装: # CentOS yum install nginx; # Ubuntu sudo apt-get install nginx; # Mac brew install nginx;

    2024-06-08
yixingzi wulianji zhihuizuan yunmashang pengyihao