`
ahua186186
  • 浏览: 554815 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
文章列表
http://www.daocloud.io/microservices.html
http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
1.这2天学了一下spring boot,为了扫盲spring cloud,记录学习心得。 2. 第一天简单回答几个问题: (1)spring boot是如何内嵌tomcat容器的。 解答:这个我没看代码也大概猜到了,因为以前看ClassPathXmlApplicationContext源码的时候,AbstractApplicationContext的refresh()方法是有很多预留的扩展方法的,不出所料,spring boot正式通过AnnotationConfigEmbeddedWebApplicationContext类实现onRefresh()的方式内嵌tomcat容器的 ...
-- 序列表 DROP TABLE IF EXISTS sequence; CREATE TABLE sequence ( name              VARCHAR(50) NOT NULL, current_value INT NOT NULL, increment       INT NOT NULL DEFAULT 1, PRIMARY KEY (name) ) ENGINE=InnoDB; -- INSERT INTO sequence VALUES ('MovieSeq',3,5); -- 获取当前值 DROP FUNCTION IF EXISTS currval; D ...
1.生成公钥和私钥放到C:\Users\itservice\.ssh,并在oschina添加公钥 http://blog.crazyphper.com/?p=3472 2.添加本地仓库到远程仓库: http://blog.csdn.net/xdonx/article/details/8860310 1. git init 2. git add . 3. git commit -am "###"      -------以上3步只是本地提交 4.git remote add origin git@xx.xx.xx.xx:repos/xxx/xxx/xxx.git 5.gi ...
SimpleStatementHandler : 真正做业务处理的类。 如果想从ORM层实现分库分表,StatementHandler接口是最佳切入点。 (1)通过MappedStatement,DynamicSqlSource,DynamicContext进行SQL解析,路由,插件增强等。 (2)执行JDBC操作,如果是查询则需要转换ResultSet为配置文件中的配置的resultMap属性的对象,并反填主键如果有必要的话。 /** * Copyright 2009-2015 the original author or authors. * * License ...
1.update:   清除缓存,然后委托给StatementHandler实现类处理 @Override public int update(MappedStatement ms, Object parameter) throws SQLException { ErrorContext.instance().resource(ms.getResource()).activity("executing an update").object(ms.getId()); if (closed) { throw new ExecutorE ...
DefaultSqlSession任务:获取MappedStatement,然后委托给相关的executor处理。 DefaultSqlSession中executor属性的初始化,会根据Configuration中的cacheEnabled(二级缓存开关)来初始化 问题:mybatis是如何控制解决并发问题的。 解答:通过SqlSession管理员类SqlSessionManager中线程本地变量ThreadLocal localSqlSession+动态代理SqlSession解决 public class SqlSessionManager implements SqlSessi ...
1.MapperProxyFactory是Mapper接口的动态代理工厂类:经典的C/S架构同步访问模型的实现 方法代理类MapperProxy, 其他:MapperMethod /** * Copyright 2009-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with t ...
最近没什么事,花了一周的时间把mybatis源码看完了,现自我总结一下,尽可能的用一句话总结,方便自己理解和回顾。 出名的框架几乎都是从初始化配置文件开始的,mybatis也一样。 mybatis的配置文件是通过工具类XMLConfigBuilder,XMLMapperBuilder,XMLStatementBuilder解析后都存在Configuration中 private void parseConfiguration(XNode root) { try { propertiesElement(root.evalNode("properties ...
1.spring AOP的原理都知道是从解析自定义标签时注册一个beanDefiniton到beanFactory,然后在bean加载过程中做动态代理(initializeBean时会做一些最后的初始化,包括aware接口的调用,applyBeanPostProcessorsBefore/AfterXXX,initMethod,InitializingBean接口的调用) 2.但是真正添加AnnotationAwareAspectJAutoProxyCreator是在 ClassPathXmlApplicationContext("..")初始化时refresh()方法中的 ...
1. 今天发现一个和奇怪的问题: org.hibernate.HibernateException: connnection proxy not usable after transaction completion. 这个问题很难重现,看了看HibernateTransactionManager源码也没有头绪,最后还是无意中看到一个疑点猜出来。 原因是在一个BIZ业务中有10几个基于hibernate的update操作,有2个是基于spring jdbc的insert操作,  全部改为一种事务操作就解决了问题,避免可能的事务嵌套。
最近写了个多线程任务处理组件用来处理大批量的业务数据, 从业务监控数据中发现少量业务数据修改时一直处于等待状态,很明显是出现类似  for update 锁表,锁行的情况。 这种问题是系统设计(复杂的业务逻辑)导致的, ...
package com.xxx; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * * 使用demo * * group(data,new String[]{"code","name"},new String[]{"amount","quantity"},new String[][]{{"a ...
注: 这种锁数据的做法虽然比较稳定,但感觉有点弱智,性能也低,以后准备考虑生产数据的时候给数据分配一个机器号(随机算法即可),然后通过一个配置表配置机器号节点,消费数据的应用进程通过竞争机器号消费或处理数据相关逻辑即可。 一:单线程锁数据单线程执行任务(即当包工头和又当工人,即拉皮条又接客) package xxx.thread; import java.io.IOException; import java.util.Date; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import o ...
Global site tag (gtag.js) - Google Analytics