工作心得和总结

很久没有更新博客,更新博客更是思路重新梳理的过程会加深技术的理解。工作中越来越体会中还有更多知识要去学习。目前学习的比较凌乱。先做杂记把。

1 spring动态配置数据源

   网上很多例子,都能实现,开发中存在很多疑虑和不信任,还发现了一些问题,但经过反复测试和看源码,明白了原理就不会再有疑虑,注意一下几点:

   1 ) 如果数据源动态添加写在配置文件里,启动时读取数据,改spring 配置文件读数据库连接为 属性文件java代码读取(这个是spring的功能),如果有动态添加删除的则需要另外配置一个配置文件。同时修改 动态数据源实现类 调用实现动态修改

 AbstractRoutingDataSource 的 afterPropertiesSet 方法,,最好看下AbstractRoutingDataSource的源码,里面包含很多个功能

 2 )另外一个要注意的是 采用的  ThreadLocal来安全保存当前线程的 数据源,但是只在当前线程有效,所以做数据库操作时要注意,每一个 数据库的增删改查之前都要 进行拦截器或者Aop切面实现指定数据源进行设置(DataSourceContextHolder.set('dbsource')),如果不设置的话极有可能 数据源为空或切换到了默认数据源,进而程序出错

  public static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();  
    public static void setDbType(String dbType) {
    	clearDbType();
        contextHolder.set(dbType);
    }
    public static String getDbType() {  
        return ((String) contextHolder.get());  
    }  
    public static void clearDbType() {  
    	
        contextHolder.remove();  
    }  

3) 涉及到多数据源事务的问题好多文章有了,有多种技术多种方法,就不说了

2 Netty 框架的使用

  最近要求用TCP进行两个程序通信,所以用来Netty来实现。通过官网介绍知道,其实高并发,无阻塞,高效、低耗的安全框架。两个看点

  1) 采用多线程机制,在建立workgroup时,参数为空则是cpu内核×2个线程,有参数则使用参数

  2) 采用ByteBuf 缓存存储字符串字节流,有两种方式,堆缓存和直接缓存

3 存在的问题:

   还用到了其他技术,但只做到了知其然但不知其所以然的境界,所以还要好好学习,好多技术例如Shiro源码,Vue源码框架,Angularjs和React, ES6,HBase,Kafka源码,element-ui等,需要去学习。

4 总结

   学习时学习别人碰到的问题和解决方法往往比 如何做对的更能快速学习,解决的思路很重要,多看源码多实践



猜你喜欢

转载自blog.csdn.net/jintianhen1/article/details/81039996