Spring|Bean的初始化、作用域

BeanDefaintion 保存 Bean 的元信息,是 Bean 的“配料表”。

Bean 初始化的方式:

1、通过构造器除时候( 不可变对象)

 1public class SimpleMovieLister {
 2
 3    // the SimpleMovieLister has a dependency on a MovieFinder
 4    private MovieFinder movieFinder;
 5
 6    // a constructor so that the Spring container can inject a MovieFinder
 7    public SimpleMovieLister(MovieFinder movieFinder) {
 8        this.movieFinder = movieFinder;
 9    }
10
11    // business logic that actually uses the injected MovieFinder is omitted...
12}

在学长的公司做面试官的问题

我返校后就去了学长的公司,在学习期间也帮忙招一些有经验有能力的软件开发人员。我主要负责后端的面试,期间参与制定了面试的标准,出了一些公司面试问题。我们面试的人有一两年工作经验的,有实习生,还有一些刚才培训机构培训完的,也许有些人会奇怪 “怎么还面试从培训机构出来的?“,因为公司小且地理又处在三线城市,资源和吸引力不能和一线大厂比。

我们的面试流程简单,主要有以下内容:

教程|Windows 安装 Nodejs

  • 系统 Win 10 64 位
  • Node 版本 16.15.0 LTS

如果是在 Linux 安装 Nodejs,参见我之前写的文章 《Linux 安装 Nodejs 教程》

Windows 安装过程如下。

操作系统环境变量原理

环境变量一般指的是操作系统中一些可以变的参数,在 Linux 系统中,环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的家目录(HOME)、邮件存放位置(MAIL)等。在学 Java 时,安装 JDK 后总要配置环境变量,目的是告诉操作系统我们输入命令后到底要从哪里寻找命令,因为操作系统默认只会在当前目录搜索。

由环境变量我想到了项目启动的配置,例如 Spring 中的 xml、properties、yml 类型的文件,或者使用在启动时通过配置中心(e.g. nacos、zookeeper 作配置存储的中间件),这些在项目启动后的配置都不能变更,这样导致的是修改配置必须重启项目。

我们毕业了

三月软件14期合照
三月软件14期合照

依稀记得 18 年夏秋之交,我怀着激动的心情进入大学,燥热的空气为新生渲染着氛围,校园内都在表达着对新生的欢迎,那时的我们充满着对未来的向往,现在我们毕业,穿上了学士服。

我的大学过的算充实,周末、寒暑假我都在实验室中度过的。在实验室里比较自由,有许多时间学习感兴趣的计算机知识,我大学掌握的知识多来自于此,因此我也真正意识到,只有主动学习把兴趣投入进去才能学到真知识。

在别人眼中我是自律的人,但在我看来,我应该是目标比较明确,我的活动都是以目标为导向的,有时候不想做什么事一想起目标就有动力了,我非常庆幸我在大学四年中有清晰的目标。

未来仍有许多故事,我会继续在这条“马拉松”路上。

SOFA-Bolt通信模型介绍

SOFA-bolt 是蚂蚁金服开源的一个分布式 RPC 框架,用于快速构建金融级云原生架构的中间件,也是在金融场景里锤炼出来的最佳实践。SOFA-bolt 有四种网络通讯模型:分别是 oneway、sync、future、callback,本文主要介绍这四通信模型。

通信模型

  • oneway:不关注结果,即客户端发起调用后不关注服务端返回的结果,适用于发起调用的一方不需要拿到请求的处理结果,或者说请求或处理结果可以丢失的场景;
  • sync:同步调用,调用线程会被阻塞,直到拿到响应结果或者超时,它是最常用的方式,适用于发起调用方需要同步等待响应的场景;
  • future:异步调用,调用线程不会被阻塞,通过 future 获取调用结果时才会被阻塞,适用于需要并发调用的场景,比如某个客户端调用多个服务端并等待所有结果返回后执行特定逻辑的场景;
  • callback:异步调用,调用线程不会被阻塞,调用结果在 callback 线程中被处理,适用于高并发要求的场景;

MQTT 协议是什么

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于 TCP/IP 协议上,由 IBM 在 1999 年发布。MQTT 最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

MQTT 是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT 协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。

资料

常用文献地址整理

1、外文文献查找

2、国内文献查找

读书|《计算机网络:自顶向下方法》

《计算机网络:自顶向下方法》是本经典的书,里面的“人物专访”给我留下深刻印象,这使原本枯燥的学习润色许多,通过读这些专访我对网络更加感兴趣了,也清晰的认识到这些学术牛人们的学习、思维方式。

Java 微基准测试工具 JMH

JMH(Java Microbenchmark Harness)是一个进行基准测试的工具,由 OpenJDK 团队研发,JMH 可以一个方法为维度进行吞吐量、调用时间等测试,精度可以精确到微秒级,JMH 提供注解可以更加便捷的使用。