- 博客(47)
- 资源 (2)
- 收藏
- 关注
原创 Springboot2.X自定义RedisCache,统一处理value=NULL情况
最近将Springboot从1.x升级到了2.x,发现redis的集成方式发生了比较大的变化。还有就是RedisCache新增了属性allowNullValues:是否允许存储null对象。当value=null时,如果allowNullValues=true时表示可以存储value对象;如果allowNullValues=false,就会抛出业务异常,除非在注解中增加unless="#result == null"@Cacheable(key="'id'",unless="#result
2020-08-26 10:01:42 1472
原创 springboot1.x自定义redisManager,解决并发问题
RedisCache的问题RedisCache是先判断key是否存在,不存在返回null;存在再获取值,存在并发问题。当key存在并获取值时,缓存被别的线程删除了,则返回值就为null了。修改方案:先从redis查询值,再判断key是否存在。自定义RedisCacheMangerpublic class CustomizedRedisCacheManager extends RedisCacheManager { public CustomizedRedisCacheManager(Redis
2020-08-26 09:36:05 361
原创 Python镜像地址
1、清华镜像地址https://pypi.tuna.tsinghua.edu.cn/simple例如:pipinstallopencv-python-ihttps://pypi.tuna.tsinghua.edu.cn/simple
2020-03-13 09:12:23 1124
原创 Python统计gitlab上的代码量
年底了,各大公司都要求每个人统计自己今年的代码量。使用python写了一个统计gitlab上代码量。首先安装python-gitlab插件。具体代码如下:#!/usr/bin/pythonimport gitlabimport xlwt#用户git账户的tokenprivate_token = ''#git地址private_host = ''#提交代码的域账户名称...
2019-12-11 11:41:53 4478 3
原创 oracle相关操作命令
1、oracle client下载地址:https://download.csdn.net/download/sinat_25318461/11964119包含sqlplus、exp、imp等多种常用命令。2、本地连接远程数据库首先进入oracle client安装目录,比如我的D:\oracle\instantclient_19_3然后输入sqlplus.exe user/...
2019-11-07 14:46:01 146
转载 用友云平台RPA机器人 企业迈向人工智能第一步
AI时代,AI大格局技术一直影响和改变着企业的商业模式,云计算、移动互联网、大数据、云计算、区块链、物联网、人工智能等为企业带来连接、协同、共享等重要特征。今天的主角是人工智能。移动互联网的浪潮尚未平息,人工智能就已经进入了让人们无比兴奋的上升期。人工智能(AI),作为一项新科技技术,在企业服务领域备受关注。随着人工智能引领的智能化技术的密集突破,未来的产业形态会产生重大变革,为企业...
2019-10-29 08:55:07 2551
转载 用友RPA开启企业智能运营新时代
今天的主角是人工智能,它深刻地影响着人类社会的生产、生活,极大地推动了科技的发展和社会的进步。科技与金融,是推动商业发展的两大重要驱动力量,企业为了顺应时代的浪潮,便要不断地改进技术,利用云计算、大数据、区块链、物联网、人工智能等先进技术为企业带来更多的经济效益。人工智能使企业的业务流程自动化、知识管理工作自动化、运营管理智能化,只有随着时代脉搏一同跳动,在合适的时机做符合时宜...
2019-10-29 08:52:38 2373
转载 微服务架构下的事务一致性(二)
今天阅读了一篇文章,关于微服务的事务一致性解决方案。感觉很好,特此分享。主要内容包括4部分:传统分布式事务不是微服务中一致性的最佳选择 微服务架构中应满足数据最终一致性原则 微服务架构实现最终一致性的三种模式 对账是最后的终极防线。我们先来看一下第一部分,传统使用本地事务和分布式事务保证一致性传统单机应用一般都会使用一个关系型数据库,好处是应用可以使用 AC...
2019-10-24 20:10:00 238
转载 微服务下的一致性解决方案
作者:介鬼链接:https://www.jianshu.com/p/2d29a9b1238e来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。背景随着微服务架构的推广,越来越多的公司采用微服务来搭建自己的业务平台,在微服务带来诸多好处的同时,也带来不少问题需要解决,首当其冲的就是分布式的数据一致性问题,也是本文主要探讨的问题。在单体应用的时候可以借助...
2019-10-24 19:29:33 727
原创 VSCode搭建简单的JAVA开发环境
一直使用ecplise、idea开发,问题是这两个都比较大。以前也使用VSCode开发过前端工程,没想到也可以支持JAVA、Python等。今天使用VSCode搭建了JAVA的简单开发环境。1、下载VSCodeVSCode是免费的工具,可以百度搜索下载。2、安装VSCode、JDK根据提示安装VSCode,JDK3、支持JAVA打开VSCode的扩展(ctrl+shif...
2019-07-25 20:53:57 1439
原创 解决初次使用Scrapy的问题
1、安装Scrapy使用命令pip install scrapy安装。安装过程中出现以下错误:解决办法:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted下载对应的twisted版本。cp后面表示的是python版本,amd64代表64位使用命令pip installC:\Users\Administra...
2019-04-30 10:46:24 289
原创 Python常用框架(一)
python-docxpython-docx是一个用于创建和更新Microsoft Word(.docx)文件的Python库,不支持doc类型的word。使用命令pip install python-docx安装,具体文档API地址https://python-docx.readthedocs.io/en/latest/index.html输出文档内容:#!/usr/bin/py...
2019-04-26 11:25:43 1383
转载 云服务相关概念
云计算的服务模式有SPI(即SaaS、PaaS和IaaS)这三个大类或层次1. SaaS:英文Software-as-a-Service(软件即服务),提供给客户的服务是运营商运行在云计算基础设施上的应用程序,用户可以在各种设备上通过客户端界面访问,如浏览器。消费者不需要管理或控制任何云计算基础设施,包括网络、服务器、操作系统、存储等等;主要面向客户。2. PaaS:英文Platform-...
2019-04-19 11:53:23 663
原创 String的equals与contentEquals区别
String中的equals与contentEquals,这2个方法都可以用来比较String对象内容是否相同。但是equals只能对2个String对象内容比较,否则返回false;contentEquals比较类型为java.lang.CharSequence的对象内容是否相同。equals()源码contentEquals()源码常用的String、StringB...
2018-08-16 16:37:26 21154 2
原创 JAVA字符串与Unicode互转
package com.test;public class StringUnicodeTest { /** * @param args */ public static void main(String[] args) { String str = "汉语pinyin"; String unicode = stringToUnicode(str); System.o...
2018-07-26 21:03:07 32255 7
转载 JAVA多线程类初始化
首先说明:Java语言规范规定,对于每一个类或者接口,都有一个唯一的初始化锁与之对应。Java多线程类初始化过程为4个阶段一、获取Class对象的初始化锁 获取Class对象的初始化锁来控制类或者接口的初始化过程,这个锁是线程阻塞的(即A获取了锁,B线程就会等待)二、获得了锁的线程A进行初始化 执行类的静态初始化: ...
2018-07-24 09:05:44 1235
原创 排序算法(三):选择排序
基本思想:对给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录与第一个记录的位置进行交换;接着对不包括第一个记录以外的其他记录进行第二轮比较,得到最小的记录并与第二个记录进行位置交换;重复该过程,直到进行比较的记录只有一个时为止。 private static void selectSort() { int data[] = { 4, 7, 2, 3, 8, 1, 9, 5 };
2017-11-06 15:53:08 229
原创 排序算法(二):交换排序
一、冒泡排序基本思想1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3、针对所有的元素重复以上的步骤,除了最后一个。4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 private static void bubbleSort() {
2017-11-04 14:14:16 423
原创 排序算法(一):插入排序
一、插入排序(将待排序记录插入到前面已经排序好的记录的合适位置):直接插入、二分插入、希尔排序1、直接插入排序 /** * 直接插入排序。每一步从前面已经排序好的数据中查找合适的位置,插入待排序数据。从小到大。 */ private static void directInsertSort(){ int[] data = {5,6,3,7,8
2017-10-25 09:47:15 249
转载 JVM调试
我们经常会遇到JVM运行时出错的情况。若能在启动时加入一些启动选项(startup option),便可以获取与bug相关的重要线索,从而有希望根治它们。但在实际操作时,我们总是忘记添加-XX:+HeapDumpOnOutOfMemoryError 或 -XX:+PrintGCDetails这样必要的flag。每当面对如此窘境,我们只能关闭JVM,修改启动参数(startup
2017-10-23 10:31:05 649
转载 JVM类加载机制(类加载过程和类加载器)
JVM类加载机制(类加载过程和类加载器)一、为什么要使用类加载器?Java语言里,类加载都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会给java应用程序提供高度的灵活性。例如:1.编写一个面向接口的应用程序,可能等到运行时再指定其实现的子类;2.用户可以自定义一个类加载器,让程序在运行时从网络或其他地方加载一个二进制流作为
2017-10-23 10:29:45 247 1
原创 VueJS项目目录结构
├── index.html 入口页面 ├── build 构建脚本目录 │ ├── build-server.js 运行本地构建服务器,可以访问构建后的页面 │ ├── build.js
2017-07-31 16:31:30 527
原创 Python数据转换(一)
Python数据字典https://www.w3cschool.cn/python/dictint(x,base)#int(x,base)表示将base下的x转换为十进制的数值;默认base为10,也就是说默认x都是十进制的数据;a='10';print(a);#查看a的数据类型;print('a的类型是',end=''),print(type(a)),#表示将十进制数a转换...
2017-06-28 11:27:05 2756
原创 Python基础类型
python标识符1、标识符由数字、字母、下划线组成;2、标识符不能由数字开头;3、标识符区分大小写;4、下划线开头的有特殊意义。 单下划线开头_xxx,表示不能直接访问的类属性,需要通过类提供的接口访问,不能用from * import导入; 双下划线开头 __xxx 的表示类的私有成员; 双下划线开头和结尾的__xxx__特殊方法,一般是系统定义的...
2017-06-26 16:21:11 405
原创 byte与int强制转换
byte b = (byte)130; //结果为-126数据130默认是int类型的十进制数据第一步十进制的130转换成二进制数据1 0 0 0 0 0 1 0第二步130是int类型是占4个字节的,所以在内存的表现形式是00000000 00000000 00000000 10000010做了截取后的结果为(byte 1字节 short 2字节 int 4字节 lo...
2017-06-21 14:14:53 1464 1
转载 Tomcat类加载机制
http://www.cnblogs.com/xing901022/p/4574961.html 之前实习的时候学习javaMelody的源码,但是它是一个Maven的项目,与我们自己的web项目整合后无法直接断点调试。后来同事指导,说是直接把java类复制到src下就可以了。很纳闷....为什么会优先加载src下的java文件(编译出的class),而不是jar包中的class呢?
2017-05-26 10:40:19 243
原创 tomcat各个组件功能
1、Server提供一个接口,由1至多个Service组成,让其它程序可以访问到这个Service集合,同时维护各个Service的生命周期,包括如何初始化,如何结束服务,如何找到别人请求的服务。2、Service又由1-n个Connector及单个Container组成,只是在Container和Connector外多包了一层,提供各种服务3、Connector组件是可选择替换的
2017-05-24 20:28:28 3234
原创 tomcat启动分析(一)
tomcat启动1、tomcat启动时,会创建一个server对象,就是StandardServer对象,所以一个tomcat只会由一个server;一个server会包含多个service,在server的startInternal()启动每个service;2、Service中,有2种tomcat中最重要的组件:connector、container。Connector用来接收浏览
2017-05-24 20:18:17 347
原创 TOMCAT增加调试端口
Linux系统,在catalina.sh里: CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899" Win系统 在tomcat目录下的bin目录中新建debug.bat,编辑内容如下
2017-04-24 14:28:24 1773
原创 Maven的pom.xml示例
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 com.yonyou devportal war 1.0-SNAPSHOT devportal Maven Webapp h
2017-03-09 16:35:08 2605
原创 oracle常用命令2
1、用户: 创建用户:CREATE USER "NC61_MIGFS1224" PROFILE "DEFAULT" IDENTIFIED BY "1" DEFAULT TABLESPACE "NNC_DATA01" ACCOUNT UNLOCK; 授权连接: GRANT "CONNECT" TO "NC61_MIGFS1224" WITH ADMIN OPTION;
2017-03-09 16:32:40 296
原创 oracle常用命令1
1、设置计时:set timing on;2、查询数据信息:select * from v$database;3、命令查看执行计划: explain plan for sql; select * from table(dbms_xplan.display); select * fromtable(dbms_xplan.display_cursor('1fkh9
2017-03-09 16:31:22 220
转载 IntelliJ Idea 常用快捷键列表
IntelliJ Idea 常用快捷键列表Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+E或者Alt+Shift+C 最近更改的代码Ctrl+R 替换文本Ctrl+F 查
2017-03-09 16:27:35 346
转载 JDK1.8特性
一、接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下:代码如下:interface Formula { double calculate(int a); default double sqrt(int a) { return M
2017-03-09 16:08:36 587
转载 Spring核心JAR包
Spring框架的核心基于“控制反转(Inversion of Control IOC)”原理。IOC是一种将组件依赖关系的创建和管理置于程序外部的技术。依赖注入是从应用程序的角度在描述,可以把依赖注入描述完整点:应用程序依赖容器创建并注入它所需要的外部资源;而控制反转是从容器的角度在描述,描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源
2017-03-09 16:07:33 3642
转载 spring mvc 配置(xml配置详解)
如果您曾经使用Spring MVC框架开发过Web应用程序,本文提供关于Spring MVC框架的配置技巧,以帮助管理基于Spring的web应用程序的多个实例。web.xml 配置:1234567891011121314
2017-03-09 16:06:14 12151
转载 spring相关类
文件资源操作:org.springframework.core.io.Resource接口,是为了统一各种类型的资源而定义的1.访问文件资源org.springframework.core.io.ClassPathResource 类路径进行访问org.springframework.core.io.FileSystemResource 文件系统的绝对路径进行访问
2017-03-09 16:05:28 221
原创 Spring框架
Spring 框架Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式,如图 1 所示。图 1. Spring 框架的 7 个模块组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:核心容器:核心
2017-03-09 16:00:33 192
转载 web.xml详解
1 定义头和根元素 部署描述符文件就像所有XML文件一样,必须以一个XML头开始。这个头声明可以使用的XML版本并给出文件的字符编码。DOCYTPE声明必须立即出现在此头之后。这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并指定管理此文件其余部分内容的语法的DTD(Document Type Definition,文档类型定义)。所有部署描述符文件的顶层(根
2017-03-09 15:59:41 226
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人