Spring AOP 的实现原理 | 15 篇热文回顾

(点击

上方公众号

,可快速关注)



本文精选了 ImportNew 2018年1月份的15篇热门文章。其中有技术分享,行业资讯和面试经验。



注:以下文章,点击标题即可阅读





《 Spring AOP 的实现原理 》



AOP(Aspect Orient Programming),我们一般称为面向方面(切面)编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ;而动态代理则以Spring AOP为代表。本文会分别对AspectJ和Spring AOP的实现进行分析和介绍。





《 通向架构师的道路(第一天)之 Apache 整合 Tomcat 》



这是一个通用的Web即B/S工程的架构,它由:Web Server,App Server和DB Server三大部分组成。Web Server置于企业防火墙外,这个防火墙,大家可以认为是一个CISCO路由器,然后在CISCO路由器上开放了两个端口为:80和443。





《 关于Java 面试,你应该准备这些知识点 》



马老师说过,员工的离职原因很多,只有两点最真实:钱,没给到位;心,受委屈了。当然,我是想换个平台,换个方向,想清楚为什么要跳槽,如果真的要跳槽,想要拿到一个理想的offer,除了运气,基本功也要足够的扎实,希望下面的面试经验能给你们能够提供一些帮助。





《 商业项目中最受欢迎的 7 种编程语言,Java 上榜 》



Semaphore 是一个国外持续集成/持续部署方案服务商。Semaphore 称自己在过去三年对其开发者用户进行调查,调查他们在开发商业项目时一般都使用哪些语言。这些数据基于成千上万个在 Semaphore 上进行测试和部署的项目的人。所以现在这是迄今为止关于商业项目中最受欢迎的开源编程语言的全面报告。





《 大型网站系统与 Java 中间件实践 》



分布式系统的定义:组件分布在网络计算机上,组件间仅仅通过消息传递来通信并协调行动。分布式系统的意义:升级单机处理能力的性价比越来越低,单机处理能力存在瓶颈和处于稳定性和可用性的考虑。





《 三张图彻底了解 Java 中字符串的不变性 》



一旦一个string对象在内存(堆)中被创建出来,他就无法被修改。特别要注意的是,String类的所有方法都没有改变字符串本身的值,都是返回了一个新的对象。如果你需要一个可修改的字符串,应该使用StringBuffer 或者 StringBuilder。否则会有大量时间浪费在垃圾回收上,因为每次试图修改都有新的string对象被创建出来。





《 一个正则式引发的血案 》



我从来没有想到我可以看到一个差劲的正则式造成一台服务器没有响应。但它偏偏就在我们的一个服务器上面发生了,结果导致了它毫无响应。假设我们在解析一些外部汽车经销商的信息。我们想在各种各样的输入中找到那些带”no 





《 如何编写相对标准的后端项目 (一)组织与运行 》



本人接触过数个 Open Source 项目,如 OpenStack/Kubernetes 等,深感这些优秀的开源项目存在着一些共性,如:美观的代码,完整的测试,设计理念,框架和架构等等。一般来说,遵循这些优良原则的项目在易读性,可维护性,特别是(功能和规模的)可扩展性会更强些。





《 深入 Spring Boot:那些注入不了的 Spring 占位符 ( ${} 表达式 ) 》



Spring应用在有时会出现占位符配置没有注入,原因可能是多样的。本文介绍两种比较复杂的情况。





《 Java8 Map 示例:一个略复杂的数据映射聚合例子及代码重构 》



本文内容来自真实的工作案例,因其转换略复杂,且有一定意义,故记录之。





《 JVM 堆内存和非堆内存 》



按照官方的说法:“Java 虚拟机具有一个堆(Heap),堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。JVM主要管理两种类型的内存:堆和非堆。





《 你真的了解volatile关键字吗 》



Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值)都必须在工作内存中进行。不同线程之间也无法直接访问对方工作内存中的变量,线程间变量值的传递均需要通过主内存来完成。





《 lambda 表达式和闭包 》



熟悉的Javascript或者Ruby的同学,可能对另一个名词:闭包更加熟悉。因为一般闭包的示例代码,长得跟lambda差不多,导致我也在以前很长一段时间对这两个概念傻傻分不清楚。其实呢,这两个概念是完全不同维度的东西。





《 Java LinkedHashMap 源码解析 》



HashSet 内部用一个HashMap对象存储数据,更具体些,只用到了key,value全部为一dummy对象。HashSet这个类太简单了,我不打算单独写文章介绍。今天介绍个比较实用的类——LinkedHashMap。





《 探索各种随机函数 ( Java 环境 ) 》



本文将主要分析Netty实现方面的东西。对于Netty使用者来说,Netty提供了几个典型的example,并有详尽的API doc和guide doc,本文的一些内容及图示也来自于Netty的文档,特此致谢。



往期热文回顾



12月:《 没有 Redis 也能支撑 “ 小米在印度把亚马逊搞挂了 ” 事件的秒杀解决方案 | 15 篇热文回顾 》

8月:《 高并发下的下单功能设计:15 篇热文回顾 》

7月:《 简述 Docker :15 篇热文回顾

 》



6月:《 Kafka 基本原理 :15 篇热文回顾 》

5月:《 Java 之父加入 AWS :15 篇热文回顾 》



看完本文有收获?请转发分享给更多人

关注「ImportNew」,提升Java技能

Spring AOP 的实现原理 | 15 篇热文回顾