- 博客(31)
- 资源 (1)
- 收藏
- 关注
原创 分布式锁-redison
分布式锁-redison为了提高高并发,可以采用分段的分布式锁,比如商品的前100个使用一个分段分布式锁,后面100依次类似,类似correnthashmap高并发为了解决读写数据库和缓存不一致,可以将(写数据库,更新缓存)使用一个分布式锁原子性锁定来解决...
2021-02-12 17:17:58
342
原创 事务启动bean的处理(Propagation.REQUIRES_NEW不生效的原因)
继续进入在创建代理对象时传递了目标对象taget,在用cglib创建代理对象时,仍传过去了target最终返回的enhancer代理对象,如下图示,仍含有目标对象taget实例(这就解释了目标对象的自我调用 Propagation.REQUIRES_NEW 不会起作用的)首先调用的是AOP代理对象而不是目标对象,首先执行事务切面,事务切面内部通过TransactionInterceptor环绕增强进行事务的增强,即进入目标方法之前开启事务,退出目标方法时...
2020-05-13 14:36:39
1857
原创 NIO的零拷贝
java中零拷贝有2种(零拷贝是指没有CPU拷贝)1,mmap(内存映射)2,sendfile传统IO数据读写;File file = new File("test.txt");RandomAccessFile raf = new RandomAccessFile(file, "rw");byte[] arr = new byte[(int) file.length()];...
2020-04-23 16:22:56
912
原创 spring小结---bean循环依赖
// Eagerly cache singletons to be able to resolve circular references// even when triggered by lifecycle interfaces like BeanFactoryAware.boolean earlySingletonExposure = (mbd.isSingleton() &&a...
2020-04-12 20:36:31
340
原创 spring小结--只有一个参数的有参的构造函数的bean实例化
上一节讲到了无参构造函数的实例化bean,这节介绍只有一个有参的构造函数的bean实例化,以@Component("lmqsthird")public class LmqDao23456 { public LmqDao23456(LmqDao2 lmq) { } public void updatesecondquery() { ...
2020-04-12 20:29:28
3325
原创 spring小结---bean实例化
上节讲到aop,继续介绍bean的实例化过程,finishBeanFactoryInitialization(beanFactory);此方法:................ // Stop using the temporary ClassLoader for type matching. beanFactory.setTempClassLoader(null)...
2020-04-10 22:47:45
293
原创 spring小结---AOP源码分析
ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();// Prepare the bean factory for use in this context.prepareBeanFactory(beanFactory);try { // Allows post-processing of t...
2020-04-07 22:11:21
167
原创 spring小结
beanPostProcessor: 插手bean实例化过程,实例化之后,工作在bean实例被放在spring的容器之前,例如@PostConstruct, AOPBeanFactoryPostProcessor: 在bean实例化之前执行,针对beanfactory操作,进行类bd 管理操作,例如configclasspostprocesor对appfig进行cglib代理,生成代理类...
2020-04-05 15:39:10
143
原创 spring小结(6)-细看@Configuration的appconfig代理类
之前提过@Configuration的appconfig会被cglib代理,生存代理类,然后是对象,在进行含有@Bean方法调用进项1拦截,这里需要细看详细的代理类和拦截细节
2020-04-04 22:48:19
807
1
原创 spring小结-bean初始
在Refresh()具体看下 postProcessBeanFactory ConfigurationClassPostProcessorpublic void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) { int factoryId = System.identityHa...
2020-04-02 22:32:53
178
原创 spring小结(5)---继续@Configuration
上节提到@Configuration的cglib,假设将confi类的方法配置为static,会输出2次@Configuration@ComponentScan("com.lmq.BaseService")//@Import(MyImportBeanDefinitionRegistrar.class)@Import(MyImportSelector.class)public class...
2020-04-01 20:54:52
182
原创 spring小结(4)--invokeBeanFactoryPostProcessors(regularPostProcessors, beanFactory);
承接上一小节,介绍invokeBeanFactoryPostProcessors(regularPostProcessors, beanFactory);//回调实现BeanFactoryPostProcessor的实现类,目前默认加载的processor有ConfigurationClassPostProcessor,public class ConfigurationClass...
2020-03-29 16:24:51
657
原创 spring小结(3)-@Configuration
之前介绍 ConfigurationClassPostProcessor时很关键的类,解析@Configuration的类public class ConfigurationClassPostProcessor implements BeanDefinitionRegistryPostProcessor, PriorityOrdered, ResourceLoaderAware,...
2020-03-22 20:50:17
131
原创 spring小结(2)----ImportBeanDefinitionRegistrar
上一节主要说了bean注册流程,下面再补充介绍其中关键的流程再解析有@Config主机类时,也会处理@import@Configuration@ComponentScan("com.lmq.BaseService")@Import("实现ImportBeanDefinitionRegistrar接口的类") //也可以是normal类,importSelectpublic...
2020-03-20 21:47:31
478
原创 spring小结
1,factorybean与beanfactoryfactorybaen本身是一个bean,是由spring管理,要通过注入或者配置,由spring管理,在beanfactory存放,factorybaen里面有getobject(),getType方法,其中getobject可以获取2种对象,getobject(&name)从beanfactory获取factorybean自身对象,...
2020-03-04 22:06:02
271
原创 spring-mybatis与mybatis区别
1,spring-mybatis一级缓存失效,因为是sqlsesstionTemplate,其使用了一个代理proxysession,每次请求都会关闭session;public SqlSessionTemplate(SqlSessionFactory sqlSessionFactory, ExecutorType executorType, PersistenceExceptionTran...
2020-03-01 15:11:24
2573
1
原创 LeetCode 1235. Maximum Profit in Job Scheduling
//dp+二分 int n = startTime.size(); vector<vector<int>> jobs(n); for (int i = 0; i < n; i++) { jobs[i].push_back(startTime[i]); jobs[i].pu...
2019-11-11 16:10:28
218
翻译 java UTC->local
public String utcToLocal1(String utcTime) { String datstr=""; try { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); df.setTimeZone(TimeZone.getTimeZo...
2019-11-05 15:47:43
105
原创 RabbitMq springboot 启动及消费者消费消息源码分析
首先这是application的启动在加载postprocessor时加载其他加载bean省略这里介绍与rabbitmq相关的。。。。。还有自定义的beanwanle完了后接着扫描注解,动态代理创建了mqadmin开始注册监听器扫描组件有线程了开始创建线程池...
2019-09-07 22:03:41
793
原创 kafka 消费者分区rebalance
比如RangeAssignor extends AbstractPartitionAssignor在AbstractPartitionAssignorpublic Map<String, Assignment> assign(Cluster metadata, Map<String, Subscription> subscriptions) { Se...
2019-07-25 11:41:19
438
1
转载 239. Sliding Window Maximum
滑动k-窗口最大值,考虑使用最大堆,java中优先级队列PriorityQueue是最小堆实现,可以借助实现,关于 PriorityQueue可查其他资料。class Solution { public int[] maxSlidingWindow(int[] nums, int k) { if (k<=0) return new int[0]; ...
2019-06-18 14:20:44
84
转载 72. Edit Distance leetcode
Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2. (each operation is counted as 1 step.)You have the following 3 operations permitted on a word:...
2019-06-05 17:46:28
109
原创 leetcode-80. Remove Duplicates from Sorted Array II
Given a sorted arraynums, remove the duplicatesin-placesuch that duplicates appeared at mosttwiceand return the new length.Do not allocate extra space for another array, you must do this bymod...
2019-06-04 10:12:06
114
原创 redis 源码分析---通信模块之服务端处理socket连接
gdb redis-server, gdb调试,首先打断点,处理连接,需要找到对应函数,打上断点在 anet.c 文件中找到 anetGenericAccept 函数,输入:b anetGenericAccept接着重新运行redis-server, 发现server运行起来后,并没有进入该断点,原因是还没有redis-cli发起连接,这里再打开一个 redis-cli,连接...
2019-04-23 20:38:42
406
原创 多线程交替打印数字1,2,3....n ,第i个线程打印i, lock 信号量实现
public class MainThread { public static ReentrantLock lock=new ReentrantLock(); public static void main(String[] args) throws Exception { ArrayList<Thread> list=new ArrayList...
2019-04-20 20:28:59
734
原创 java泛型使用介绍
123,泛型方法类不需要是泛型类,例子public class mainTest { public <T> void f(T x){ System.out.println(x.getClass().getName()); } public static void main(String []args) { ...
2019-04-02 11:27:14
329
翻译 javaassist 创建类
创建一个类,测试,import javassist.CannotCompileException;import javassist.ClassPool;import javassist.CtClass;import javassist.CtMethod;import javassist.LoaderClassPath;import javassist.NotFoundExceptio...
2019-03-07 12:49:14
533
原创 springboot启动流程之bean注册-源码分析(1)
1,断点进入主程序2,初始化组件其中实例化组件时,使用反射,如下图示初始完组建后,接着是application的run方法在上面过程中,进入context = this.createApplicationContext();进入,默认创建一个AnnotationConfigServletWebServerApplicationContext实例...
2019-02-23 22:54:08
756
原创 spring- 基于注解annotions的AOP源码流程整体分析
//本文例子省略,写个aspect,为某个方法增强注入即可,图后面会加上 AOP:【动态代理】 指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式; 1、导入aop模块;Spring AOP:(spring-aspects) 2、定义一个业务逻辑类(mathCalculator);在业务逻辑运行的时候将日志进行打印(方法之前、方法运行结束...
2019-02-17 20:02:06
261
原创 jamvm的浅显认识
分为几个模块1,class对象的认识//待续2,anno的认识:首先初始化一些注解map,static int initAnnotation() { Class *enum_cls, *map_cls, *anno_inv_cls, *obj_ary_cls; Class *anno_ary_cls, *dbl_anno_ary_cl
2017-11-01 16:47:18
1287
原创 Ambari 与hdp 集群搭建教程
Ambari 与hdp 集群搭建教程集群环境os为centos6.8 server 1,各个节点进行:网络(静态IP)配制(192.168.10.30master8g192.168.10.31slave18g192.168.10.32Slave28g
2017-03-10 18:01:58
4908
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人