源码

Spring5.0源码深度解析之SpringBean声明事务底层实现原理

点点圈 提交于 2020-01-17 11:48:11
Spring事务 Spring声明式事务让我们从复杂的事务处理中得到解脱,使我们再也不用去处理这些步骤:获得连接、关闭连接、事务提交和回滚操作。再也不需要在事务相关方法中处理大量的try..catch..finally代码。 Spring中事务的使用虽然已经相对简单的多,但是,还是有很多的使用和配置规则,下面我们开始我们本章重点。 SpringAop基本原理和思想 1、事务保证数据一致性问题,只需要加上 @Transactional 2、纯手写SpringAop环绕通知+手动事务就可以声明事务 基于Spring注解方式构建整合JDBC环境 @Repository public class OrderDao { @Autowired() private JdbcTemplate jdbcTemplate; public void addOrder() { jdbcTemplate.update("insert into order_info values(null,'mayikt','zhangsan','1111')"); } } @Configuration @ComponentScan("com.mayikt") @EnableTransactionManagement //开启事务注解 public class MyConfig { //注入到ioc容器中 beanid

五味2019

女生的网名这么多〃 提交于 2020-01-17 09:45:11
前言 恍恍惚惚又是一年,明天就是2019年的最后一个工作日,本想着公历2020年之前写自己的2019总结,没想到明日复明日,一直复到了今天,不过也还好,毕竟农历还是2019年。趁着最后一个工作日之前,总结一下我的今年:我的2019,有激情、有慵懒、有创新、有平淡、有不甘、有失利,最后也有目标… 移动端 重构----激情 今年是我在58的第二年,前一年没什么大事,平平淡淡写需求,除了业务还是业务,一个版本一个版本的迭代,日复一日的工作开始让我感觉到厌倦。上半年除了需求外,做了一版主站的重构,列表页详情页。梳理代码、熟悉一些年久失修的逻辑、评估风险、分解任务、设计模型、代码编写、处理异常及冗余代码、兼容老版本、自测、AB测、上线…具体内容就不详细说了,代码质量有很大提升,重点是整个过程下来一直到上线没出现严重bug,毕竟这样的一个APP稳定是前提。这两个月算是我 激情 的一段吧,真的,毕竟第一次经历这么一个大的项目重构,每天愿意花很多的时间去思考处理整个过程所发生以及会发生的问题,项目顺利上线,心里才踏实了下来。 TensorFlow物体识别----创新 接下来的时间我有幸参加组内的创新项目–移动平台上的AI技术探索。基于TensorFlow+MobileNet+SSD的车辆及物体识别,对于我来说这些都是新事物,但是里面所设计到的算法、数学和一些神经网络的东西着实让我头疼

CentOS6.5一键安装MySQL5.5.32(源码编译)

旧时模样 提交于 2020-01-17 09:13:20
################################################## #mysql_install.sh # #initialize the Linux system to deploy lnmp # #2016/10/31 16:41 # #kangjie # ################################################## #!/bin/sh #定义文件的位置 LOG_PATH=/server/initlog LOG_FILE=$LOG_PATH/mysql_install.log #MySQL安装路径 MYSQL_BASEDIR=/data/mysqlbasedir #数据目录 MYSQL_DATA=/data/mysql MYSQL_POS=/home/package i=0 判断目录是否存在,没有则创建 [ ! -d $LOG_PATH ] && mkdir -p $LOG_PATH [ ! -d $MYSQL_BASEDIR ] && mkdir -p $MYSQL_BASEDIR [ ! -d $MYSQL_DATA ] && mkdir -p ${MYSQL_DATA}/data [ ! -d $MYSQL_POS ] && mkdir -p $MYSQL_POS #mysql5.5.32

zabbix 源码安装

谁都会走 提交于 2020-01-17 08:49:38
操作系统:CentOS IP地址:192.168.21.127 Web环境:Nginx+MySQL+PHP zabbix版本:Zabbix 2.2 LTS 备注:Linux下安装zabbix需要有LAMP或者LNMP运行环境 准备篇: 一、Web环境:Nginx+MySQL+PHP CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14 http://www.osyunwei.com/archives/7891.html 二、zabbix软件包下载 zabbix-2.2.6 http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.6/zabbix-2.2.6.tar.gz 上传zabbix-2.2.6.tar.gz到服务器/usr/local/src目录下面 安装篇 一、创建、导入zabbix数据库 cd /usr/local/src #进入软件包下载目录 tar zxvf zabbix-2.2.6.tar.gz #解压 cd /usr/local/src/zabbix-2.2.6/database/mysql #进入mysql数据库创建脚本目录 ls #列出文件,可以看到有schema.sql、images.sql、data.sql这三个文件

【一起学源码-微服务】Hystrix 源码三:Hystrix核心流程:Hystix降级、熔断等原理剖析

自作多情 提交于 2020-01-17 07:53:23
说明 原创不易,如若转载 请标明来源! 欢迎关注本人微信公众号: 壹枝花算不算浪漫 更多内容也可查看本人博客: 一枝花算不算浪漫 前言 前情回顾 上一讲我们讲解了Hystrix在配合feign的过程中,一个正常的请求逻辑该怎样处理,这里涉及到线程池的创建、HystrixCommand的执行等逻辑。 如图所示: 高清大图:https://www.processon.com/view/link/5e1c128ce4b0169fb51ce77e 本讲目录 这一讲开始讲解Hystrix的看家本领:熔断+降级。 熔断功能是Hystrix最核心的组件,当然也是最复杂的一块。 源码中细节太多,本讲我们主要还是专注于它的设计思想去学习。 目录如下: HystrixCircuitBreaker初始化过程 Hystrix熔断机制(CLOSED/OPEN/HALF_OPEN) fallback降级机制 源码分析 HystrixCircuitBreaker初始化过程 我们还是会以 AbstractCommand 为突破口,这里继续看它的构造函数,其中里面有初始化熔断器 initCircuitBreaker() 的过程,具体代码如下: abstract class AbstractCommand<R> implements HystrixInvokableInfo<R>, HystrixObservable

String类源码阅读

£可爱£侵袭症+ 提交于 2020-01-17 07:34:58
一、简介 String类实现了 java.io.Serializable序列化接口, Comparable<String>比较接口, CharSequence 三个接口,String类是final的,因此不能被其他类继承。 public final class String implements java.io.Serializable, Comparable<String>, CharSequence { //.... } String底层是通过 char[]数组 实现的,所有对字符串的操作都是通过字符数组来进行 /** The value is used for character storage. */ //value[]用于存储字符串内容,被final修饰,说明一旦创建就不可被修改 private final char value[]; /** Cache the hash code for the string */ private int hash; // Default to 0 序列化相关 /** use serialVersionUID from JDK 1.0.2 for interoperability */ //serialVersionUID是记录序列化的版本号 private static final long serialVersionUID =

Go语言常用命令介绍

孤街浪徒 提交于 2020-01-17 05:26:02
go build go build 命令主要是用于测试编译。在包的编译过程中,若有必要,会同时编译与之相关联的包。 如果是普通包,当你执行go build命令后,不会产生任何文件。 如果是main包,当只执行go build命令后,会在当前目录下生成一个可执行文件。如果需要在$GOPATH/bin木下生成相应的exe文件,需要执行go install 或者使用 go build -o 路径/a.exe。 如果某个文件夹下有多个文件,而你只想编译其中某一个文件,可以在 go build 之后加上文件名,例如 go build a.go;go build 命令默认会编译当前目录下的所有go文件。 你也可以指定编译输出的文件名。比如,我们可以指定go build -o myapp.exe,默认情况是你的package名(非main包),或者是第一个源文件的文件名(main包)。 go build 会忽略目录下以”_”或者”.”开头的go文件。 如果你的源代码针对不同的操作系统需要不同的处理,那么你可以根据不同的操作系统后缀来命名文件。例如有一个读取数组的程序,它对于不同的操作系统可能有如下几个源文件: array_linux.go array_darwin.go array_windows.go array_freebsd.go go build的时候会选择性地编译以系统名结尾的文件

SpringMVC源码阅读:拦截器

纵然是瞬间 提交于 2020-01-17 05:20:09
1.前言 SpringMVC是目前J2EE平台的主流Web框架,不熟悉的园友可以看 SpringMVC源码阅读入门 ,它交代了SpringMVC的基础知识和源码阅读的技巧 本文将通过源码(基于Spring4.3.7)分析,弄清楚SpringMVC如何完成视图解析的 2.源码分析 在 SpringMVC源码阅读:拦截器 分析 过doDispatch的运行过程,这里再分析一遍 回到DispatcherServlet类的doDispatch方法,看看doDispatch如何获取ModelAndView HandlerMapping根据request获得HandlerExecutionChain 根据HandlerExecutionChain获取HandlerAdapter HandlerAdapter根据request,response和HandlerExecutionChain调用handle方法返回ModelAndView 然后交由 processDispatchResult 处理 1023行检测从doDispatch方法运行到此是否有异常 1037行根据ModelAndView渲染视图 1259根据视图名称解析成View对象 1282行调用AbstractView的render方法进行渲染 点进去,这里以解析ftl做测试 301行创建包含动态值和静态属性的Map

java当前时间获取

大城市里の小女人 提交于 2020-01-17 01:57:55
前言 接着 源码阅读:new Date之旅 ,补充几种关于获取当前时间的方式。 Date 在Java中,获取当前日期最简单的方法之一就是直接实例化位于Java包java.util的Date类。 Date date = new Date ( ) ; System.currentTimeMillis 获取标准时间可以通过System.currentTimeMillis()方法获取,此方法不受时区影响,得到的结果是时间戳格式的。 long time = System . currentTimeMillis ( ) ; 源码: /** * Returns the current time in milliseconds. Note that * while the unit of time of the return value is a millisecond, * the granularity of the value depends on the underlying * operating system and may be larger. For example, many * operating systems measure time in units of tens of * milliseconds. * * <p> See the description of the

超好用:免费好用的图床

眉间皱痕 提交于 2020-01-16 20:44:37
目录 超好用:免费的图床 非技术手段 1.SM.MS 2.iPic 3.聚合图床 4.小贱贱图床 5.路过图床 技术手段 1.PicGo 2.PicUploader 3.imgurl 4.weiboUploader-Watermark 5.gitPic 结语 超好用:免费的图床 经常写文章的小伙伴可能会头疼,图片需要一张一张的上传,费劲也耗时,今天就推荐几款超简单的图床工具。图床就是一个在网络上存储图片的地方,目的是为了节省本地服务器空间,加快图片打开速度。话不多说,进入正题。 非技术手段 1.SM.MS 永久存储免注册,图片链接支持https,可以删除上传的图片,提供多种图片链接格式图片上传限制:每个图片最大5M,每次最多上传10张。你可通过浏览器上传图片,网址: https://sm.ms , 也可以下载软件smpic.exe https://github.com/kookob/smpic/blob/master/exe/smpic.exe?raw=true 使用快捷键Ctrl+Alt+S 即可直接上传到图床,图片地址就保存到剪切板了(可配置支持markdown) 项目源码地址: https://github.com/kookob/smpic 2.iPic iPic 可以屏幕截图、还是复制图片,都可以自动上传、保存 Markdown 格式的链接,直接粘贴插入,也可使用 Hexo