java高频面试题-设计模式
1 你所知道的设计模式有哪些?Java 中一般认为有 23 种设计模式,我们不需要所有的都会,但是其中常用的几种设计模式应该去掌握。下面列出了所有的设计模式。需要掌握的设计模式我单独列出来了,当然能掌握的越多越好。
你还在每个Service里手写Redis?
打开一个老项目,每个用 Redis 的地方都重复着同一套:redisTemplate.opsForValue().set()、手动拼 key、手动设过期时间、手动处理异常。代码里散落着上百处几乎一模一样的模板代码,改一个序列化方式得改几十个文件。
AOP:一行 method.invoke 把调用栈干爆:CGLIB 和 JDK 动态代理差在哪
先做个小实验。用 CGLIB 给 UserService 生成代理,在拦截器里写这么一行:method.invoke(obj, args); // obj 是代理对象运行,控制台直接甩出一大屏调用栈,最后一行:StackOverflowError。一行代码,把栈干爆了。
从头捋了一遍 Java 代理机制,收获颇丰
前文提到,动态代理机制使用了反射,Spring 中的 AOP 由于使用了动态代理,所以也相当于使用了反射机制。那么,代理是什么?动态代理又是什么?动态代理中是如何使用反射的?全文脉络思维导图如下:1.
AOP怎么实现
我说动态代理啊,他说还有呢?我当时就懵了,还有啥?还是上次那个面试,聊完IOC,面试官紧接着问:那AOP你了解多少?是怎么实现的?我张嘴就来:动态代理啊。面试官笑了笑说:嗯,动态代理没错,但你能说详细点吗?JDK代理和CGLIB有啥区别?
设计模式——Proxy静态代理与动态代理
简介意图:为其他对象提供一种代理以控制对整个对象的访问。主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。
浅入浅出的代理模式与Spring事务管理
最近在开发业务代码的时候,犯了一个事务注解的错误:在同一个类的非事务方法中调用了另一个事务方法,导致事务没有生效,如下所示:其中confirmPurchaseOrder是一个事务方法:这样在直接调用batchConfirmPurchaseOrders方法时,如果confirmPurchaseOrder方法发生了异常,是不会回滚的。
Java 反射以及动态代理,来看就懂了
各位志同道合的朋友们大家好,我是一个一直在一线互联网踩坑十余年的编码爱好者,现在将我们的各种经验以及架构实战分享出来,如果大家喜欢,就关注我,一起将技术学深学透,我会每一篇分享结束都会预告下一专题反射反射机制是Java 语言提供的一种基础功能,赋予程序在运行时自省的能力。