
Spring 主题相关指南
根据官方所描述的,官方指南的代码均以 ASLv2 许可的形式发布,而指南的文本内容则均以 CC BY-ND 3.0 许可的形式发布。所以本专栏在以遵从许可的情况下将其进行了翻译,以供大家查缺补漏。
Snow Hide(雪诺海德)
公主号【纽雪澳诺加海美德】
多年互联网系统架构经验:参与过新西兰某电信供应商及某大型跨境电商系统的开发;主导过新西兰最大电子产品供应商及某跨国移动设备销售商系统的架构设计、技术选型、编码实现、生产部署。
已获国际认证:Linux Profesisonal(LPIC-3)* 2、Linux Engineer(LPIC-2)、Linux Administrator(LPIC-1)、Java(OCJP/OCJA)、MySQL(OCMDP)、PHP7(ZCE)、AWS
展开
-
SpringBoot 2 与 Docker - Knative
容器和平台领域的另一个新项目是 Knative。Knative 有很多东西,但是如果我们不熟悉 Knative,则可以将其视为构建无服务器平台的基础。它构建于 Kubernetes,因此最终它会使用容器镜像,并在平台上将它们转换为应用或 “服务”。但是,它的主要功能之一是能够使用源代码并为我们构建容器,从而使其对开发人员和操作员更友好。Knative Build 是执行该操作的组件,它本身是用于将...翻译 2020-04-11 09:37:09 · 429 阅读 · 0 评论 -
SpringBoot 2 与 Docker - Buildpacks
Spring Boot Maven 和 Gradle 插件使用 builcpack 的方式与以下实例中的 pack 命令行完全相同。主要区别在于,插件使用 docker 来运行构建,而 pack 则不需要。给定相同的输入,结果镜像相同。Cloud Foundry 多年来一直在内部使用容器,用于将用户代码转换为容器的技术的一部分是 Build Packs,该思想最初是借鉴了 Heroku。当前...翻译 2020-04-10 08:23:24 · 944 阅读 · 0 评论 -
SpringBoot 2 与 Docker - 持续集成
如今(或应该如此),自动化已成为每个应用生命周期的一部分。人们用来实现自动化的工具往往非常擅长从源代码调用构建系统。因此,如果我们得到一个 docker 镜像,并且构建代理中的环境与开发人员自己的环境充分配合,这可能就足够了。向 Docker 注册表进行身份验证可能是最大的挑战,但是所有自动化工具中都有一些功能可以帮助实现这一点。但是,有时最好将容器创建完全留给自动化层,在这种情况下,可能不需要...翻译 2020-04-09 18:43:28 · 389 阅读 · 0 评论 -
SpringBoot 2 与 Docker - 构建插件
如果我们不想直接在构建中调用 docker,那么 Maven 和 Gradle 有很多丰富的插件可以为我们工作。这里仅仅是少数。Spring Boot 插件使用 Spring Boot 2.3,我们可以选择直接使用 Spring Boot 从 Maven 或 Gralde 构建镜像。只要我们已经在构建 Spring Boot jar 文件,我们只需要直接调用插件即可。使用 Maven:$ ....翻译 2020-04-08 08:56:31 · 1120 阅读 · 0 评论 -
SpringBoot 2 与 Docker - 安全方面
就像传统的 VM 部署一样,不应该使用 root 权限运行进程。相反,镜像应包含运行该应用的非 root 用户。在 Dockerfile 中,这可以通过添加另一层来添加(系统)用户和组,然后将其设置为当前用户(而不是默认用户 root)来实现:DockerfileFROM openjdk:8-jdk-alpineRUN addgroup -S demo && adduse...翻译 2020-04-07 08:15:05 · 237 阅读 · 0 评论 -
SpringBoot 2 与 Docker - 多阶段构建
之前的 Dockerfile 假设胖 JAR 已在命令上构建。我们也可以使用多阶段构建在 Docker 中执行该步骤,将结果从一个镜像复制到另一个镜像。使用 Maven 的示例:DockerfileFROM openjdk:8-jdk-alpine as buildWORKDIR /workspace/appCOPY mvnw .COPY .mvn .mvnCOPY pom.xml ...翻译 2020-04-06 11:39:58 · 698 阅读 · 0 评论 -
SpringBoot 2 与 Docker - 性能调优
如果我们想尽快启动应用(大多数人都这样做),则可以考虑做一些调整。这里有一些办法:使用 spring-context-indexer(指向文档的链接)。对于小型应用而言,他不会增加太多,但有帮助;如果承担得起,请不要使用 actuator;使用 Spring Boot 2.1 及 Spring 5.1;使用 spring.config.location(命令行参数或 System 属性等...翻译 2020-04-05 05:34:17 · 1199 阅读 · 0 评论 -
SpringBoot 2 与 Docker - 一个更好的 Dockerfile
由于 JAR 本身的包装方式,Spring Boot 胖 jar 自然具有 “层”。如果我们想将其拆包,它将已经分为内部和外部依赖关系。为了在 Docker 构建中一步一步做到这一点,我们需要首先解压 jar。例如(继续使用 Maven,但 Gradle 版本非常相似):$ mkdir target/dependency$ (cd target/dependency; jar -xf ../*...翻译 2020-04-04 07:36:53 · 334 阅读 · 0 评论 -
SpringBoot 2 与 Docker - 一个简单的 Dockerfile
Spring Boot 应用很容易转换为可执行的 JAR 文件。所有入门指南都这样做,从 Spring Initializr 下载的每个应用都将具有一个插件可执行 JAR 的构建步骤。使用 Maven,我们可以 ./mvnw install,使用 Gradle 可以 ./gradlew build。然后,在项目的顶层,运行该 JAR 的基本 Dockerfile 如下所示:Dockerfile...翻译 2020-04-03 08:17:26 · 965 阅读 · 0 评论 -
SpringBoot 2 与 Docker - 前言
许多人正在使用容器包装他们的 Spring Boot 应用,而构建容器并不是一件容易的事。这是 Spring Boot 应用开发人员的指南,容器对于开发人员而言并不总是一个很好的抽象 - 它们迫使我们学习和思考非常底层的问题 - 但是有时我们会被要求创建或使用容器,因此有必要了解这些基本要素。假设我们知道如何创建和构建基本的 Spring Boot 应用。如果不懂的话,请转到其他入门指南之一,例...翻译 2020-04-02 05:26:32 · 193 阅读 · 0 评论 -
Spring 安全架构 - 线程应用
Spring Security 从根本上讲是线程绑定的,因为它需要使当前经过身份验证的主体可供各种下游使用者使用。基本构件是 SecurityContext,它可以包含一个 Authentication(当用户登录时,它将是一个经过显式 authenticated 的 Authentication)。你始终可以通过 SecurityContextHolder 中的静态便捷方法来访问和操作 Seuc...翻译 2020-04-01 08:42:57 · 306 阅读 · 0 评论 -
Spring 安全架构 - 方法安全
除了保护 Web 应用安全外,Spring Security 该提供了将访问规则应用于 Java 方法执行的支持。对于 Spring Security,这只是 “保护资源” 的另一种类型。对于用户而言,这意味着使用相同格式的 ConfigAttribute 字符串(例如角色或表达式)声明式访问规则,但在代码中的不同位置。第一步是启用方法安全性,例如在应用的顶级配置中:@SpringBootApp...翻译 2020-03-31 06:03:37 · 244 阅读 · 0 评论 -
Spring 安全架构 - Web 安全
Web 层(用于 UI 和 HTTP 后端)中的 Spring Security 基于 Servlet Filters,因此通常首先了解 Filters 的作用会很有帮助。下图显示了单个 HTTP 请求的处理的典型分层。客户端向应用发送请求,然后容器根据请求 URI 的路径确定对它应用哪些过滤器和哪个 servlet。一个 servlet 最多只能处理一个请求,但是过滤器形成一个链,因此它们是...翻译 2020-03-30 07:03:52 · 330 阅读 · 0 评论 -
Spring 安全架构 - 身份验证与访问控制
应用程序安全性归结为或多或少的两个独立问题:身份验证(你是谁?)和授权(你可以做什么?)。有时人们会说 “访问控制” 而不是 “授权”,这可能会造成混淆,但是以这种方式思考可能会有所帮助,因为 “授权” 在其他地方超载。Spring Security 的体系结构旨在将身份验证与授权分开,并具有策略及扩展点。身份验证身份验证的主要策略接口是 AuthenticationManager,它只有一个...翻译 2020-03-29 04:41:34 · 443 阅读 · 0 评论 -
Spring 安全架构 - 简介
该指南是 Spring Security 的入门,它提供了对该框架的设计和基本构建块的见解。我们仅介绍了应用安全性的最基本知识,但是这样做可以清除使用 Spring Security 的开发人员所遇到的一些困惑。为此,我们看一下使用过滤器(更通常是使用方法注释)在 Web 应用中应用安全性的方式。当我们需要从高层次了解安全应用的工作方式,如何自定义它,或者仅需要学习如何考虑应用安全性时,请使用该指...翻译 2020-03-28 06:27:57 · 250 阅读 · 0 评论