2019-12-21 15:10
此方案适用于解决springboot项目运行时动态添加数据源,非静态切换多数据源!!!
一、多数据源应用场景:
1.配置文件配置多数据源,如默认数据源:master,数据源1:salve1...,运行时动态切换已配置的数据源(master、salve1互相切换),无法在运行时动态添加配置文件中未配置的数据源。
2.配置一个默认数据源,运行时动态添加新数据源使用(本博客适用于此场景)
二、解决方案:
Spring提供了AbstractRoutingDataSource用于动态路由数据源,第一种场景继承AbstractRoutingDataSource类并覆写其protected abstract Object determineCurrentLookupKey()即可;
...
2019-12-21 15:37
摘要:我学习openCV3看的是《学习openCV3》这本书,很厚的一本,不知道是不是因为自己看的还不是很多,个人觉得里面的有些重要函数讲的不是很详细,比如createTrackbar()这个函数,这个函数出现在这本书的第三个实例程序,书中只是说明了这是一个创建滚动条的程序,然而对里面的参数讲解以及与他相对应的回调函数讲解都不是很完美,因此我就打开了它的定义以及到网上找了一些博主的文章来学习,但是感觉讲的都不是很全,下面我结合自己的实验加上自己的理解,讲解一下我对这个函数的看法。...
2019-12-21 15:24
EFcore,由于不熟悉,经常出现一些异常都不知道如何排查,只能把EFcore的执行记录打印出来调查。确实简化了很多问题的调查。
官网提供了Asp.net Core与.net core 应用的配置,唯独没有WPF等应用的说明。本章作为一个补充,供各位参考。
由于我用的是Prism+PostgreSQL+Nlog,所有这里只讲述EntityframeworkCore的Nlog出力方法。
所需安装包
NLog
NLog.Extensions.Logging
Npgsql.EntityFrameworkCore.PostgreSQL
...
2019-12-21 15:18
最近半个月,美国著名的Facebook公司,出了好几件大事。
第一件事,2019年9月19日,一名陈姓中国软件工程师在Facebook加州总部跳楼自杀。
第二件事,2019年10月4日,一名软件工程师在座位上猝死。
第三件事,2019年10月7日,Facebook开除了一名要求公开陈姓中国软件工程师跳楼自杀事件调查真相的内部员工。
我们一件一件来说。
人生,不是“非死不可”
2019年9月19日的午后,一名中国籍软件工程师从Facebook的加州总部某栋办公楼4楼跳下,结束了自己38岁的生命。
...
2019-12-21 15:20
这篇文章是上一篇博客的补充,旨在把没有讲清楚的「用户级线程和内核级线程」补充完整。希望读者能对线程有更进一步的了解。
小白最近在学习多线程编程。
网上关于多线程的资料很多,小白很快就把线程的基本概念弄懂了,但关于「用户级线程和内核级线程」的概念,她却怎么也搞不清楚,只好向操作系统基础扎实的小明请教。
对于小白的问题,小明总会耐心解答:“线程里面这两个概念确实比较难理解,我先给你讲用户级线程吧。”
用户级线程
“既然你说你已经看过线程的基本概念,那我就直接跳过这一部分了。
很久很久之前,线程的概念是出现了,但操作系统厂商可不能直接就去修改操作系统的内核,因为对他们来说,稳定性是最重要的。贸然把未经验证的东西加入内核,出问题了怎么办?所以想要验证线程的可用性,得另想办法。”
...
2019-12-21 15:40
本文是MVP Ediwang写的回忆一个80后的拖控件的感悟,与君共勉:
每一代人都有记忆里的味道。煤球炉、黑白电视机是属于父母的记忆。而“拖控件”式编程,启蒙了无数像我这样的80后(嗯,89也算80后)。
经典旧世
2000 年那个时候,上海这样的城市里也不是每家每户都有电脑,我家也没有电脑。我在学校经常听几位家里条件不错的同学说他们玩电脑的事情。CIH、千年虫等名词让我对电脑有着非常强烈的好奇心。而我第一次体验到计算机,是在我母亲单位的机房里。它是一台卧式机箱、15寸 CRT 凸面屏显示器的 Windows 95 电脑。
...
2019-12-21 15:03
我们的APP生产上出了一次比较严重的事故,许多用户投诉登录后能看到别人的信息,收到投诉后我们就开始查找问题,一般这样的问题都是线程安全引起的,所以查找原因的思路也是按线程安全的思路去查。业务场景是这样的,用户登录后,点击一个页面查看信息,这个信息显示了别人的信息。...
2019-12-21 15:59
🚙 Index
数据采样的原因
常见的采样算法
失衡样本的采样
采样的Python实现
📚 数据采样的原因
其实我们在训练模型的过程,都会经常进行数据采样,为了就是让我们的模型可以更好的去学习数据的特征,从而让效果更佳。但这是比较浅层的理解,更本质上,数据采样就是对随机现象的模拟,根据给定的概率分布从而模拟一个随机事件。另一说法就是用少量的样本点去近似一个总体分布,并刻画总体分布中的不确定性。
因为我们在现实生活中,大多数数据都是庞大的,所以总体分布可能就包含了无数多的样本点,模型是无法对这些海量的数据进行直接建模的(至少目前而言),而且从效率上也不推荐。
...
2019-12-21 15:58
链表链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,而且链表相关的操作相对而言比较简单,也适合考察写代码的能力。链表的操作也离不开指针,指针又很容易导致出错。...
2019-12-21 15:26
Hello,各位小伙伴大家好,我是小栈君。
今天的分享主题是关于Springboot主题分享,其实在写这个系列主题之前有想过一些关于分享技术的顺序问题,因为我在创建“IT干货栈”这个公众号之初就是想要分享关于后端技术的一些干货。
想要各位感兴趣的小伙伴都能够学习到或是能够温故知新一些技术或者技能点,后端技术并不限于java还涉足于go、Python、区块链、人工智能和大数据等方面。
所以想将这些学习到的东西做成笔记分享给各位,避免实战中的踩坑,共同进步。
正是因为涉及的技术较多,反而在系列主题分享的时候会产生一丝顾虑,思前想后还是决定各个语言的教程系统的穿插发布。
...
2019-12-21 15:59
先贩卖一下焦虑,Java8发于2014年3月18日,距离现在已经快6年了,如果你对Java8的新特性还没有应用,甚至还一无所知,那你真得关注公众号“程序新视界”,好好系列的学习一下Java8的新特性。Lambda表达式已经在新框架中普通使用了,如果你对Lambda还一无所知,真得认真学习一下本篇文章了。...
2019-12-21 15:29
第一节介绍Spring启动(链接)时,介绍AbstractApplicationContext的过销毁过程,主要是调用了内部的destroyBeans方法,这节便来介绍bean的销毁过程。
一.销毁流程
destroyBeans方法内部委托给了DefaultSingletonBeanRegistry的destroySingletons方法。destroySingletons方法如下,比较清晰:
file
前面介绍过,DefaultSingletonBeanRegistry用一个Map缓存着所有的单例实例,对于对象的销毁,只要简单的将其从Map中移除就行。主要处理的是依赖关系下的bean销毁顺序以及回调接口的处理。上面先对disposableBeans中所涉及到的bean逐个进行销毁,然后再清理所有的依赖关系和缓存的单例实例。
...