静下心来的个人专栏

使用@ComponentScan 和过滤器进行类路径扫描

使用@ComponentScan 和过滤器进行类路径扫描简介类路径扫描基本上意味着,检测指定包下需要由 Spring 管理的类。您需要使用带有@Configuration 的spring @ComponentScan 注释进行类路径扫描。此注解允许您指定基本包和过滤器(如果需要精细控制包扫描)。我们将在本文中研究这两种方法。深入看@ComponentScan注解在学习使用这个注解之前,我们先来看看
阅读更多

Spring 中的 IoC 容器、Bean 工厂与应用程序上下文

Spring 中的 IoC 容器、Bean 工厂与应用程序上下文在本文中,您将了解 Spring Framework 中 IoC Container、Application Context 和 Bean Factory 之间的区别。Spring IoC 容器是 Spring Framework 的核心。它创建类实例,将它们裝配在一起,配置它们,并管理它们从创建到销毁的完整生命周期。Spring 容
阅读更多

使用@Component、@Repository、@Service 的托管 bean

使用@Component、@Repository、@Service 的托管 bean简介在本教程中,您将学习不同的 Spring 原型注解(@Component、@Repository 和 @Service)来将任何类声明为 Spring 管理的 Bean。Spring MVC 还有其他几个注解,如@Controller 和@RestController。在 Spring 中作为 bean 管理的
阅读更多

profobufjs——初步学习

首先用一幅图来指出protobuf在显示不同方法之间的关系以及有效消息的概念:在这里暂时不需要理解,后面我们会一点一点解释。重点重點重点主要注意的是,我们在介绍各个不同的方法的时候,Message指的是一个任意的消息类:为了说明问题,我的demo代码用浏览器端的代码来演示:<!doctype html> <head> <style> </style&g
阅读更多

使用@Primary 和@Qualifier 微调自动装配

使用@Primary 和@Qualifier 微调自动装配简介当我们有多个相同基类类型的 bean 时,按类型自动装配会导致歧义。因为有多个相同类型的 bean,所以控制 bean 选择过程很重要。Spring 提供了 @Primary 注释,它将特定的 bean 声明为主要的,这意味着在自动装配到单值依赖项时,主要 bean 将被赋予更高的首选项。另一方面,Spring 还提供了 @Qualif
阅读更多

依赖注入(一次搞懂):@Autowired、@Resource 和 @Inject

依赖注入:@Autowired、@Resource 和 @Inject在 Spring Framework 中,您基本上可以使用三个注解中的任何一个进行依赖注入,即@Autowired、@Resource 和@Inject。@Autowired 注解属于 core-spring,而另外两个属于 Java 扩展包@javax.annotation.Resource 和@javax.inject.In
阅读更多

Spring BeanPostProcessor 自定义 bean

Spring BeanPostProcessor 自定义 beanSpring BeanPostProcessor beans 是一种特殊的 beans,它在任何其他 beans 之前创建,Spring 允许您为其分配自定义回调。Spring提供了BeanPostProcessor接口,你可以实现它的方法来提供你自己的实例化逻辑和依赖解析逻辑。使用 BeanPostProcessor 之前,注意一
阅读更多

Spring bean定义继承

Spring bean定义继承在 Spring Framework 中,bean 定义继承(bean 配置继承)是我们必须学习的一个宝贵的省时特性。如您所知,bean 定义只不过是 Spring IoC 容器根据详细信息创建我们的 bean 的配置。这些 bean 定义可以包含很多有用的配置,如构造函数参数、属性值、初始化方法等。1、使用 Bean 定义继承,子 bean 定义从父配置继承配置。2
阅读更多

Spring bean 生命周期回调

Spring bean 生命周期回调Spring Bean Creation Phases在本文中,您将了解 Spring bean 生命周期以及运行 bean 初始化回调和 bean 销毁回调的不同方法。Bean 生命周期只是意味着您希望在 spring bean 可用之前执行回调,并且类似地在 bean 被销毁之前执行回调。有几种方法可以配置 Spring bean 生命周期回调,如下所示。1
阅读更多

箭头函数的arguments

箭头函数的arguments最近在写代码的时候遇到一个问题,因为遇到了箭头函数和普通函数的区别,记录如下:const allOf = function() { return _.reduceRight(arguments, (truth, fn)=>{ return truth && fn(); },true); } const allOf1 = () =>
阅读更多

Spring中集合映射和注入

Spring中集合映射和注入Spring Framework 支持注入 Java 集合类型 List、Set、Map 和 Properties。您可以使用 XML 以及基于注解的配置。我们将在本文中使用基于注解的配置来学习集合的构造函数、setter和字段注入。 使用@Autowired 进行集合注入我们所需要的只是使用@Autowired 注解对List、Set、Map 等集合进行注解
阅读更多

Spring中@Order注解的使用

Spring中@Order注解的使用我们将学习 Spring 中的 @Order 注解。 Spring 中的 @Order 注解定义了 bean 或组件的排序顺序。在 Spring 4.0 之前,此注解仅支持 AspectJ 方面的排序。从 Spring 4.0 开始,它支持多种组件,例如集合注入。Spring中的@Order注解首先看看源代码:@Retention(RetentionPolicy
阅读更多

Docker日志和进程管理

Docker日志和进程管理我们将讨论 Docker 中的容器日志和进程管理。 Docker 提供了一些命令来查看容器信息,而无需使用 attach 或 exec 命令。还将研究如何实现资源限制。查看 Docker 容器日志Docker 提供 docker logs 命令来获取容器的日志docker logs [OPTIONS] CONTAINERdocker run --name test -d
阅读更多

管理docker容器——深入了解

管理docker容器——深入了解上一节对Docker镜像有了一定的深入理解,这一节我们来学习如何管理Docker容器Docker 容器是另一个重要的概念。容器是镜像的可运行实例。容器是一组独立运行的应用程序。示例可以使用 centos7 + jdk + tomcat + web-app 构建单个容器。它运行的隔离环境称为 docker 运行时。在本页中,将通过示例讨论如何执行 docker run
阅读更多

flex表单布局

flex表单布局我们知道,在表单布局的时候,有的时候想对齐的话,我们需要调整元素的外边距margin,内边距padding但是一旦浏览器的视口发生变化或者设备发生变化,往往会产生我们意想不到的效果。要么是错位,要么是不能适应新设备。今天我们就看看用flex怎么来布局表单。我们先看第一个例子,传统的布局<!doctype html> <head> <title&
阅读更多

Spring Bean Scopes – @Scope 注解

Spring Bean Scopes – @Scope 注解创建bean意味着,您创建类的实际实例,并根据bean定义注入依赖项。Bean 定义就像一个配方,您可以使用相同的配方创建该类的多个实例。 Scope 控制需要创建的实例数量和 bean 的生命周期。Spring Framework 支持六个Scope,此外,您还可以创建自定义Scope。1、单例scope —— @Scope("sing
阅读更多

Promise.all()方法

到目前为止,前几章节每个示例都是一次响应一个Promise。但是,有时,需要监控多个 Promise 的进度以确定下一步操作。JavaScript 提供了几种方法来监控多个 Promise,然后用不同的方式响应它们。本章讨论的所有方法都允许并行执行多个 Promise,然后作为一个组而不是用单独一个值响应。Promise.all()方法Promise.all() 方法接受单个参数,该参数是要监控的
阅读更多

Spring框架高级介绍

什么是Spring框架这个问题的古老答案是,“Spring 是一个依赖注入框架”。实际上,它远不止于此。Spring 是最流行的 Java 企业应用程序开发框架,它带有许多工具和库来解决 Java 世界中的几乎所有问题。无论是微服务还是简单的数据库驱动的企业应用程序,Spring 都有必要的工具来帮助您入门。目前很难解释 Spring技术栈中可用的所有功能和库,随着您的进步,您将逐渐了解它们。您会
阅读更多

Spring依赖注入(DI)

Spring依赖注入(DI)基于 Setter 的依赖注入ApplicationContext 支持对其管理的 bean 进行基于字段的依赖注入。 IoC 容器在调用无参数构造函数或无参数静态方法进行实例化后调用托管 bean 的 setter 方法。基于构造函数和基于设置器的注入可以组合用于同一个 bean。Setter DI 的基于 XML 的配置bean-config.xml<?xml
阅读更多

Promise.race()方法

Promise.race()方法Promise.race() 方法对监控多个 Promise 提供了一种稍微不同的方式。该方法也接受一个可迭代的Promise ,监控并返回一个 Promise,一旦第一个 Promise settled,返回的 Promise 就会settled。Promise.race() 方法不是像 Promise.all() 方法那样等待所有的 Promise 都被解决,或
阅读更多

什么是控制反转(IOC)

什么是控制反转(IOC)控制反转 (IoC) 和依赖注入 (DI) 是用于解耦类依赖关系的编程模式。在本文中,我们将讨论 Spring Framework 的 IoC 和 DI。为简单起见,假设类 Vehicle 依赖于类 Engine,这意味着没有 Engine 的 Vehicle 没有意义。我们需要确保通过保持代码松散耦合来满足这种依赖关系。所以我们使用一个特殊的类来确保对象的创建以正确的顺序
阅读更多

Promise.any()方法

Promise.any()方法Promise.any() 方法还接受一个可迭代的Promises,并在任何传入的 Promise 实现时返回一个fulfilled的 Promise。一旦Promise之一fulfilled,操作就会短路。 (这与 Promise.all() 正好相反,一旦一个 Promise rejected,操作就会短路。)下面是一个例子:let promise1 = Prom
阅读更多

Promise.allSettled()使用场景

Promise.allSettled()使用场景上一节我们介绍了Promise.allSettled()方法的第一种使用场景,今天我们再看看其他使用场景。调用多个独立的 Web 服务 APIPromise.all() 部分的另一个示例是调用多个 Web 服务 API,您希望所有请求都成功。 如果您不需要所有请求都成功,那么您可以使用 Promise.allSettled() 代替。 回到前面的例子
阅读更多

Promise.allSettled()方法

Promise.allSettled()方法Promise.allSettled() 方法是 Promise.all() 的一个轻微变体,其中该方法等待直到指定迭代中的所有 Promise 都settled,无论它们是fulfilled还是rejected。Promise.allSettled() 的返回值始终是一个由结果对象数组实现的Promise。fulfilled promise的结果对象有
阅读更多

Docker镜像深入理解

Docker镜像深入理解到目前为止,您已经看到Docker镜像是从 Dockerfile 构建的。一个镜像由多个层组成,它包含Docker容器中执行的代码。您可以构建自定义镜像,将其定制为最适合您的需求,或者您可以使用 docker pull image_name 将镜像从 docker hub 下载到您的主机,然后使用 docker run 运行它,就像您在 hello-world 示例中所做的
阅读更多

Docker架构

学习是一辈子的事情,架构的学习,如果有一幅简明扼要的图,那么我们学习起来会事半功倍。从上面的图可以看出,docker主要分为三个部分:Docker Client, Docker Host,  Docker Registry Docker Host首先我们看看Docker Host, 它包括三个部分,分别是Docker守护进程——Docker daemon,Docker镜像——D
阅读更多

Docker初步介绍

什么是docker?        docker是一个由许多服务组成的程序,它提供了在几乎任何平台上开发,打包,交付,运行应用程序的一致方式。学习docker就是学习这些若干服务的知识,我们后续会详细讨论。        对于很多开发者而言,尝尝遇到这样一个困惑,这个程序或者代码在小王的本机上运行没有问题,但是在小刘的
阅读更多

Docker运行

Docker的运行今天我们来运行一个docker,下面执行以下的命令:docker -D run hello-world注意,这里出现了一个错误:进程没有运行,启动docker客户端以后,再次执行:注意这里打印出来的日志信息:docker首先从本地拉去镜像,本地没有镜像,然后从远程拉取,拉取之后创建实例,然后运行,打印出 Hello from Docker。1、通过运行 docker -D run
阅读更多

Promise.all()使用场景

Promise.all()使用场景在上一节我们介绍了Promise.all()典型的两类使用场景,今天我们再看看另一类:创建人为的延迟Promise.all() 的一个不太常见的场景是当你想延迟某件发生太快的事情。 这更有可能发生在浏览器而不是服务器端,您有时需要在用户操作和响应之间稍作延迟。 例如,您可能希望在从服务器获取数据时显示加载指示器,但如果响应太快,用户可能看不到加载微调器,因此不知道
阅读更多

javascript——generator理解

最近在学习CK5的时候,遇到了一个函数:function* _getAllUpcastDefinitions( definition ) { if ( definition.model.values ) { for ( const value of definition.model.values ) { const model = { key: definition.model.key
阅读更多

webpack初步理解

Webpack 是一个非常强大且有趣的工具,被视为当今许多 Web 开发人员用来构建其应用程序的技术中的基本组件。然而,许多人会认为使用它是一个相当大的挑战,主要是因为它的复杂性。 webpack bundle过程图表webpack bundle processmodules模块是一个文件的升级版本。一个模块,一旦创建并且构建之后,除了包含原始的文件代码之外,还有一些其他信息,比如模块使
阅读更多

Promise.all()使用场景

Promise.all()使用场景在上一节我们介绍了Promise.all()怎么样使用,这一部分我们思考一下什么场景下使用这个方法呢?在等待多个Promise 完成的任何情况下,您都需要使用 Promise.all(),并且任何一次失败都会导致整个操作失败。 以下是 Promise.all() 的一些常见用例。一起处理多个文件在使用服务端 JavaScript 运行时(例如 Node.js 或
阅读更多

链式Promise——返回Promise

Promise链返回Promise从 Promise 处理程序返回原始值允许在 Promise 之间传递数据,但是如果您返回一个对象呢?如果对象是一个promise,那么需要采取额外的步骤来确定如何执行。 考虑以下示例:const promise1 = Promise.resolve(42); const promise2 = Promise.resolve(43); promise1.then
阅读更多

链式Promise——返回值

链式Promise返回值Promise 链的另一个重要方面是能够将数据从一个 Promise 传递到下一个 Promise。您已经看到传递给执行器内部 resolve() 处理程序的值被传递给该 Promise 的fullfilment handler。您可以通过指定fullfilment handler的返回值来继续沿链传递数据。 例如:const promise = Promise.resol
阅读更多

链式Promise——finally

链式Promise使用finallypromise的finally方法的行为与then和catch方法截然不同,它将前一个promise的状态和值复制到其返回的promise中。这意味着原始Promise fullfiled返回一个值,那么finally将返回一个以相同值fullfiled的promise。const promise = Promise.resolve(42); promise.
阅读更多

链式Promise——捕捉错误

Promise捕获错误在链式Promise中,允许捕捉在前一个Promise的fullfilment或者rejection handler中发生的错误,例如:const promise = Promise.resolve(42); promise.then(value => { throw new Error("Oops!"); }).catch(reason => { cons
阅读更多

Javascript状态机模型

状态机模型状态机是管理有限数量的状态和从一种状态转换到另一种状态的事件的模型。它们是允许我们明确定义应用程序路径而不是防范一百万条可能路径的抽象。应用举例例如,交通信号灯的状态机将保持三种状态:红色、黄色和绿色。绿色变为黄色,黄色变为红色,红色变为绿色。让状态机定义我们的逻辑,就不可能有从红色​​到黄色或黄色到绿色的非法转换。为了了解状态机如何极大地降低我们的 UI、业务逻辑和代码的复杂性,我们将
阅读更多

链式Promise

链式Promisepromise 似乎只是对使用回调和 setTimeout() 函数的某种组合的渐进式改进,但 Promise 的功能远不止表面上看到的那样。具体地说,有许多方法可以将 Promise 链接在一起以完成更复杂的异步行为。对 then()、catch() 或 finally() 的每次调用实际上都会创建并返回另一个新的Promise。 只有在第一个Promise被fullfiled
阅读更多

构建新的(不确定)Promise

构建不确定Promise一般情况下使用Promise构造函数创建新的Promise。这个构造函数接受一个参数:一个称为 executor 的函数,它包含初始化 promise 的代码。执行器被传递了两个名为resolve() 和reject() 的函数作为参数。 当 executor 成功完成时调用 resolve() 函数表示 promise操作成果,或者调用 reject() 函数表示操作失败
阅读更多

构建确定的Promise

创建确定的Promise由于 Promise 执行器的动态特性,Promise 构造函数是创建不确定的 Promise 的最佳方式。但是如果你想要一个 Promise 来表示一个先前计算的值,那么创建一个简单地将值传递给 resolve() 或 reject() 函数的执行器是没有意义的。 相反,有两种方法可以在给定特定值的情况下创建已确定的 Promise。使用Promise.resolvePr
阅读更多
X

欢迎加群学习交流

联系我们