- 浏览: 554815 次
- 性别:
- 来自: 深圳
最新评论
-
jiang2011jiang:
mybatis3源码核心类1--Configuration -
tuyf_hs:
同求 图片
zookeeper+dubbo+dubbo管理集群的简要配置[单机] -
安静听歌:
请问图片还能找的会吗?你的图片和原文的图片都挂了,,,如果有图 ...
zookeeper+dubbo+dubbo管理集群的简要配置[单机] -
ahua186186:
yngwiet 写道楼主,有一个地方不太明白,为什么要用“ge ...
ListView中getChildAt(index)的使用注意事项 -
yngwiet:
楼主,有一个地方不太明白,为什么要用“getChildAt(p ...
ListView中getChildAt(index)的使用注意事项
文章列表
http://www.daocloud.io/microservices.html
spring boot最全配置
- 博客分类:
- spring boot源码
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 锁表,锁行的情况。
这种问题是系统设计(复杂的业务逻辑)导致的, ...
JAVA 实现大批量数据的分组统计
- 博客分类:
- JAVA SE
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 ...