源码

ThreadLocal<T> 源码解析

谁说我不能喝 提交于 2019-12-04 21:19:42
在activeJDBC框架内部的实现中看到了 ThreadLocal 这个类,记录下了每个线程独有的连接 private static final ThreadLocal<HashMap<String, Connection>> connectionsTL = new ThreadLocal<>(); 感觉是个知识点,就打开源码看看了。先看一下源码里的解释 This class provides thread-local variables. These variables differ from their normal counterparts in that each thread that accesses one (via its get or set method) has its own, independently initialized copy of the variable. ThreadLocal instances are typically private static fields in classes that wish to associate state with a thread (e.g., a user ID or Transaction ID). 这个鸟文,瞎翻译一下,就是: 这个类提供了供线程专享的变量。这些变量不同与其它普通的变量

带你手把手重读 Handler 源码,聊聊那些你所不知道一二三

谁都会走 提交于 2019-12-04 21:04:54
大家应该都知道,Android 的消息机制是基于 Handler 实现的。还记得一年前的自己就看了几篇博客,知道了 Handler、Looper、MessageQueue 就自以为了解了 Handler 的原理。但其实看源码的过程中慢慢就会发现,Handler 的内容可不止这点, 像同步屏障、 Handler 的 native 层的阻塞唤醒机制等等这些知识以前就没有理解清楚。因此写下这篇文章,从头开始重塑对 Handler 的印象。 觉得文章太长的可以找我拿了完整的PDF自行研究 参考: (更多完整项目下载。未完待续。源码。图文知识后续上传github。) 可以点击 关于我 联系我获取完整PDF ( VX:mm14525201314 ) Handler 采用的是一种生产者-消费者模型,Handler 就是生产者,通过它可以生产需要执行的任务。而 Looper 则是消费者,不断从 MessageQueue 中取出 Message 对这些消息进行消费,下面我们看一下其具体的实现。 发送消息 post & sendMessage 首先我们都知道,Handler 对外主要有两种方式来实现在其所在 Looper 所在线程执行指定 Runnable ——post 及 sendMessage ,它们都有对应的 delay 方法 。而不论是 post 还是 sendMessage ,都会调用到

聚筵商城APP开发源码

坚强是说给别人听的谎言 提交于 2019-12-04 20:40:29
聚筵商城系统软件开发,聚筵商城模式制度开发,聚筵商城小程序开发,聚筵商城APP平台开发,聚筵商城模式制度开发 Failed to load resource: net::ERR_CONNECTION_REFUSED https://stat.lianmeng.360.cn/s2/srp.gif?lm_extend=ctype%3A29%7Clmbid%3A21%2…XjhrW7XwuA&ds=7&wp=AAAAAF3R7MgAAAAAAAWSgSHWRRg2VKCL55t3sQ&_r=1574038728246 Failed to load resource: net::ERR_CONNECTION_TIMED_OUT https://hao.ssl.dhrest.com/time.php?_callback=__jsonp2__&t=2623411 Failed to load resource: net::ERR_NETWORK_IO_SUSPENDED https://hao.ssl.dhrest.com/time.php?_callback=__jsonp2__&t=2623419 Failed to load resource: net::ERR_NETWORK_IO_SUSPENDED 【张:I56-2278-I528可微】聚筵商城系统软件开发,聚筵商城模式制度开发

jenkins如何使用

感情迁移 提交于 2019-12-04 20:33:25
操作的前提就是你已经准备好了远端的仓库 1. 先登录 jenkins 平台,进入主界面点击 新建任务。 2. 给自已的任务起个名字,然后选择构建自由风格的项目 【最后点击确定】 3. 进入具体任务的配置界面 4.基本配置操作 5.源码管理 6.源码管理里面增加github的用户名和密码(取得github的权限) 7.构建触发器 每15分钟构建一次:H/15 * * * * 或*/5 * * * * 每天8点构建一次:0 8 * * * 每天8点~17点,两小时构建一次:0 8-17/2 * * * 周一到周五,8点~17点,两小时构建一次:0 8-17/2 * * 1-5 每月1号、15号各构建一次,除12月:H H 1,15 1-11 * */1 * * * * (每1分钟检查一次源码变化) 0 2 * * * (每天2:00 必须build一次源码) 8.构建项目(执行代码) 9.构建后的操作 10.邮件收件人配置 选择Editable Email Notification 点击Advanced Setting… 点击Triggers中的高级按钮 Recipient List输入邮件接收列表,多个邮件逗号分隔 来源: https://www.cnblogs.com/nlry901/p/11881950.html

SpringBoot 源码解析 (三)----- Spring Boot 精髓:启动时初始化数据

◇◆丶佛笑我妖孽 提交于 2019-12-04 20:06:23
在我们用 springboot 搭建项目的时候,有时候会碰到在项目启动时初始化一些操作的需求 ,针对这种需求 spring boot为我们提供了以下几种方案供我们选择: App li cat ionRunner 与 CommandLineRunner 接口 Spring容器初始化时InitializingBean 接口和@PostConstruct Spring的事件机制 ApplicationRunner与CommandLineRunner 我们可以实现 ApplicationRunner 或 CommandLineRunner 接口, 这两个接口工作方式相同,都只提供单一的run方法,该方法在SpringApplication.run(…)完成之前调用,不知道大家还对我上一篇文章结尾有没有印象,我们先来看看这两个接口 public interface ApplicationRunner { void run(ApplicationArguments var1) throws Exception; } public interface CommandLineRunner { void run(String... var1) throws Exception; } 都只提供单一的run方法,接下来我们来看看具体的使用 ApplicationRunner

微信跑分系统源码开发

守給你的承諾、 提交于 2019-12-04 19:48:55
USDT跑分系统开发请联系严经理189-2212-1525 USDT跑分APP开发,微信跑分系统开发,微信跑分系统源码开发,现成微信跑分系统开发,USDT跑分系统开发制度一USDT跑分系统开发案例,USDT跑分模式开发,USDT跑分源码开发,跑分接单coin支付系统开发,USDT承兑商接单系统开发,USDT支付平台搭建,USDT跑分系统接单开发,支付宝跑分系统开发,支付宝跑分软件开发,支付宝跑分平台开发,微信跑分系统开发开发,微信跑分模式开发,微信跑分软件开发,微信跑分APP开发,支付宝跑分平台开发 ==========本公司为专业的软件开发公司,只开发类似软件,玩家勿扰,非平台!!!=============== 据ETC Core消息,ETC核心开发人员和参与的生态系统利益相关者就Agharta硬分叉提案的范围和时间达成了一致。据悉,Agharta硬分叉的升级范围将仅包括君士 区kuai链承兑商支付如何解决行业痛点问题? 1.承兑商采用账户轮询,可实现即时到账,T+0结算 2.数字资产作为支付方式,可扩大市场业务如境外市场 3.数字资产资金区kuai链可查,交易信息可追溯,安全可靠 4.支付平台与商户收coin更安全、账户不存在被冻结的问题 5.“coin走通道,钱走线下”新模式,平台、商户不直接接触法coin 6.以承兑商来做收款方,可实现资金分流处理解决入金问题。

Spring Security登录验证流程源码解析

こ雲淡風輕ζ 提交于 2019-12-04 19:47:57
一、登录认证基于过滤器链 Spring Security的登录验证流程核心就是过滤器链。当一个请求到达时按照过滤器链的顺序依次进行处理,通过所有过滤器链的验证,就可以访问API接口了。 SpringSecurity提供了多种登录认证的方式,由多种Filter过滤器来实现,比如: BasicAuthenticationFilter实现的是HttpBasic模式的登录认证 UsernamePasswordAuthenticationFilter实现用户名密码的登录认证 RememberMeAuthenticationFilter实现登录认证的“记住我”的功能 SmsCodeAuthenticationFilter实现短信验证码登录认证 SocialAuthenticationFilter实现社交媒体方式登录认证的处理 Oauth2AuthenticationProcessingFilter和Oauth2ClientAuthenticationProcessingFilter实现Oauth2的鉴权方式 根据我们不同的需求实现及配置,不同的Filter会被加载到应用中。 二、结合源码讲解登录验证流程 我们就以用户名、密码登录方式为例讲解一下Spring Security的登录认证流程。 2.1 UsernamePasswordAuthenticationFilter

编译OpenJDK时碰到的问题

北城以北 提交于 2019-12-04 19:43:12
🙂🙂🙂关注**微信公众号:【芋艿的后端小屋】**有福利: RocketMQ / MyCAT / Sharding-JDBC 所有 源码分析文章列表 RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址 您对于源码的疑问每条留言 都 将得到 认真 回复。 甚至不知道如何读源码也可以请教噢 。 新的 源码解析文章 实时 收到通知。 每周更新一篇左右 。 1. /usr/include/bits/string3.h:82:32: error: call to '__warn_memset_zero_len' declared with attribute warning: memset used with constant zero length parameter; this could be due to transposed parameters [-Werror] 解决的方式:当时使用的gcc的版本4.7.3,这个版本是有bug的,将gcc的版本更换到了4.8之后就OK了。( gcc4.8 ubuntu安装 ) 另外推荐参考教程地址: 编译 openJDK Source Code 来源: oschina 链接: https://my.oschina.net/u/210730/blog/144108

mybatis源码分析之02配置文件解析

痞子三分冷 提交于 2019-12-04 19:06:47
该篇正式开始学习mybatis的源码,本篇主要学习mybatis是如何加载配置文件mybatis-config.xml的, 先从测试代码入手。 public class V1Test { public static void main(String[] args) { try (InputStream is = Resources.getResourceAsStream("mybatis-config.xml")) { SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); SqlSession sqlSession = sqlSessionFactory.openSession(true); FemaleMapper femaleMapper = sqlSession.getMapper(FemaleMapper.class); Female female = femaleMapper.getFemaleById(1); System.out.println(female); } catch (Exception e) { e.printStackTrace(); } } } 1. 加载mybatis配置文件mybatis-config.xml InputStream is =