snake107
摘要: 国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如: Docker 官方提供的中国 registry mirror 阿里云加速器 DaoCloud 加速器 我们以 Docker 官方加速器为例进行介绍。 Ub 阅读全文
posted @ 2019-11-23 23:53 爱喝奶茶的皮卡丘 阅读(205) 评论(0) 推荐(0)
摘要: 准备工作 系统要求 Docker CE 支持以下版本的 Ubuntu 操作系统: Artful 17.10 (Docker CE 17.11 Edge +) Xenial 16.04 (LTS) Trusty 14.04 (LTS) Docker CE 可以安装在 64 位的 x86 平台或 ARM 阅读全文
posted @ 2019-11-23 23:53 爱喝奶茶的皮卡丘 阅读(203) 评论(0) 推荐(0)
摘要: 概述 在实际生产中,我们需要发布和订阅的消息可能不止一种 Topic ,故此时就需要使用自定义 Binding 来帮我们实现多 Topic 的发布和订阅功能 生产者 自定义 Output 接口,代码如下: public interface MySource { @Output("output1") 阅读全文
posted @ 2019-11-23 23:51 爱喝奶茶的皮卡丘 阅读(989) 评论(0) 推荐(0)
摘要: POM 主要增加了 依赖 " " 消息消费者服务 主要使用 注解来订阅从名为 的 Binding 中接收的消息 " " Application 配置 Input( ) 的 Binding 信息并配合 注解使其生效 " " application.yml 运行成功后即可在控制台接收到消息:`Recei 阅读全文
posted @ 2019-11-23 23:51 爱喝奶茶的皮卡丘 阅读(1218) 评论(0) 推荐(0)
摘要: 概述 RocketMQ 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。 由于本教程整个案例基于 Spring Cloud,故我们采用 Spring Cloud Stream 完成一次发布和订阅 "官方教程" " " Spring Cloud Stre 阅读全文
posted @ 2019-11-23 23:49 爱喝奶茶的皮卡丘 阅读(416) 评论(0) 推荐(0)
摘要: 概述 消息队列作为高并发系统的核心组件之一,能够帮助业务系统解构提升开发效率和系统稳定性。主要具有以下优势: 削峰填谷: 主要解决瞬时写压力大于应用服务能力导致消息丢失、系统奔溃等问题 系统解耦: 解决不同重要程度、不同能力级别系统之间依赖导致一死全死 提升性能: 当存在一对多调用时,可以发一条消息 阅读全文
posted @ 2019-11-23 23:48 爱喝奶茶的皮卡丘 阅读(351) 评论(0) 推荐(0)
摘要: docker compose.yml 注意:启动 RocketMQ Server + Broker + Console 至少需要 2G 内存 version: '3.5' services: rmqnamesrv: image: foxiswho/rocketmq:server container_ 阅读全文
posted @ 2019-11-23 23:48 爱喝奶茶的皮卡丘 阅读(1454) 评论(0) 推荐(0)
摘要: 什么是 MQ Message Queue(MQ),消息队列中间件。很多人都说:MQ 通过将消息的发送和接收分离来实现应用程序的异步和解偶,这个给人的直觉是——MQ 是异步的,用来解耦的,但是这个只是 MQ 的效果而不是目的。MQ 真正的目的是为了通讯,屏蔽底层复杂的通讯协议,定义了一套应用层的、更加 阅读全文
posted @ 2019-11-23 23:47 爱喝奶茶的皮卡丘 阅读(178) 评论(0) 推荐(0)
摘要: Java Agent 服务器探针 参考官网给出的帮助 "Setup java agent" ,我们需要使用官方提供的探针为我们达到监控的目的,按照实际情况我们需要实现三种部署方式 IDEA 部署探针 Java 启动方式部署探针(我们是 Spring Boot 应用程序,需要使用 的方式启动应用) D 阅读全文
posted @ 2019-11-23 23:46 爱喝奶茶的皮卡丘 阅读(1700) 评论(0) 推荐(0)
摘要: 什么是 Assembly Plugin Assembly 插件目的是提供一个把工程依赖元素、模块、网站文档等其他文件存放到单个归档文件里。 " " Assembly 支持的归档文件类型 zip tar.gz tar.bz2 jar dir war " " 使用步骤 此处以将 SkyWalking 探 阅读全文
posted @ 2019-11-23 23:46 爱喝奶茶的皮卡丘 阅读(294) 评论(0) 推荐(0)
摘要: 基于 Docker 安装 ElasticSearch 在 " 为什么需要链路追踪 " 章节中介绍过 SkyWalking 存储方案有多种,官方推荐的方案是 ElasticSearch ,所以我们需要先安装 ElasticSearch。 " " docker compose.yml 其中, 端口号为 阅读全文
posted @ 2019-11-23 23:45 爱喝奶茶的皮卡丘 阅读(1414) 评论(0) 推荐(1)
摘要: 什么是链路追踪 微服务架构是通过业务来划分服务的,使用 REST 调用。对外暴露的一个接口,可能需要很多个服务协同才能完成这个接口功能,如果链路上任何一个服务出现问题或者网络超时,都会形成导致接口调用失败。随着业务的不断扩张,服务之间互相调用会越来越复杂。 随着服务的越来越多,对调用链的分析会越来越 阅读全文
posted @ 2019-11-23 23:44 爱喝奶茶的皮卡丘 阅读(759) 评论(0) 推荐(0)
摘要: Spring Boot Profile 我们在做项目开发的时候,生产环境和测试环境的一些配置可能会不一样,有时候一些功能也可能会不一样,所以我们可能会在上线的时候手工修改这些配置信息。但是 Spring 中为我们提供了 Profile 这个功能。我们只需要在启动的时候添加一个虚拟机参数,激活自己环境 阅读全文
posted @ 2019-11-23 23:43 爱喝奶茶的皮卡丘 阅读(1428) 评论(0) 推荐(0)
摘要: POM 此处我们以之前创建的 " 服务提供者 " 项目为例 在 中增加 依赖 完整的 如下: " " bootstrap.properties 创建名为 的配置文件并删除之前创建的 配置文件,由于已经在服务端配置,此处不再赘述 注意:在之前的 Spring Cloud Netflix 课程中有提到过 阅读全文
posted @ 2019-11-23 23:42 爱喝奶茶的皮卡丘 阅读(795) 评论(0) 推荐(0)
摘要: 分布式配置中心 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。 " " Nacos Config Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cl 阅读全文
posted @ 2019-11-23 23:40 爱喝奶茶的皮卡丘 阅读(954) 评论(0) 推荐(0)
摘要: 概述 全局过滤器作用于所有的路由,不需要单独配置,我们可以用它来实现很多统一化处理的业务需求,比如权限认证,IP 访问限制等等。 注意:截止博客发表时间 2019 年 01 月 10 日,Spring Cloud Gateway 正式版为 2.0.2 其文档并不完善,并且有些地方还要重新设计,这里仅 阅读全文
posted @ 2019-11-23 23:38 爱喝奶茶的皮卡丘 阅读(442) 评论(0) 推荐(0)
摘要: 什么是 Spring Cloud Gateway Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,Spring Cloud Gateway 旨在为微服务架构提供一种简单而 阅读全文
posted @ 2019-11-23 23:37 爱喝奶茶的皮卡丘 阅读(1763) 评论(0) 推荐(0)
摘要: " " Sentinel 控制台 Sentinel 控制台提供一个轻量级的控制台,它提供机器发现、单机资源实时监控、集群资源汇总,以及规则管理的功能。您只需要对应用进行简单的配置,就可以使用这些功能。 注意: 集群资源汇总仅支持 500 台以下的应用集群,有大概 1 2 秒的延时。 " " 下载并打 阅读全文
posted @ 2019-11-23 23:35 爱喝奶茶的皮卡丘 阅读(213) 评论(0) 推荐(0)
摘要: 概述 在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以通过 相互调用,在 Spring Cloud 中可以用 和 来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证 100% 可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有 阅读全文
posted @ 2019-11-23 23:32 爱喝奶茶的皮卡丘 阅读(279) 评论(0) 推荐(0)
摘要: 概述 Feign 是一个声明式的伪 Http 客户端,它使得写 Http 客户端变得更简单。使用 Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用 Feign 注解和 JAX RS 注解。Feign 支持可插拔的编码器和解码器。Feign 默认集成了 Ribbon,Nacos 也 阅读全文
posted @ 2019-11-23 23:28 爱喝奶茶的皮卡丘 阅读(217) 评论(0) 推荐(0)
摘要: 概述 服务消费者的创建与服务提供者大同小异,这里采用最原始的一种方式,即显示的使用 LoadBalanceClient 和 RestTemplate 结合的方式来访问。 " " POM 创建一个工程名为 的服务消费者项目, 配置如下: " " Application " " Configuratio 阅读全文
posted @ 2019-11-23 23:25 爱喝奶茶的皮卡丘 阅读(142) 评论(0) 推荐(0)
摘要: 概述 通过一个简单的示例来感受一下如何将服务注册到 Nacos,其实和 Eureka 没有太大差别。 " " POM 创建一个工程名为 的服务提供者项目, 配置如下: " " Application 通过 注解表明是一个 Nacos 客户端,该注解是 Spring Cloud 提供的原生注解 " " 阅读全文
posted @ 2019-11-23 23:23 爱喝奶茶的皮卡丘 阅读(160) 评论(0) 推荐(0)
摘要: 概述 在 Spring Cloud Netflix 阶段我们采用 Eureka 做作为我们的服务注册与发现服务器,现利用 Spring Cloud Alibaba 提供的 Nacos 组件替代该方案。 "Nacos 官网" " " 什么是 Nacos Nacos 致力于帮助您发现、配置和管理微服务。 阅读全文
posted @ 2019-11-23 23:22 爱喝奶茶的皮卡丘 阅读(171) 评论(0) 推荐(0)
摘要: 概述 温馨提示 当前 Spring Cloud Alibaba 的 0.2.1.RELEASE 版本基于 Spring Cloud Finchley(F)开发,故在选择 Spring Boot 版本时不要使用 2.1.0 及以上版本(因为 2.1.x 版本必须使用 Spring Cloud Gree 阅读全文
posted @ 2019-11-23 23:21 爱喝奶茶的皮卡丘 阅读(159) 评论(0) 推荐(0)
摘要: 概述 2018 年 10 月 31 日的凌晨,这个伟大的日子里,Spring Cloud Alibaba 正式入驻了 Spring Cloud 官方孵化器,并在 Maven 中央库发布了第一个版本。 "Spring Cloud for Alibaba 0.2.0 released" The Spri 阅读全文
posted @ 2019-11-23 23:19 爱喝奶茶的皮卡丘 阅读(146) 评论(0) 推荐(0)
摘要: 创建 Spring Boot Admin Client 创建一个工程名为 的项目, 文件如下: 主要增加了 2 个依赖, 、`de.codecentric:spring boot admin starter client` 其中 的版本号为: ,这里没写版本号是因为我已将版本号托管到 项目中 " " 阅读全文
posted @ 2019-11-23 23:13 爱喝奶茶的皮卡丘 阅读(1114) 评论(0) 推荐(0)
摘要: 创建 Spring Boot Admin Server 创建一个工程名为 的项目, 文件如下: 主要增加了 2 个依赖, 、`de.codecentric:spring boot admin starter server` 其中 的版本号为: ,这里没写版本号是因为我已将版本号托管到 项目中 " " 阅读全文
posted @ 2019-11-23 23:12 爱喝奶茶的皮卡丘 阅读(344) 评论(0) 推荐(0)
摘要: 概述 这篇文章主要讲解服务追踪组件 ZipKin。 " " ZipKin 简介 ZipKin 是一个开放源代码的分布式跟踪系统,由 Twitter 公司开源,它致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集、存储、查找和展现。它的理论模型来自于 Google Dapper 论 阅读全文
posted @ 2019-11-23 23:11 爱喝奶茶的皮卡丘 阅读(222) 评论(0) 推荐(0)
摘要: 随着开发周期的推移,项目会不断变大,切分出的服务也会越来越多,这时一个个的微服务构成了错综复杂的系统。对于各个微服务系统的健康状态、会话数量、并发数、服务资源、延迟等度量信息的收集就成为了一个挑战。Spring Boot Admin 应运而生,它正式基于这些需求开发出的一套功能强大的监控管理系统。 阅读全文
posted @ 2019-11-23 23:11 爱喝奶茶的皮卡丘 阅读(201) 评论(0) 推荐(0)
摘要: 概述 创建一个工程名为 的项目, 文件配置如下: 主要增加了 依赖 " " Application 入口类没有需要特殊处理的地方,代码如下: " " application.yml 增加 Config Client 相关配置,并设置端口号为: 相关配置说明,如下: :配置服务中心的网址 :配置文件名 阅读全文
posted @ 2019-11-23 23:09 爱喝奶茶的皮卡丘 阅读(242) 评论(0) 推荐(0)
摘要: 概述 创建一个工程名为 的项目, 配置文件如下: 主要增加了 依赖 " " Application 通过 注解,开启配置服务器功能 " " application.yml 增加 Config 相关配置,并设置端口号为: 相关配置说明,如下: :配置仓库的分支 :配置 Git 仓库地址(GitHub、 阅读全文
posted @ 2019-11-23 23:07 爱喝奶茶的皮卡丘 阅读(192) 评论(0) 推荐(0)
摘要: 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在 Spring Cloud 中,有分布式配置中心组件 Spring Cloud Config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程 Git 仓库中。在 Spring Cl 阅读全文
posted @ 2019-11-23 23:03 爱喝奶茶的皮卡丘 阅读(159) 评论(0) 推荐(0)
摘要: 概述 Zuul 不仅仅只是路由,还有很多强大的功能,本节演示一下它的服务过滤功能,比如用在安全验证方面。 #创建服务过滤器 继承 ZuulFilter 类并在类上增加 @Component 注解就可以使用服务过滤功能了,非常简单方便 package com.funtl.hello.spring.cl 阅读全文
posted @ 2019-11-23 22:53 爱喝奶茶的皮卡丘 阅读(405) 评论(0) 推荐(0)
摘要: 概述 在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现、服务消费、负载均衡、熔断器、智能路由、配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统。一个简单的微服务系统如下图: 在 Spring Cloud 微服务系统中,一种常见的负载均衡方式是,客户端的请求首先经过负 阅读全文
posted @ 2019-11-23 22:51 爱喝奶茶的皮卡丘 阅读(706) 评论(0) 推荐(0)
摘要: 概述 在 Ribbon 和 Feign 项目增加 Hystrix 仪表盘功能,两个项目的改造方式相同 #在 pom.xml 中增加依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud 阅读全文
posted @ 2019-11-23 22:48 爱喝奶茶的皮卡丘 阅读(144) 评论(0) 推荐(0)
摘要: 概述 在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以通过 RPC 相互调用,在 Spring Cloud 中可以用 RestTemplate + Ribbon 和 Feign 来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证 100% 可 阅读全文
posted @ 2019-11-23 22:45 爱喝奶茶的皮卡丘 阅读(253) 评论(0) 推荐(0)
摘要: 概述 Feign 是一个声明式的伪 Http 客户端,它使得写 Http 客户端变得更简单。使用 Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用 Feign 注解和 JAX-RS 注解。Feign 支持可插拔的编码器和解码器。Feign 默认集成了 Ribbon,并和 Eure 阅读全文
posted @ 2019-11-23 12:57 爱喝奶茶的皮卡丘 阅读(158) 评论(0) 推荐(0)
摘要: 概述 在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于 http restful 的。Spring cloud 有两种服务调用方式,一种是 ribbon + restTemplate,另一种是 feign。在这一篇文章首先讲解下基于 ribbon + rest。 #Ribbon 阅读全文
posted @ 2019-11-23 12:54 爱喝奶茶的皮卡丘 阅读(193) 评论(0) 推荐(0)
摘要: 概述 当 Client 向 Server 注册时,它会提供一些元数据,例如主机和端口,URL,主页等。Eureka Server 从每个 Client 实例接收心跳消息。 如果心跳超时,则通常将该实例从注册 Server 中删除。 #POM <?xml version="1.0" encoding= 阅读全文
posted @ 2019-11-23 12:51 爱喝奶茶的皮卡丘 阅读(227) 评论(0) 推荐(0)
摘要: 概述 在这里,我们需要用的组件是 Spring Cloud Netflix 的 Eureka,Eureka 是一个服务注册和发现模块 #创建服务注册中心 其 pom.xml 文件配置如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns=" 阅读全文
posted @ 2019-11-23 12:49 爱喝奶茶的皮卡丘 阅读(136) 评论(0) 推荐(0)
摘要: 概述 Spring Cloud 项目都是基于 Spring Boot 进行开发,并且都是使用 Maven 做项目管理工具。在实际开发中,我们一般都会创建一个依赖管理项目作为 Maven 的 Parent 项目使用,这样做可以极大的方便我们对 Jar 包版本的统一管理。 #创建依赖管理项目 创建一个工 阅读全文
posted @ 2019-11-23 12:48 爱喝奶茶的皮卡丘 阅读(184) 评论(0) 推荐(0)
摘要: 使用 tk.mybatis 操作数据库 经过之前章节一系列的配置之后,我们已经满足了使用 MyBaits 操作数据库的必要条件,下面是使用 tk.mybatis 操作数据库的例子。 我们以测试操作用户表为例(tb_user) #修改入口类 需要使用 @MapperScan 注解来指定 Mapper 阅读全文
posted @ 2019-11-23 00:33 爱喝奶茶的皮卡丘 阅读(339) 评论(0) 推荐(0)
摘要: 我们无需手动编写 实体类、DAO、XML 配置文件,只需要使用 MyBatis 提供的一个 Maven 插件就可以自动生成所需的各种文件便能够满足基本的业务需求,如果业务比较复杂只需要修改相关文件即可。 #配置插件 在 pom.xml 文件中增加 mybatis-generator-maven-pl 阅读全文
posted @ 2019-11-23 00:32 爱喝奶茶的皮卡丘 阅读(320) 评论(0) 推荐(0)
摘要: 概述 tk.mybatis 是在 MyBatis 框架的基础上提供了很多工具,让开发更加高效 #引入依赖 在 pom.xml 文件中引入 mapper-spring-boot-starter 依赖,该依赖会自动引入 MyBaits 相关依赖 <dependency> <groupId>tk.myba 阅读全文
posted @ 2019-11-23 00:29 爱喝奶茶的皮卡丘 阅读(522) 评论(0) 推荐(0)
摘要: 概述 PageHelper 是 Mybatis 的分页插件,支持多数据库、多数据源。可以简化数据库的分页查询操作,整合过程也极其简单,只需引入依赖即可。 #引入依赖 在 pom.xml 文件中引入 pagehelper-spring-boot-starter 依赖 <dependency> <gro 阅读全文
posted @ 2019-11-23 00:29 爱喝奶茶的皮卡丘 阅读(170) 评论(0) 推荐(0)
摘要: 概述 Druid 是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和 SQL 解析器组成。该项目主要是为了扩展 JDBC 的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、统计 SQL 信息、SQL 性能收集、SQL 注入检查、SQL 翻译等,程序员可以通过定制来实 阅读全文
posted @ 2019-11-23 00:28 爱喝奶茶的皮卡丘 阅读(143) 评论(0) 推荐(0)
摘要: 概述 本章节主要介绍一下 Spring Boot 中的一些常用配置,比如:自定义 Banner、配置日志、关闭特定的自动配置等。 #自定义 Banner 在 Spring Boot 启动的时候会有一个默认的启动图案 . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ 阅读全文
posted @ 2019-11-23 00:24 爱喝奶茶的皮卡丘 阅读(264) 评论(0) 推荐(0)
摘要: 概述 主要是通过 @RunWith 和 @SpringBootTest 注解来开启单元测试功能 package com.snake.hello.spring.boot; import org.junit.Before; import org.junit.Test; import org.junit. 阅读全文
posted @ 2019-11-23 00:22 爱喝奶茶的皮卡丘 阅读(168) 评论(0) 推荐(0)
摘要: 概述 这里我们使用 Intellij IDEA 来新建一个 Spring Boot 项目。 #打开 IDEA -> New Project -> Spring Initializr #填写项目信息 #选择 Spring Boot 版本及 Web 开发所需的依赖 #保存项目到指定目录 #工程目录结构 阅读全文
posted @ 2019-11-23 00:21 爱喝奶茶的皮卡丘 阅读(241) 评论(0) 推荐(0)
摘要: 优点 快速构建项目 对主流开发框架的无配置集成 项目可独立运行,无需外部依赖 Servlet 容器 提供运行时的应用监控 极大地提高了开发、部署效率 与云计算的天然集成 #缺点 版本迭代速度很快,一些模块改动很大 由于不用自己做配置,报错时很难定位 网上现成的解决方案比较少 阅读全文
posted @ 2019-11-23 00:20 爱喝奶茶的皮卡丘 阅读(244) 评论(0) 推荐(0)
摘要: 概述 随着动态语言的流行 (Ruby、Groovy、Scala、Node.js),Java 的开发显得格外的笨重:繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大。 在上述环境下,Spring Boot 应运而生。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置了一个习惯性 阅读全文
posted @ 2019-11-23 00:19 爱喝奶茶的皮卡丘 阅读(151) 评论(0) 推荐(0)
摘要: POM 创建一个工程名为 hello-spring 的项目,pom.xml 文件如下: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi= 阅读全文
posted @ 2019-11-23 00:18 爱喝奶茶的皮卡丘 阅读(196) 评论(0) 推荐(0)
摘要: 概述 Spring 由 20 多个模块组成,它们可以分为数据访问/集成(Data Access/Integration)、Web、面向切面编程(AOP, Aspects)、应用服务器设备管理(Instrumentation)、消息发送(Messaging)、核心容器(Core Container)和 阅读全文
posted @ 2019-11-23 00:14 爱喝奶茶的皮卡丘 阅读(124) 评论(0) 推荐(0)
摘要: 概述 控制反转(IoC,Inversion of Control),是一个概念,是一种思想。指将传统上由程序代码直接操控的对象调用权交给容器,通过容器来实现对象的装配和管理。控制反转就是对对象控制权的转移,从程序代码本身反转到了外部容器。 IoC 是一个概念,是一种思想,其实现方式多种多样。当前比较 阅读全文
posted @ 2019-11-23 00:14 爱喝奶茶的皮卡丘 阅读(110) 评论(0) 推荐(0)
摘要: 非侵入式 所谓非侵入式是指,Spring 框架的 API 不会在业务逻辑上出现,即业务逻辑是 POJO。由于业务逻辑中没有 Spring 的 API,所以业务逻辑可以从 Spring 框架快速的移植到其他框架, 即与环境无关。 #容器 Spring 作为一个容器,可以管理对象的生命周期、对象与对象之 阅读全文
posted @ 2019-11-23 00:14 爱喝奶茶的皮卡丘 阅读(159) 评论(0) 推荐(0)
摘要: 概述 Spring 的主要作用就是为代码“解耦”,降低代码间的耦合度。 根据功能的不同,可以将一个系统中的代码分为 主业务逻辑 与 系统级业务逻辑 两类。它们各自具有鲜明的特点:主业务代码间逻辑联系紧密,有具体的专业业务应用场景,复用性相对较低;系统级业务相对功能独立,没有具体的专业业务应用场景,主 阅读全文
posted @ 2019-11-23 00:13 爱喝奶茶的皮卡丘 阅读(151) 评论(0) 推荐(0)
摘要: 概述 下面我们来学习如何使用 Maven 创建一个 Java Web 应用程序 #创建 Maven 项目 选择 File -> New -> Project... 选择 Maven 项目 填写项目信息 选择工作空间 #目录结构 Java Web 的 Maven 基本结构如下: ├─src │ ├─m 阅读全文
posted @ 2019-11-23 00:04 爱喝奶茶的皮卡丘 阅读(219) 评论(0) 推荐(0)
摘要: 本章节只提供 Maven 使用时的一些基本命令 #清除产生的项目 mvn clean 编译源代码 mvn compile 打包 mvn package 只打包不测试(跳过测试) mvn -dmaven.test.skip=true 安装到本地仓库 mvn install 源码打包 mvn sourc 阅读全文
posted @ 2019-11-23 00:01 爱喝奶茶的皮卡丘 阅读(105) 评论(0) 推荐(0)