自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 收藏
  • 关注

转载 前端笔记Vue项目day1(九)

4、 给每一个tab栏添加事件,并让选中的高亮4.1 、让默认的第一项tab栏高亮tab栏高亮 通过添加类名active 来实现 (CSS active 的样式已经提前写好)在data 中定义一个 默认的 索引 currentIndex 为 0给第一个li 添加 active 的类名 通过动态绑定class 来实现 第一个li 的索引为 0 和 currentIndex ...

2019-09-05 17:09:49 167

转载 前端笔记Vue项目day1(八)

案例选项卡1、 HTML 结构[mw_shl_code=applescript,true]`<div id="app"><div class="tab"><!-- tab栏 --><ul><li class="active">apple</li><li class="">orange</li>&lt...

2019-09-05 17:09:01 151

转载 前端笔记Vue项目day1(七)

循环结构v-for用于循环的数组里面的值可以是对象,也可以是普通元素 [mw_shl_code=applescript,true]<ul id="example-1"><!-- 循环结构-遍历数组 item 是我们自己定义的一个名字 代表数组里面的每一项 items对应的是 data中的数组--><li v-for="item in items">{{ ...

2019-09-05 17:07:49 116

转载 前端笔记Vue项目day1(六)

绑定style[mw_shl_code=applescript,true]<div v-bind:style="styleObject">绑定样式对象</div>'<!-- CSS 属性名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用单引号括起来) --><div v-bind:style="{ color: a...

2019-09-05 17:06:54 156

转载 前端笔记Vue项目day1(五)

绑定对象我们可以给v-bind:class 一个对象,以动态地切换class。注意:v-bind:class指令可以与普通的class特性共存[mw_shl_code=applescript,true]1、 v-bind 中支持绑定一个对象 如果绑定的是一个对象 则 键为 对应的类名 值 为对应data中的数据 <!-- HTML最终渲染为 <ul class="box textCo...

2019-09-05 17:05:14 140

转载 前端笔记Vue项目day1(四)

按键修饰符在做项目中有时会用到键盘事件,在监听键盘事件时,我们经常需要检查详细的按键。Vue 允许为 v-on 在监听键盘事件时添加按键修饰符[mw_shl_code=applescript,true]<!-- 只有在 keyCode 是 13 时调用 vm.submit() --><input v-on:keyup.13="submit"><!-- -当点击ent...

2019-09-05 17:04:06 181

转载 前端笔记Vue项目day1(三)

mvvmMVC 是后端的分层开发概念; MVVM是前端视图层的概念,主要关注于 视图层分离,也就是说:MVVM把前端的视图层,分为了 三部分 Model, View , VM ViewModelm model 数据层 Vue 中 数据层 都放在 data 里面v view 视图 Vue 中 view 即 我们的HTML页面 vm (view-mo...

2019-09-05 17:02:33 284

转载 前端笔记Vue项目day1(二)

v-html用法和v-text 相似 但是他可以将HTML片段填充到标签中可能有安全问题, 一般只在可信任内容上使用 v-html,永不用在用户提交的内容上它与v-text区别在于v-text输出的是纯文本,浏览器不会对其再进行html解析,但v-html会将其当html标签解析后输出。[mw_shl_code=applescript,true]<div id="app">  &lt...

2019-09-05 16:58:40 98

转载 前端笔记Vue项目day1(一)

Vue 是什么?Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合使用Vue将helloworld 渲染到页面上指令本质就是自定义属性Vue中指定都是以 v- 开头v-cloak防止页面加载时出现闪烁问题[mw_shl_code=applescript,true]<style typ...

2019-09-05 16:57:59 145

转载 Java的新项目学成在线笔记-day20(十四)

4.4.4 执行任务 1、进入任务页面,点击“立即构建”使用Gitlab提供的webhook功能可以实现开发人员将代码push到Git仓库自动进行构建。1、设置webhook参考“GitLab安装文档”配置webhook 2、在Idea中修改项目代码,push到GitLab。3、Jenkins任务收到GitLab通知自动执行构建。 ...

2019-09-05 16:55:59 59

转载 Java的新项目学成在线笔记-day20(十三)

4.4.3 maven构建配置 目标:使用jenkins重复构建不要产生重复镜像 使用jekins停止容器、删除容器、删除镜像之间进行判断构建过程分为三步:本例子以构建xc-govern-center工程为例,其它工程构建方式类似。1、使用shell脚本停止容器、删除容器、删除镜像 远程登录192.168.101.64(测试服务器)停止xc-govern-center容器 删除xc-govern...

2019-09-05 16:54:38 76

转载 Java的新项目学成在线笔记-day20(十二)

4.4 创建持续集成任务 4.4.1创建构建任务 创建学成在线的构建任务:4.4.2 配置git仓库 1、配置git凭证 此凭证用于远程从git仓库克隆工程源代码输入git仓库的账号和密码,这里如果使用码云,下边需要配置码云的账号和密码。2、配置git仓库地址,此地址即xc-edu项目的地址...

2019-08-29 17:01:01 45

转载 Java的新项目学成在线笔记-day20(十一)

4.2.3 编写Pom.xml 本例子将xc-govern-center工程使用Jenkins进行构建。在xc-govern-center工程根目录编写pom_docker_registry.xml 此文件相比工程原有pom.xml增加了docker-maven-plugin插件,其作用是构建docker镜像并将镜像推送到 Docker私有仓库(192.168.101.64:5000)。[mw_s...

2019-08-29 16:59:06 55

转载 Java的新项目学成在线笔记-day20(十)

.2.2 安装GitLab GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。 GitLab与GitHub的功能相似,通常企业使用GitLab在局域网搭建自己的Git代码管理仓库。4.2.3 编写Pom.xml 本例子将xc-govern-center工程使用Jenkins进行构建。在xc-govern-center工程根目录编写pom_...

2019-08-29 16:57:37 79

转载 Java的新项目学成在线笔记-day20(七)

将上一步的jar包拷贝到Linux服务器,准备创建镜像。 测试jar包是否可以运行,执行:java -jar xc-govern-center-1.0-SNAPSHOT.jar在xc-govern-center-1.0-SNAPSHOT.jar 位置编写Dockerfile文件[mw_shl_code=applescript,true]FROM java:8 ENV ARTIFACTID xc‐go...

2019-08-29 16:56:23 110

转载 Java的新项目学成在线笔记-day20(九)

4 持续集成 4.1 持续集成介绍 4.1.1问题描述 传统的软件开发流程如下:1、项目经理分配模块给开发人员2、每个模块的开发人员并行开发,并进行单元测试3、开发完毕,将代码集成部署到测试服务器,测试人员进行测试。 4、测试人员发现bug,提交bug、开发人员修改bug5、bug修改完毕再次集成、测试。问题描述:1、模块之间依赖关系复杂,在集成时发现大量bug2、测试人员等待测试时间过长 3、软...

2019-08-29 16:54:18 44

转载 Java的新项目学成在线笔记-day20(八)

3.2.7 停止与删除 要删除的一个镜像重新创建,需要通过如下步骤:1、停止正在运行的容器 docker stop 容器名例如:docker stop xc-govern-center-test 2、删除容器docker rm 容器名 例如:docker rm xc-govern-center-test 3、删除镜像docker rmi 镜像名或镜像Id 例如:docker rmi xc-gove...

2019-08-29 16:50:59 38

转载 Java的新项目学成在线笔记-day20(六)

3.2.3 打包 1、使用maven的打包插件: 将下边的插件依赖拷贝到微服务工程中,本例子将学成在线的Eureka工程打包:[mw_shl_code=applescript,true]<build> <plugins> <plugin> <groupId>org.springframework.boot&lt...

2019-08-29 16:47:08 82

转载 Java的新项目学成在线笔记-day20(五)

2、Containers容器化技术容器技术中docker引擎取代了hypervisor,docker引擎是运行在住宿操作系统上的一个进程,该进程管理了多个 docker容器,每个docker容器集成了应用软件、依赖库,容器之间相互隔离。 3、技术对比:资源占用:虚拟机由于是独立的操作系统,占用资源比docker多。 启动速度:虚拟机包括操作系统,启动虚拟机相当于启动一个操作系统,容器则不一样...

2019-08-29 16:42:32 41

转载 Java的新项目学成在线笔记-day20(四)

3 Docker 3.1 虚拟化技术 3.1.1 问题描述 互联网的发展使软件业发生了巨大的变化,其中一个显著的变化是软件的规模越来越大,基于微服务架构的软件在 生产部署时遇到了这样的挑战:1、微服务的开发语言、操作系统、依赖库等环境配置不同,如何快速安装、迁移、配置软件?2、一个软件由若干微服务组成,如何快速批量部署微服务? 3、如何有效的利于计算机资源?针对前两个问题的思考:传统的软件部署流程...

2019-08-29 16:01:50 70

转载 Java的新项目学成在线笔记-day20(三)

2.4 使用Git管理项目 在Idea中集成Git,并用Git管理学成在线项目。 2.4.1 设置Git 在开发电脑安装Git,并在Idea中设置Git

2019-08-29 15:58:13 64

转载 Java的新项目学成在线笔记-day20(二)

2.2 安装 Git及GitLab 个人电脑上安装Git,过程略。 注意:Git安装完成需配置user.name和user.email[mw_shl_code=applescript,true]查询user.name和uesr.email git config user.name git config user.email 设置: git config ‐‐global user.name "it...

2019-08-22 15:57:29 54

转载 Java的新项目学成在线笔记-day20(一)

1.1 什么是DevOps DevOps是Development和Operations两个词的缩写,引用百度百科的定义:1.2 DevOps工具链 DevOps兴起于2009年,近年来由于云计算、互联网的发展,促进了DevOps的基础设施及工具链的发展,涌现了 一大批优秀的工具,这些工具包括开发、测试、运维的各各领域,例如:GitHub、Git/SVN、Docker、Jenkins、 Huds...

2019-08-22 15:55:49 35

转载 Java的新项目学成在线笔记-day19(十五)

4.2 订单服务结束任务 4.2.1 需求分析 订单服务接收MQ完成选课的消息,将任务从当前任务表删除,将完成的任务添加到完成任务表。 4.2.2 Dao 1、删除xc_task2、添加xc_task_his定义过程略 4.2.3 Service 在TaskService中定义删除任务方法[mw_shl_code=applescript,true]//删除任务 @Transactional ...

2019-08-22 15:52:13 85

转载 Java的新项目学成在线笔记-day19(十四)

4.1.5 接收添加选课消息 接收到添加选课的消息调用添加选课方法完成添加选课,并发送完成选课消息。在com.xuecheng.learning.mq包下添加ChooseCourseTask类[mw_shl_code=applescript,true]@Component public class ChooseCourseTask { private static final Logg...

2019-08-22 15:51:42 75

转载 Java的新项目学成在线笔记-day19(十三)

4 自动添加选课开发 4.1 学习服务添加选课 4.1.1需求分析 学习服务接收MQ发送添加选课消息,执行添加 选 课操作。 添加选课成功向学生选课表插入记录、向历史任务表插入记录、并向MQ发送“完成选课”消息。4.1.2 RabbitMQ配置 学习服务监听MQ的添加选课队列,并且声明完成选课队列,配置代码同订单服务中RabbitMQ配置 4.1.3 Dao 学生选课Dao:[mw_shl_c...

2019-08-22 15:50:30 88

转载 Java的新项目学成在线笔记-day19(十二)

4.5 定时发送任务 4.5.1 Dao 添加更新任务方法:[mw_shl_code=applescript,true]//更新任务处理时间 @Modifying @Query("update XcTask t set t.updateTime = :updateTime where t.id = :id ") public int updateTaskTime(@Param(value = "...

2019-08-22 15:49:57 57

转载 Java的新项目学成在线笔记-day19(十一)

4.2 RabbitMQ配置 向RabbitMQ声明两个队列:添加选课、完成选课,交换机使用路由模式,代码如下:[mw_shl_code=applescript,true]@Configuration public class RabbitMQConfig { //添加选课任务交换机 public static final String EX_LEARNING_ADDCHOOSECOURSE...

2019-08-22 15:49:03 75

转载 Java的新项目学成在线笔记-day19(十)

3.3 Spring Task并行任务 3.3.1 需求分析 在项目通常是需要多个不同的任务并行去执行。本节实现Spring Task并行执行任务的方法。 3.3.2 配置异步任务 创建异步任务配置类,需要配置线程池实现多线程调度任务。[mw_shl_code=applescript,true]@Configuration @EnableScheduling public class Asyn...

2019-08-22 15:47:30 75

转载 Java的新项目学成在线笔记-day19(八)

2.5.2 解决方案 本项目综合考虑选择基于消息的分布式事务解决方案,解决方案如下图:1、支付成功后,订单服务向本地数据库更新订单状态并向消息表写入“添加选课消息”,通过本地数据库保证订单 状态和添加选课消息的事务。。2、定时任务扫描消息表,取出“添加选课任务“并发向MQ。 3、学习服务接收到添加选课的消息,先查询本地数据库的历史消息表是否存在消息,存在则说明已经添加选课, 否则向本地数据库添加选...

2019-08-22 15:36:15 65

转载 Java的新项目学成在线笔记-day19(七)

2、向xc_order数据库导入xc_order_task.sql待处理任务表:在任务表中包括了交换机的名称、路由key等信息为了是将任务的处理做成一个通用的功能。考虑分布式系统并发读取任务处理任务的情况发生项目使用乐观锁的方式解决并发问题。已完成任务表:2.5.2.3 创建选课数据库 创建xc_learning数据库,导入xc_learning.sql,xc_learning_course为...

2019-08-22 15:31:51 45

转载 Java的新项目学成在线笔记-day19(六)

2.4.3 消息队列实现最终一致 本方案是将分布式事务拆分成多个本地事务来完成,并且由消息队列异步协调完成,如下图:下边以下单减少库存为例来说明:1、订单服务和库存服务完成检查和预留资源。2、订单服务在本地事务中完成添加订单表记录和添加“减少库存任务消息”。 3、由定时任务根据消息表的记录发送给MQ通知库存服务执行减库存操作。 4、库存服务执行减少库存,并且记录执行消息状态(为避免重复执行消息,在...

2019-08-15 17:30:06 79

转载 Java的新项目学成在线笔记-day19(五)

2.4 解决方案 2.4.1 两阶段提交协议(2PC) 为解决分布式系统的数据一致性问题出现了两阶段提交协议(2 Phase Commitment Protocol),两阶段提交由 协调者和参与者组成,共经过两个阶段和三个操作,部分关系数据库如Oracle、MySQL支持两阶段提交协议,本节 讲解关系数据库两阶段提交协议。参考:2PC:https://en.wikipedia.org/wiki/...

2019-08-15 17:26:56 100

转载 Java的新项目学成在线笔记-day19(四)

2.3 CAP理论 如何进行分布式事务控制?CAP理论是分布式事务处理的理论基础,了解了CAP理论有助于我们研究分布式事务的 处理方案。CAP理论是:分布式系统在设计时只能在一致性(Consistency)、可用性(Availability)、分区容忍性(Partition Tolerance)中满足两种,无法兼顾三种。 通过下图理解CAP理论:一致性(Consistency):服务A、B、C三个...

2019-08-15 17:23:00 76

转载 Java的新项目学成在线笔记-day19(三)

2.2 什么是分布式事务 1、什么是分布式系统?部署在不同结点上的系统通过网络交互来完成协同工作的系统。比如:充值加积分的业务,用户在充值系统向自己的账户充钱,在积分系统中自己积分相应的增加。充值系统和积 分系统是两个不同的系统,一次充值加积分的业务就需要这两个系统协同工作来完成。2、什么是事务? 事务是指由一组操作组成的一个工作单元,这个工作单元具有原子性(atomicity)、一致性(cons...

2019-08-15 17:17:12 56

转载 Java的新项目学成在线笔记-day19(二)

1.2 自动选课需求 支付成功即完成订单,订单完成之后系统需自动添加选课。下图是微信支付、学成在线订单服务、学成在线学习服务交互图:1、用户支付完成,微信支付系统会主动通知学成在线支付结果,学成在线也可主动请求微信支付查询订单的支付 结果。最终得到支付结果后将订单支付结果保存到订单数据库中。2、订单支付完成系统自动向选课表添加学生选课记录。3、选课记录添加完成学习即可在线开始学习。 2 分布式事...

2019-08-15 17:15:40 85

转载 Java的新项目学成在线笔记-day19(一)

1 订单与选课需求分析 1.1 订单支付流程 学成在线的课程分为免费和收费两种。对于收费课程,用户需提交订单并完成支付方可在线学习。提交订单及支付流程如下:1、用户提交订单需要先登录系统 2、提交订单,订单信息保存到订单数据库 3、订单支付,调用微信支付接口完成支付4、完成支付,微信支付系统通知学成在线支付结果 5、学成在线接收到支付结果通知,更新支付结果提交订单流程:1、用户进入课程详情页面2...

2019-08-15 17:13:27 90

转载 Java的新项目学成在线笔记-day18(十)

4 微服务之间认证 4.1 需求分析 前边章节已经实现了用户携带身份令牌和JWT令牌访问微服务,微服务获取jwt并完成授权。 当微服务访问微服务,此时如果没有携带JWT则微服务会在授权时报错。测试课程预览:1、将课程管理服务和CMS全部添加授权配置 2、用户登录教学管理前端,进入课程发布界面,点击课程发布,观察课程管理服务端报错如下:[mw_shl_code=applescript,true]fe...

2019-08-15 17:09:55 83

转载 Java的新项目学成在线笔记-day18(九)

3.4 获取当前用户信息 3.4.1需求分析 要想实现只查询自己的课程信息则需要获取当前用户所属的企业id。1、认证服务在用户认证通过将用户所属公司id等信息存储到jwt令牌中。 2、用户请求到达资源服务后,资源服务需要取出header中的jwt令牌,并解析出用户信息。3.4.2 jwt令牌包括企业Id 资源服务在授权时需要用到用户所属企业ID,需要实现认证服务生成的JWT令牌中包括用户所属公司i...

2019-08-15 17:06:31 102

转载 Java的新项目学成在线笔记-day18(八)

3.3.2 Api 定义我的课程查询接口如下:[mw_shl_code=applescript,true]public QueryResponseResult<CourseInfo> findCourseList(int page, int size, CourseListRequest courseListRequest);[/mw_shl_code...

2019-08-15 17:05:30 84

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除