09 2019 档案
摘要:1)java client 生产者和消费者都属于客户端,rabbitMQ的java客户端如下: 我们先用 rabbitMQ官方提供的java client测试,目的是对RabbitMQ的交互过程有个清晰的认识。 参考 :https://github.com/rabbitmq/rabbitmq-jav
阅读全文
摘要:RabbitMQ由Erlang语言开发,Erlang语言用于并发及分布式系统的开发,在电信领域应用广泛,OTP(Open Telecom Platform)作为Erlang语言的一部分,包含了很多基于Erlang开发的中间件及工具库,安装RabbitMQ需 要安装Erlang/OTP,并保持版本匹配
阅读全文
摘要:Producer生产者 Consumer:消费者 组成部分说明如下: Broker:消息队列服务进程,此进程包括两个部分:Exchange和Queue。 Exchange:消息队列交换机,按一定的规则将消息路由转发到某个队列,对消息进行过虑。 Queue:消息队列,存储消息的队列,消息到达队列并转发
阅读全文
摘要:开发中消息队列通常有如下应用场景: 1、任务异步处理。 将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。 2、应用程序解耦合 MQ相当于一个中介,生产方通过MQ与消费方交互,它将应用程序进行解耦合。 市场上还有哪些消息队列? ActiveMQ,Rab
阅读全文
摘要:先静态化,并存储到gridFS 然后,发消息给MQ,MQ接收到消息通知给所有监听他的Cms Client。 Cms client从gridFS读取页面下载到自己的服务 业务流程如下:1、管理员进入管理界面点击“页面发布”,前端请求cms页面发布接口。2、cms页面发布接口执行页面静态化,并将静态化页
阅读全文
摘要:通过nginx转发到预览的地址 重启nginx 添加页面预览按钮 调整下列表的列的宽度
阅读全文
摘要:1、用户进入cms前端,点击“页面预览”在浏览器请求cms页面预览链接。 2、cms根据页面id查询DataUrl并远程请求DataUrl获取数据模型。 3、cms根据页面id查询页面模板内容 4、cms执行页面静态化。 5、cms将静态化内容响应给浏览器。 6、在浏览器展示页面内容,实现页面预览的
阅读全文
摘要:测试service内些的静态化的方法 先新建一个测试类 模板的id 放到下拉的静态数据里面 这样这条数据 就是用用的轮播图005这个模板 把这条数据静态化 进入到断点里面。先获取数据模型 获取模板时 报错。 拿到模板文件的id 这里报错,从流里面拿数据 文件的字节数是2013 我们刚才在测试的时候,
阅读全文
摘要:定义getModelByPageId 定义一个专门的代码,用来表示页面找不到 通过restTemplate方法获取dataUrl接口的数据 调用获取Map数据 获取页面模板 创建获取模板信息的方法:getTemplateByPageId 创建cmsTemplate的Dao 创建到接口:CmsTemp
阅读全文
摘要:启动前端和后端。轮播图的数据url可以在这里修改。 找到列表页面的轮播图,然后点击编辑 随便更新一个地址测试 提交后数据再次编辑 发现url没有变化 在pageService里面update方法把更新的字段加上 //更新dataUrlone.setDataUrl(cmsPage.getDataUrl
阅读全文
摘要:因为没有界面,所以手动的通过操作数据库的方式来存储 比如说要存一个轮播图的模板 把自增的_id去掉 先用测试程序把文件存储到gridFS得到一个gridId,然后拿着这个文件的id 这样就添加好了这一条记录。 这是我自己本机的添加的记录 修改模板,重新到如chunks 修改模板文件怎么去修改。先导出
阅读全文
摘要:需要创建mongoDB的配置类1 配置类里面主要创建。GridFSBucket这个对象。这个对象的作用就是用来打开一个下载流 在cms的微服务下,在config下创建MongoConfig。这个时候就需要用到spring的注解。@Configuration。加上这个注解。这个类就相当于是一个Bean
阅读全文
摘要:将模板信息保存在cms_template里面 存储在fs.chunks这个集合中。这个集合里面存的是分块文件。 fs.files存的是文件的基本信息 chunks存的是块信息 创建测试文件 在cms的微服务下创建测试类:GridFsTest 用gridFsTemplate的api实现存储 store
阅读全文
摘要:这是轮播图的原始文件 运行门户需要把 nginx启动起来 单独运行轮播图。把里面的css的引用都加上网址的url 这就是单独访问到的轮播图的效果 轮播图模板的地址: 阶段5 3.微服务项目【学成在线】·\day04 页面静态化\代码\index_banner.ftltest-freemarker的服
阅读全文
摘要:在视频教学的过程中,不会去做模板管理的模块 cms_template用来存储模板信息 cms_page 这一些课程页面用的是一个模板 模板的详情。templateFileId是模板的文件id 模板的文件单独存到一个分布式的文件系统就是gridFS 第一步做模板文件,第二部把模板入库。
阅读全文
摘要:okhttp的官方文档: https://square.github.io/okhttp/ github的地址 https://github.com/square/okhttp/ 如何远程请求轮播图的DataUrl 之前已经添加过引用。 最终使用OkHttpClient 配置RestTemplate
阅读全文
摘要:要开发轮播图的DataUrl的接口 轮播图的配置的集合 xc-framework-model这个module下 CmsConfigModel的类的属性 定义接口 在api里面定义接口:CmsConfigControllerApi 实现接口 首先定义dao。CmsConfigRepository Pa
阅读全文
摘要:需要知道数据结构,然后去做模板标签。首先需要获取页面的数据模型。下面的每一条记录都代表一个页面。 比如这个轮播图。就需要提前给这个轮播图编写一个模板 有很多的页面如果知道每个页面的dataUrl。例如轮播图要生成静态页,谁开发的轮播图这个功能,就跟谁要这个dataUrl gridFS是mongoDB
阅读全文
摘要:再定义一个测试方法 把拿到的字符串变成模板 加载器设置好了以后, 加一个断点来测试 生成模板文件 上面这种方式很灵活。 最终代码 test1.html
阅读全文
摘要:把resource拷贝到test目录下 只保留文件夹结构和test1.ftl这个模板文件就可以了。 新建一个包 编写测试类 使用freemaker提供的方法生成静态文件 Configuration是import freemarker.template.Configuration;包下的 手动的设置模
阅读全文
摘要:可以理解为freemaker提供的一些函数和方法 controller里面记得把map的数据注释去掉,。放开代码 工程需要重启下 日期 controller内把日期都返回 自定义下你是 数字 往map里面加一个小数 页面取出,显示 数字,以三位分隔的方式显示。 问号+c:表示数字类型转换成字符串 j
阅读全文
摘要:把stus注释掉 正常访问就会报错 第20行 这里的stus为空,所以造成了这个错误。 非空判断 不为空用双问号来判断 加了空值 的判断就不报错了。 默认值 把stu1设置为空 36行代码从报错 第36行代码 可以用非空判断的方式 缺省
阅读全文
摘要:金额大于300加背景颜色 大于号 和后面的标签结束 这两个区分不开谁是大于号 所以就报错了。 把大于号改成gt 大于号的判断在括号里面括起来 结束
阅读全文
摘要:大的map里面有一些小的map 遍历数据模型里面的stuMap 点的形式测试 遍历stuMap里面的keys赋值给stu 便利出来的k 最终代码
阅读全文
摘要:controller填充数据 最终加入到map中的几个数据 模板1 把工程编译一下。刷新页面不管用,还是需要重启页面 重启这个springboot应用 先把日期字段注释掉‘ 自增序号 序号从0开始就加1 完整代码
阅读全文
摘要:注释 编译一些这个模板 我的IDEA里面,是重新编译 刷新页面 注释、插值、FTL、文本
阅读全文
摘要:新建一个module 选择parent test-freemarker spring‐boot‐starter‐freemarker:spring boot 提供的关于 freemaker的相关的包 lombok:写模型类需要。 okhttp:远程访问的包 复制进来以后,刷新一下 配置文件 appl
阅读全文
摘要:
阅读全文
摘要:上半部分就是静态化 业务流程如下: 1、获取模型数据 2、制作模板 3、对页面进行静态化 4、将静态化生成的html页面存放文件系统中 5、将存放在文件系统的html文件发布到服务器
阅读全文
摘要:框架抛出来的或者一些第三方的组件抛出来的异常。我们根本不知道它所对应的错误代码的信息,所以我们也没有办法给用户返回具体的错误代码和错误信息。 我们先在Map中定义有一些不可预知的异常,定义错误代码和错误信息。如果我们在map中找到了这个错误代码,我们可以给用户返回,如果我们没有找到。就返回统一的99
阅读全文
摘要:在common工程创建捕获异常的类:CustomException Runtime叫做运行异常。在代码中抛出的话 对我们的代码没有可侵入性 如果在代码上抛出 如果改成Exception 这时候就会有错误提示。 那就必须要在方法的上面抛出‘ 要么不在方法上抛出,去捕获 指定resultCode使用构造
阅读全文
摘要:ResultCode有很多的实现类 cmsCode有很多类型的错误异常 pgeService内当CmsPage这个对象为空的时候,异常类型就可以抛出CmsCode里面的错误代码 测试 测试添加,重复添加会报错。、 在这里加个断点 走到这里再继续往下走,就应该进入到捕获类了。 , 再继续往下走,。但是
阅读全文
摘要:右侧是框架报的异常 不可预知的,例如数据库连不上这一类的。可以在map中制定某些类的异常,如果找不到就最右边的 99999的, 系统对异常的处理使用统一的异常处理流程: 1、自定义异常类型。 2、自定义错误代码及错误信息。 3、对于可预知的异常由程序员在代码中主动抛出,由SpringMVC统一捕获。
阅读全文
摘要:这块代码没有异常处理。如果在Service出现了异常代码,在哪里捕获?要么在Servive内捕获,要么在调用service的地方也就是controller内捕获 每个调用service的地方都要去捕获。代码冗余性非常差,每个地方都需要加try catch 快捷键 Ctrl+Alt+T快捷键 存在的问
阅读全文
摘要:增加删除链接 cms.js定义调用服务端的方法 这里的删除一定要用requestDelete的方式。 删除之前增加提示 把代码段放在confirm里面 测试 删除后刷新数据 完整代码 <template> <div> <!--查询表单--> <el-form :model="params"> <el
阅读全文
摘要:删除页面 api里面定义接口 返回类型是ReponseResult service controller 删除用deleteMapping 测试 在swaggerUI上测试
阅读全文
摘要:修改数据 这是提交按钮的事件editSubmit 注意修改的方法是put方法。所以用requestPut 操作成功自动返回 测试 成功后自动跳转到列表页 修改后的数据
阅读全文
摘要:1、进入页面,通过钩子方法请求服务端获取页面信息,并赋值给数据模型对象 2、页面信息通过数据绑定在表单显示 3、用户修改信息点击“提交”请求服务端修改页面信息接口 3.3.3 修改页面 3.3.3.1 编写page_edit页面 修改页面的布局同添加页面,可以直接复制添加页面,在添加页面基础上修改。
阅读全文
摘要:需要写两个接口 api的接口内定义两个方法。修改的地方单独传了id 编写Service 先查询要修改的数据是否存在 controller 修改的数据要json提交。所以这里用@RequestBody 修改数据
阅读全文
摘要:表单数据提交到后台 page_add.vue的提交按钮的事件 要解析的结果json 使用message提示信息 简写的方式 纠正page_add.vue ,最上面是两个下拉选择select controller里面加个断点 数据库内有数据 重复提交就会失败 增加一个是否确认提交 找到确认的弹窗的代码
阅读全文
摘要:在新增页面加返回按钮 go_back事件 点击新增页面的时候把当前的页面传过去,还有查询条件。 然后再点击返回的时候,还是跳转到刚才的页面 page_list.vue内rounter-link加上参数。 http://localhost:11000/#/cms/page/add/?page=3&si
阅读全文
摘要:新建一个添加的页面 复制page_list页面改改名字 page_add 一个标准的页面 新建路由 新增页面点击后跳转的页面 6、站点及模板数据(先使用静态数据) 在created钩子方法中定义,created是在html渲染之前执行,这里推荐使用created 完整代码 <template> <d
阅读全文
摘要:其从程序swaggerUI测试 pageName和别名都是 test003 操作成功,最终成功的对象也返回回来了 返回的数据 数据不改变 继续添加Try it out! 再次点击添加。重复添加,
阅读全文
摘要:api接口定义方法 api的微服务里面。CmsPageControllerApi内定义add方法,返回类型是CmsPageResult CmsPageResult继承了ResponseResult ResponseResult里面这三项,SUCCESS、SUCCESS_CODE、message 把新
阅读全文
摘要:下拉选择框 先默认把数据在mounted钩子函数内初始化数据 下拉框和页面别名的输入框 params参数增加siteId和pageAliase 上面的下拉和文本框通过v-model双向绑定了siteId和pageAliase api/cms.js内,把json对象拼装成key -value的形式。这
阅读全文
摘要:在Service中实现自定义查询 StringUtils.isNotEmpty()是这个包下的org.apache.commons.lang3.StringUtils; 再设置其他的条件 定义Example对象 把example作为第一个参数 controller 代码不用改 测试 这里加一个断点测
阅读全文
摘要:在页面输入查询条件,查询符合条件的页面信息。 查询条件如下: 站点Id:精确匹配 模板Id:精确匹配 页面别名:模糊匹配 spring mongoDB如何自定义条件 在Repository的findAll方法里面有个参数是Example 其实就是存放条件的 Example有个泛型T 指定的就是查询条
阅读全文
摘要:看图
阅读全文
摘要:进入页面默认就去查询数据 这要用到vue的钩子函数,每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、 编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子 的函数,这给了用户在不同阶段添加自己的代码的机会。 生
阅读全文
摘要:修改为默认的参数 点击分页的事件 current-change 我们弹个alert测试下 看文档,参数是当前页 把当前页的数据赋值给params.page这个对象 分页效果实现 最终代码 <template> <div> <el-button type="primary" v-on:click="q
阅读全文
摘要:点击页面查询按钮 ,报错。跨域问题。 前端端口是11000 请求后端的服务地址端口是31001 出现跨域 开始解决跨域 把前面带端口的地址 用变量代替 只有带/api/cms开头的就转发的服务端31001的端口 把/api替换成空字符串 测试 点击查询 数据库可以访问到了 后期会通过nginx去解决
阅读全文
摘要:在api里面定义js方法获取服务端的数据 把home模块的下的home.js文件复制到api的目录下改名叫做cms.js 复制过来 默认的代码 实际上引用的是base下的api/public.js文件。 引入的时候.js结尾是可以省略的 工具类连用了axios 定义获取后台数据的方法.在api/cm
阅读全文
摘要:访问swaggerUI的接口 得到返回的json数据,就是我们页面上要显示的数据 复制到页面的数据这里 加分页 Pagination组件 https://element.eleme.io/#/zh-CN/component/pagination 复制到table的下面 分页显示的效果 分页显示在右边
阅读全文
摘要:页面填充内容。用一个表格来显示内容 3.1.2.1 Element-UI介绍 本项目使用Element-UI来构建界面,Element是一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组 件库。 Element-UI官方站点:http://element.eleme.io/#/zh
阅读全文
摘要:module下创建cms目录,里面存cms模块相关的页面 在cms下创建api和components目录,components下放的就是组件。 这个组件刚才介绍的base的下的组件不一样。base下的组件是被所有模块公用。cms下的组件是只给cms这个模块下用的 cms下 四个标准的目录结构 开始写
阅读全文
摘要:参考文章: 4.0的安装 https://blog.csdn.net/qq_26896281/article/details/81203687 MongoDB4.0.0 远程连接及用户名密码认证登陆配置——windows https://blog.csdn.net/qq_26896281/artic
阅读全文
摘要:查看运行起来的页面的源代码 这个webpck打包生成的文件。 单页面应用的优缺点: 优点: 1、用户操作体验好,用户不用刷新页面,整个交互过程都是通过Ajax来操作。 2、适合前后端分离开发,服务端提供http接口,前端请求http接口获取数据,使用JS进行客户端渲染。 缺点: 1、首页加载慢 单页
阅读全文
摘要:提供了基于脚手架封装好的前端工程 H:\BaiDu\黑马传智JavaEE57期 2019最新基础+就业+在职加薪\阶段5 3.微服务项目【学成在线】·\day02 CMS前端开发\资料\xc-ui-pc-sysmanage.7z _all的是完整的。不带all的是手写的第一部分的 解压出来 ,这里应
阅读全文
摘要:webpack把我们的js文件都打包了。所以不能用chrome的调试工具。 打包生成的js文件比较乱无法跟踪。 配置好了以后就可以让浏览器查看到打包后的源代码 在源代码这里加一个debuuger 这里显示了 x和y 当前的值是1
阅读全文
摘要:实现自动打包自动刷新浏览器 新建目录和页面看图 cnpm install webpack@3.6.0 webpack-dev-server@2.9.1 html-webpack-plugin@2.30.1 --save-dev 安装后生成这两个文件 加上配置项 配置配置文件 鼠标右键 运行dev。自
阅读全文
摘要:创建webpack测试的目录 定义webpack的入口文件 mdel01必须导出,main里面才能导入 导出多个 数组的写法 main是入口文件,里面已经引入了vue.min和model01.js 打包生成的文件 页面最终引用这个build.js 总结
阅读全文
摘要:npm默认安装配置的路径配置在nodejs的node_modules目录 j加上 -g 就是全局安装 后面只写webpack默认安装的是最新版本 指定版本号 视频中建议指定版本号进行安装
阅读全文
摘要:node.js安装完成后,就自动安装了webpack。 npm -v:查看npm安装的版本 当前安装目录默认的包 在node.js的目录下创建两个文件夹 这样路径就被修改成功了 cnpm npm install -g cnpm --registry=https://registry.npm.taob
阅读全文
摘要:1.3.2.1 安装Node.js webpack基于node.js运行,首先需要安装node.js。 node -v:验证是否安装成功了。
阅读全文
摘要:以前的var方式声明不好用 a=1会声明一个全局变量, 输出了1 说明a=1确实声明了一个全局变量。 但是你把放在其他的地方,就不是声明全局变量了。 如果外面有个全局变量a 那么函数里面就是给a赋值 调用fn方法,输出的还是1 有两层函数的时候,直接使用的是局部变量a,也就是fn函数里面的a 如果当
阅读全文
摘要:H:\BaiDu\ES6深入浅出-wjw ES 6 新特性一览:https://frankfang.github.io/es-6-tutorials/ 我用了两个月的时间才理解 let https://zhuanlan.zhihu.com/p/28140450 1 新版变量声明:let 和 cons
阅读全文
摘要:es7语法比较少,只占了一点点 ES 6 新特性一览:https://frankfang.github.io/es-6-tutorials/ 我用了两个月的时间才理解 let https://zhuanlan.zhihu.com/p/28140450
阅读全文
摘要:使用vue.js开发大型应用需要使用webpack打包工具,本节研究webpack的使用方法。 1.3.1 webpack介绍 Webpack 是一个前端资源的打包工具,它可以将js、image、css等资源当成一个模块进行打包。 从图中我们可以看出,Webpack 可以将js、css、png等多种
阅读全文
摘要:1.2.4 v-if和v-for 新建页面03 v-for的语法格式: () in list :key 指定数组的主键。 去除数组的下标和项目 刷新看到效果 参数值不是固定的 可以随意起名 v-if 偶数显示 除以2 取余数 循环另外集合 遍历键值对象集合 满足if条件 显示绿色背景色 只有满足条件
阅读全文
摘要:4、v-bind v-bind:无法双向绑定’ a标签绑定 href属性为url这个变量 v-bind简写 绑定到style属性
阅读全文
摘要:3、v-on绑定一个按钮的单击事件 计算的按钮上加事件 点击计算的按钮,弹出的事件 定义一个Result的变量
阅读全文
摘要:把js移到body 的下面 网速改慢一点 通过模拟网速慢的情况。刷新页面的时候会有闪烁的效果 速度快的情况下也会闪烁 ,只不过是不明显。 2、解决插值表达式闪烁问题,使用v-text v-text可以将一个变量的值渲染到指定的元素中,它可以解决插值表达式闪烁的问题 用一个span标签。然后把 v-t
阅读全文
摘要:加之前先转换成Number类型
阅读全文
摘要:本次测试我们在门户目录中创建一个html页面进行测试,正式的页面管理前端程序会单独创建工程。 在门户目录中创建vuetest目录,并且在目录下创建vue_01.html文件 在我们的前端工程里面创建vuetest的目录 把vue.min.js文件拷贝过去 创建一个html
阅读全文
摘要:1.2.1 MVVM模式 vue.js是一个MVVM的框架,理解MVVM有利于学习vue.js。 MVVM拆分解释为: Model:负责数据存储 View:负责页面展示 View Model:负责业务逻辑处理(比如Ajax请求等),对数据进行加工后交给视图展示 MVVM要解决的问题是将业务逻辑代码与
阅读全文
摘要:1、vue.js是什么? Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计 为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一 方面,当与现代化的工具链以及各种支持类库结
阅读全文
摘要:文件的上传 ‘ 认证
阅读全文
摘要:7 页面查询接口测试上边的代码是基于服务端编写接口,如果前端人员等待服务端人员将接口开发完毕再去开发前端内容这样做效率是非常低下的,所以当接口定义完成,可以使用工具生成接口文档,前端人员查看接口文档即可进行前端开发,这样前端和服务人员并行开发,大大提高了生产效率。本章节介绍两种接口开发工具,Swag
阅读全文
摘要:6.6.1 Api请求及响应规范为了严格按照接口进行开发,提高效率,对请求及响应格式进行规范化。1、get 请求时,采用key/value格式请求,SpringMVC可采用基本类型的变量接收,也可以采用对象接收。2、Post请求时,可以提交form表单数据(application/x-www-for
阅读全文
摘要:开发Service层 在manage_cms服务下的service包内 创建service层 service方法的定义和Controller保持一致 controller内注入Service 直接返回。service的方法即可 service层内。 最终返回结果 controller这里光调用Ser
阅读全文
摘要:测试SpringDataMongoDB的一些基础方法 演示下修改方法 修改分为两步,首先把对象查出来 Optional是JDK1.8提供的 optional.get就拿到了这个对象 为什么不直接返回CmsPage,而是返回Optional 如果返回的是CmsPage,CmsPage为空那么 调用里面
阅读全文
摘要:把静态数据改成调用Service。service最终要调用dao查询数据 先定义dao的接口 在微服务manage_cms这个服务下,现在是要操作CmsPage这个集合下面的数据,。所以命名为CmsPageRepository。前面是model类的名称+Repository。注意这里创建的是一个接口
阅读全文
摘要:要写的就是这个接口的实现 定义接口的实现类 实现接口内的方法 学过SpringMvc这里就可以使用springMvc注解来开发了。例如这里使用@RestController @RestController相当于@Controller和@ResponseBody两个注解的集合。 @ResponseBo
阅读全文
摘要:接口的实现 创建一个cms的微服务工程 选择父工程 现在是一个空的工程。 这里引入了同一个模块下的项目的包 groupId是相同的包名,artifactId是和引用的项目对应的artifactId相同的。version版本应该是无所谓。 这是xc-service-api这个项目里的artifactI
阅读全文
摘要:根据需求定义接口 5.1.1 需求分析在梳理完用户需求后就要去定义前后端的接口,接口定义后前端和后端就可以依据接口去开发功能了。本次定义页面查询接口,本接口供前端请求查询页面列表,支持分页及自定义条件查询方式。具体需求如下:1、分页查询CmsPage 集合下的数据2、根据站点Id、模板Id、页面别名
阅读全文
摘要:需求 刚才导入的结合。cms_page就是页面的集合。有很多条记录,每一条记录表示一个具体的页面 _class是对应的模型类 siteId:站点id pageName:页面名称 pageAliase:页面的别名 pagePhysicalPath:页面在服务器上的屋里路径 pageType:页面类型,
阅读全文
摘要:每一个文件都是一个集合 这里面就是一堆的页面信息
阅读全文
摘要:之前我们链接数据库的时候,并没有输入账号和密码。那是因为我们并么有启动认证 通常是把用户创建在admin数据库下。所以这里use admin 然后 db:显示当前的数据库是哪个 确认好是admin 开启认证 再次执行mongo.exe提示 然后,show dbs 提示没有权限 注意这里的cmd的路径
阅读全文
摘要:当前数据库是test02.,像student这个集合插入 _Id是mongoDB自动创建的主键。主键的类型叫做ObjectyId对象类型 更新文档 把name等于黑马程序员的文档更新为为后面的内容 set修改器 执行这个命令 通过工具插入。插入的时候没有加主键,因为会自动的插入 下面一条数据有add
阅读全文
摘要:默认的端口就是27017是可以省略的 最后一个是集群的环境 进入安装目录,输入mongo.exe就连上了 这个就是我们所说的链接字符串 使用java程序链接。 首先引入驱动包 测试程序 后续我们使用springboot去链接,不用我们管链接这块,只要配置个链接字符串就可以了。 showdbs:查询当
阅读全文
摘要:mongo没有表连接
阅读全文
摘要:最新版本下载地址:https://www.mongodb.com/download-center/community CMS采用MongoDB数据库存储CMS页面信息,CMS选用Mongodb的原因如下: 1、Mongodb是非关系型数据库,存储Json格式数据 ,数据格式灵活。 2、相比课程管理等
阅读全文
摘要:CMS及其它服务端工程基于maven进行构建,首先需要创建如下基础工程: parent工程:父工程,提供依赖管理。 common工程:通用工程,提供各层封装 model工程:模型工程,提供统一的模型类管理 utils工程:工具类工程,提供本项目所使用的工具类 Api工程:接口工程,统一管理本项目的服
阅读全文
摘要:创建文件夹,这里准备存微服务,服务端的工程 这里用的版本 点击Open打开刚才创建的目录 配置Maven环境 使用3.5.4的版本 找到maven下的settings.xml这个文件 资料里面有本地仓库的压缩包,解压到仓库的目录下就可以了。因为每个人可能配置的本地仓库都不一样 配置jdk 项目的编码
阅读全文
摘要:页面管理的需求 1、这些页面的管理流程是什么? 1)创建站点: 一个网站有很多子站点,比如:学成在线有主门户、学习中心、问答系统等子站点。具体的哪个页面是归属于具体 的站点,所以要管理页面,先要管理页面所属的站点。 2)创建模板: 页面如何创建呢?比如电商网站的商品详情页面,每个页面的内容布局、板式
阅读全文
摘要:想更改页面的某一小部分,不想把整个页面都提交到服务器。 才用一种技术,把页面分隔成若干个小页面 本节分析首页的管理方案。 1、页面内容多如何管理? 将页面拆分成一个一个的小页面,通过cms去管理这些小页面,当要更改部分页面内容时只需要更改具体某个小页 面即可。 2、页面拆出来怎么样通过web服务浏览
阅读全文
摘要:本项目CMS是对页面进行管理,对页面如何进行管理呢?我们首先搭建学成网的静态门户工程,根据门户的页面结 构来分析页面的管理方案。 门户,是一个网站的入口,一般网站都有一个对外的门户,学成在线门户效果图如下: 前端开发工具: 阶段5 3.微服务项目【学成在线】·\day01 搭建环境 CMS服务端开发
阅读全文
摘要:1、CMS是什么 ? CMS (Content Management System)即内容管理系统,不同的项目对CMS的定位不同,比如:一个在线教育网 站,有些公司认为CMS系统是对所有的课程资源进行管理,而在早期网站刚开始盛行时很多公司的业务是网站制 作,当时对CMS的定位是创建网站,即对网站的页
阅读全文
摘要:技术栈,主要讲解每一层才用的技术有哪些 微服务 开发步骤 重点是接口定义和服务端开发
阅读全文
摘要:采用前后分离的架构 分层的架构,这里是一层一层的。当用户请求进来每一层提供相应的功能来完成这次用户的请求。 负载均衡 四层和7层。用户请求分摊到不同的节点 服务层统一提供服务,不管是web端还是手机端。方便系统的业务扩展。会把服务的颗粒度分的特别细,就是为了提高服务的可重用性、独立性 数据层,数据的
阅读全文
摘要:界面原型 H:\BaiDu\黑马传智JavaEE57期 2019最新基础+就业+在职加薪\阶段5 3.微服务项目【学成在线】·\day01 搭建环境 CMS服务端开发\资料\界面原型
阅读全文
摘要:这个就是博学谷下的 在线教育平台
阅读全文
摘要:搭建项目 这是父模块。我们不打算写代码,所以直接删掉 建立子模块 在父母快下建立三个子模块 建立好api模块 model字模块 server字模块 加入依赖的jar包 父模块的pom.xml api模块 model模块 依赖的传递。model层依赖api层 server模块 用来实现分布式所的zoo
阅读全文
摘要:学习的前提是购买过这个课程: https://edu.51cto.com/topic/2694.html 数据库内分别有这几个表 项目的源码,采用多模块的方式进行搭建 记得要修改数据库的连接信息 redis和Zookeeper的服务都要启动起来。 运行起来的主页 点击最后一个详情, 进行秒杀。需要先
阅读全文
摘要:
阅读全文
摘要:
阅读全文
摘要:51CTO学院 Java商城秒杀系统的设计与实战视频教程(SpringBoot版) H:\BaiDu\微服务0830\2019最新 Java商城秒杀系统的设计与实战视频教程(SpringBoot版) 2019最新 Java商城秒杀系统的设计与实战视频教程(SpringBoot版)_1-1课程整体介绍
阅读全文
摘要:
阅读全文
摘要:笔记 3、微信网站扫码支付介绍 简介:讲解微信网页扫码支付 1、扫码支付文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=2_2 2、名称理解 appid:公众号唯一标识 appsecret:公众号的秘钥 mch_id:商户号,
阅读全文
摘要:笔记 2、申请微信支付介绍和不同场景的支付方式 简介:介绍微信商户平台,支付方式和使用场景,申请微信支付流程 1、什么是微信商户平台: 地址:https://pay.weixin.qq.com 提供给商家使用,用于查看交易数据,提现等信息 2、常用的支付方式 公众号支付,扫码支付,app支付,小程序
阅读全文
摘要:笔记 第六章 开发在线教育视频站点核心业务之从零基础接入 微信扫一扫网页支付 1、常用的第三方支付和聚合支付介绍 简介:介绍常用的第三方支付和聚合支付 1、什么是第三方支付 第三方支付是指具备一定实力和信誉保障的独立机构,采用与各大银行签约的方式,通过与银行支付结算系统接口对接而促成交易双方进行交易
阅读全文
摘要:笔记 10、Springboot2.x用户登录拦截器开发实战 简介:实战开发用户登录拦截器拦截器 LoginInterceptor 1、实现接口 LoginInterceptor implements HandlerInterceptor 2、重写preHandler String accessTo
阅读全文
摘要:笔记 9、使用JWT生成用户Token回写客户端 简介:讲解用户授权登录后,需要生成登录凭证重定向到页面上 1、获取当前页面访问地址 2、根据User基本信息生成token 3、重定向到指定页面 开始 生成jwt。增加access_page 登陆成功后跳转的页面 图片的地址是IO操作,所以这里需要捕
阅读全文
摘要:笔记 8、用户模块开发之保存微信用户信息 简介:开发User数据访问层,保存微信用户信息 问题: 微信回调 用户昵称乱码 解决: nickname = new String(nickname.getBytes("ISO-8859-1"), "UTF-8"); 1、封装User对象 2、插入数据库 获
阅读全文
摘要:笔记 7、授权登录获取微信用户个人信息实战 简介:讲解使用授权码code获取用户个人信息接口 关键点:看微信文档,字段尽量用拷贝 1、通过code获取access_token 文档: https://open.weixin.qq.com/cgi-bin/showdocument?action=dir
阅读全文
摘要:笔记 6、微信扫码登录回调本地域名映射工具Ngrock 简介:讲解微信扫码回调本地域名ngrock讲解 1、为什么要用这个,微信扫码需要配置回调,需要配置对应的域名 在本地电脑开发,微信没法回调,所以需要配置个地址映射,就是微信服务器 可以通过这个地址访问当前开发电脑的地址 2、使用文档: http
阅读全文
摘要:笔记 5、HttpClient4.x工具获取使用 简介:讲解httpClient4.x相关依赖,并封装基本方法。 1、加入依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</arti
阅读全文
摘要:笔记 4、微信授权一键登录开发之授权URL获取 简介:获取微信开放平台扫码连url地址 1、增加结果工具类,JsonData; 增加application.properties配置 #微信开放平台配置 wxopen.appid= wxopen.appsecret= #重定向url wxopen.re
阅读全文
摘要:笔记 3、微信Oauth2.0交互流程讲解 简介:讲解微信Oauth2.0交互流程 参考:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open14193
阅读全文
摘要:笔记 2、微信扫一扫功能开发前期准备 简介:讲解微信扫一扫功能相关开发流程和资料准备 1、微信开放平台介绍(申请里面的网站应用需要企业资料) 网站:https://open.weixin.qq.com/ 2、什么是appid、appsecret、授权码code appid和appsecret是 资源
阅读全文
摘要:笔记 1、数据信息安全--微信授权一键登录功能介绍 简介:讲解登录方式优缺点和微信授权一键登录功能介绍 1、手机号或者邮箱注册 优点: 1)企业获取了用户的基本资料信息,利于后续业务发展 推送营销类信息 2)用户可以用个手机号或者邮箱获取对应的app福利 注册送优惠券 3)反馈信息的时候方便,直接报
阅读全文
摘要:笔记 3、登录检验JWT实战之封装通用方法 讲解:引入相关依赖并开发JWT工具类 1、加入相关依赖 <!-- JWT相关 --> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <versio
阅读全文
摘要:笔记 2、微服务下登录检验解决方案 JWT讲解 简介:微服务下登录检验解决方案 JWT讲解 json wen token 1、JWT 是一个开放标准,它定义了一种用于简洁,自包含的用于通信双方之间以 JSON 对象的形式安全传递信息的方法。 JWT 可以使用 HMAC 算法或者是 RSA 的公钥密钥
阅读全文
摘要:笔记 第四章 开发在线教育视频站点核心业务之JWT微服务下的用户登录权限校验 1、单机和分布式应用的登录检验讲解 简介:讲解单机和分布式应用下登录校验,session共享,分布式缓存使用 1、单机tomcat应用登录检验 sesssion保存在浏览器和应用服务器会话之间 用户登录成功,服务端会保证一
阅读全文
摘要:笔记 5、PageHelper分页插件使用 简介:讲解开源组件,mybaits分页插件的使用 1、引入依赖 <!-- 分页插件依赖 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</ar
阅读全文
摘要:笔记 4、动态Sql语句Mybaties SqlProvider 简介:讲解什么是动态sql,及使用 1、 @UpdateProvider(type=VideoSqlProvider.class,method="updateVideo") 更新 @InsertProvider 插入 @DeleteP
阅读全文
摘要:笔记 3 、Vidoe相关接口完善和规范协议 简介:完善相关接口,协议规范讲解 1、save接口保存对象 1)@RequestParam(value = "page", defaultValue)int videoId 可以设置默认值,比如分页 2)@RequestBody 请求体映射实体类 需要指
阅读全文
摘要:笔记 2、使用Mybatis注解开发视频列表增删改查 讲解:使用Mybatis3.x注解方式 增删改查实操, 控制台打印sql语句 1、控制台打印sql语句 #增加打印sql语句,一般用于本地开发测试 mybatis.configuration.log-impl=org.apache.ibatis.
阅读全文
摘要:笔记 1、整合Mybatis访问数据库和阿里巴巴数据源 简介:整合mysql 加入mybatis依赖,和加入alibaba druid数据源 1、加入依赖(可以用 http://start.spring.io/ 下载) <!-- 引入starter--> <dependency> <groupId>
阅读全文
摘要:笔记 6、Mysql逆向工程效率神器之使用IDE自动生成Java实体类 简介:实战使用IDE根据Mysql自动生成java pojo实体类 1、IDEA连接数据库 菜单View→Tool Windows→Database打开数据库工具窗口 2、左上角添加按钮“+”,选择数据库类型 3、mysql主机
阅读全文
摘要:笔记 7、接口配置文件自动映射到属性和实体类配置 简介:使用@value注解配置文件自动映射到属性和实体类 1、添加 @Component或者Configuration 注解; 2、使用 @PropertySource 注解指定配置文件位置;(属性名称规范: 大模块.子模块.属性名) # 微信相关
阅读全文
摘要:笔记 5、开源工具的优缺点选择和抽象方法的建议 简介:讲解开源工具的好处和弊端,如pageHeper分页拦截器,tk自动生成工具,抽象方法的利弊等 1、开源工具 好处:开发方便,使用简单,使用aop方式进行分页,只需要引入相关依赖,然后PageHelper.startPage(page, size)
阅读全文
摘要:笔记 4、后端项目分层分包及资源文件处理 简介:项目基本目录结构,包名称建立,配置文件建立 1、基本目录结构 controller service impl mapper utils domain config interceoter dto 2、application.properties配置文件
阅读全文
摘要:笔记 3、热部署在Eclipse和IDE里面的使用 简介:讲解热部署的好处及使用注意事项,在eclipse里面默认开启,在IDE里面默认关闭 1、增加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spr
阅读全文
摘要:笔记 2、快速搭建SpringBoot项目,采用IDEA 简介:使用SpringBoot start在线生成项目基本框架并导入到IDEA中 参考资料: IDEA使用文档 http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/ 开始 Fi
阅读全文
摘要:笔记 1、快速搭建SpringBoot项目,采用Eclipse 简介:使用SpringBoot start在线生成项目基本框架并导入到eclipse中 1、站点地址:http://start.spring.io/ 2、需要依赖 spring-boot-starter-web spring-boot-
阅读全文
摘要:笔记 4、在线教育后台数据库设计 简介:讲解后端数据库设计 ,字段冗余的好处,及常见注意事项 1、数据库设计: er图: 实体对象:矩形 属性:椭圆 关系:菱形 video表 video_order表 user表 comment表 chapter张 episode节 2、字段冗余: 什么是字段冗余
阅读全文
摘要:笔记 3、在线教育站点需求分析和架构设计 简介:分析要开发的功能点和系统架构应该怎样架构 1、开发的功能: 首页视频列表 视频详情 (自己开发) 微信扫码登录 下单微信支付 我的订单列表 (自己开发) 2、架构设计 前端后端分离 -> 方案:node渲染 动静分离 -> 方案:静态资源如html,j
阅读全文
摘要:笔记 2、中大型公司里面项目开发流程讲解 简介:讲解一个项目如何从零到上线,经历过怎样的步骤和流程 1、一个中大型项目的开发流程,从需求调研到项目上线 2、需求评审(产品/设计/前端/后端/测试/运营)->UI设计 ->开发(前端架构->开发/ 后端架构->开发) -> 前端后端联调 ->项目提测
阅读全文
摘要:笔记 第一章项目介绍和前期准备 1、SpringBoot整合微信支付开发在线教育视频站点介绍 简介: 课程介绍,和小D课堂在线教育项目搭建开发 1、课程大纲介绍 2、微信支付项目效果演示 3、课程所需基础 springboot2基础+javaweb+mysql+maven 4、开发环境 jdk8+e
阅读全文
摘要:2018年Spring Boot 2.x整合微信支付在线教育网站高级项目实战视频课程 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-1.SpringBoot整合微信支付开发在线教育视频站点介绍 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-2.中大
阅读全文
摘要:2019更新版 Spring Boot双版本(1.5/2.1) 打造企业级微信点餐系统 H:\BaiDu\微服务0830\2019微服务时代Spring Boot双版本(1.5-2.1) 打造企业级微信点餐系统 还是基于1.5.3的版本
阅读全文
摘要:笔记 6、Zuul微服务网关集群搭建 简介:微服务网关Zull集群搭建 1、nginx+lvs+keepalive https://www.cnblogs.com/liuyisai/p/5990645.html 开始 网关防止挂掉了 也需要集群部署 Ngix也可能挂 所以一般和LVS集合 gatew
阅读全文
摘要:笔记 5、高级篇幅之高并发情况下接口限流特技 简介:谷歌guava框架介绍,网关限流使用 1、nginx层限流 2、网关层限流 开始 mysql最大的连接数就是3千多。如果想把应用搞好。每个应用就必须要持平 所以数据库这里也要考虑让他支持更大的并发。 这里可以限流。保护下端服务 限流的框架,谷歌开源
阅读全文
摘要:笔记 4、自定义Zuul过滤器实现登录鉴权实战 简介:自定义Zuul过滤器实现登录鉴权实战 1、新建一个filter包 2、新建一个类,实现ZuulFilter,重写里面的方法 3、在类顶部加注解,@Component,让Spring扫描 开始 比如下单接口,用户一定要登陆。要传一个token过来判
阅读全文
摘要:笔记 3、高级篇幅之Zuul常用问题分析和网关过滤器原理分析 简介:讲解Zuul网关原理和过滤器生命周期, 1、路由名称定义问题 路由映射重复覆盖问题 2、Http请求头过滤问题 3、过滤器执行顺序问题 ,过滤器的order值越小,越先执行 4、共享RequestContext,上下文对象 开始 路
阅读全文
摘要:笔记 2、SpringCloud的网关组件zuul基本使用 简介:讲解zuul网关基本使用 1、加入依赖 2、启动类加入注解 @EnableZuulProxy 默认集成断路器 @EnableCircuitBreaker 默认访问规则 http://gateway:port/service-id/**
阅读全文
摘要:笔记 第六章 微服务网关zuul开发实战 1、微服务网关介绍和使用场景 简介:讲解网关的作用和使用场景 (画图) 1)什么是网关 API Gateway,是系统的唯一对外的入口,介于客户端和服务器端之间的中间层,处理非业务功能 提供路由请求、鉴权、监控、缓存、限流等功能 统一接入 智能路由 AB测试
阅读全文
摘要:笔记 8、断路器监控仪表参数讲解和模拟熔断 简介:讲解 断路器监控仪表盘参数和模拟熔断 1、sse server-send-event推送到前端 资料:https://github.com/Netflix/Hystrix/wiki/Dashboard 开始 模拟一个不超时的正常的请求 userid等
阅读全文
摘要:笔记 7、断路器Dashboard监控仪表盘实战 简介:讲解断路器Dashboard基础使用和查看 1、加入依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ne
阅读全文
摘要:笔记 6、高级篇幅之深入源码剖析Hystrix降级策略和调整 简介:源码分析Hystrix降级策略和调整 1、查看默认讲解策略 HystrixCommandProperties 1)execution.isolation.strategy 隔离策略 THREAD 线程池隔离 (默认) SEMAPHO
阅读全文
摘要:笔记 5、熔断降级服务异常报警通知实战 简介:完善服务熔断处理,报警机制完善 1、加入redis依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis
阅读全文
摘要:笔记 4、Feign结合Hystrix断路器开发实战《下》 简介:讲解SpringCloud整合断路器的使用,用户服务异常情况 1、feign结合Hystrix 1)开启feign支持hystrix (注意,一定要开启,旧版本默认支持,新版本默认关闭) feign: hystrix: enabled
阅读全文
摘要:笔记 3、Feign结合Hystrix断路器开发实战《上》 简介:讲解SpringCloud整合断路器的使用,用户服务异常情况 1、加入依赖 注意:网上新旧版本问题,所以要以官网为主,不然部分注解会丢失 最新版本 2.0 <dependency> <groupId>org.springframewo
阅读全文
摘要:笔记 2、Netflix开源组件断路器Hystrix介绍 简介:介绍Hystrix基础知识和使用场景 文档地址: https://github.com/Netflix/Hystrix https://github.com/Netflix/Hystrix/wiki 1、什么是Hystrix? 1)hy
阅读全文
摘要:笔记: 第五章 互联网架构服务降级熔断 Hystrix 实战 1、分布式核心知识之熔断、降级讲解 简介:系统负载过高,突发流量或者网络等各种异常情况介绍,常用的解决方案 1、熔断: 保险丝,熔断服务,为了防止整个系统故障,包含子和下游服务 下单服务 -》商品服务 -》用户服务 (出现异常-》熔断)
阅读全文
摘要:笔记 6、Feign核心源码解读和服务调用方式ribbon和Feign选择 简介: 讲解Feign核心源码解读和 服务间的调用方式ribbon、feign选择 1、ribbon和feign两个的区别和选择 选择feign 默认集成了ribbon 写起来更加思路清晰和方便 采用注解方式进行配置,配置熔
阅读全文
摘要:笔记 5、微服务调用方式之feign 实战 订单调用商品服务 简介:改造电商项目 订单服务 调用商品服务获取商品信息 Feign: 伪RPC客户端(本质还是用http) 官方文档: https://cloud.spring.io/spring-cloud-openfeign/ 1、使用feign步骤
阅读全文
摘要:笔记 4、高级篇幅之服务间调用之负载均衡策略调整实战 简介:实战调整默认负载均衡策略实战 自定义负载均衡策略:http://cloud.spring.io/spring-cloud-static/Finchley.RELEASE/single/spring-cloud.html#_customizi
阅读全文
摘要:笔记 3、高级篇幅之Ribbon负载均衡源码分析实战 简介: 讲解ribbon服务间调用负载均衡源码分析 1、完善下单接口 2、分析@LoadBalanced 1)首先从注册中心获取provider的列表 2)通过一定的策略选择其中一个节点 3)再返回给restTemplate调用 开始 订单里面获
阅读全文
摘要:笔记 2、微服务调用方式之ribbon实战 订单调用商品服务 简介:实战电商项目 订单服务 调用商品服务获取商品信息 1、创建order_service项目 2、开发伪下单接口 3、使用ribbon. (类似httpClient,URLConnection) 启动类增加注解 @Bean @LoadB
阅读全文
摘要:笔记 第四章 服务消费者ribbon和feign实战和注册中心高可用 1、常用的服务间调用方式讲解 简介:讲解常用的服务间的调用方式 RPC: 远程过程调用,像调用本地服务(方法)一样调用服务器的服务 支持同步、异步调用 客户端和服务器之间建立TCP连接,可以一次建立一个,也可以多个调用复用一次链接
阅读全文
摘要:讲的spring boot 1.5的版本 2017年6月2日的版本。版本稍微有点旧了 小马哥-Java 微服务实践 - Spring Boot 系列-01Java 微服务实践 - Spring Boot 系列(一)初体验
阅读全文
摘要:课程github地址 https://github.com/mercyblitz/segmentfault-lessons 传统的web应用架构。微服务是一种架构。不限定什么语言 单体应用和微服务的对比 SOA 微服务的发展史 rpc更讲究面向接口 socket更面向于底层 分布式的,也叫作进程外的
阅读全文
摘要:笔记 7、Eureka服务注册中心配置控制台问题处理 简介:讲解服务注册中心管理后台,(后续还会细讲) 问题:eureka管理后台出现一串红色字体:是警告,说明有服务上线率低 EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP
阅读全文