框架的学习
xyang_1128
疯狂打码中
展开
-
mybatis 源码笔记(全局流程,初始化大纲)
源码入口这是我从ssm项目中找的一份配置文件,如果你想问我为什么不用springboot,只能说是springboot自动包装的太好.无奈找不到入口 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mapper原创 2020-07-27 10:33:04 · 197 阅读 · 0 评论 -
RabbitMQ设置多线程处理消息
使用@RabbitListener注解指定消费方法,默认情况是单线程监听队列,可以观察当队列有多个任务时消费端每次只消费一个消息,单线程处理消息容易引起消息处理缓慢,消息堆积,不能最大利用硬件资源可以配置mq的容器工厂参数,增加并发处理数量即可实现多线程处理监听队列,实现多线程处理消息。 1、在RabbitmqConfig.java中添加容器工厂配置: @Bean("custom...原创 2019-01-16 19:14:44 · 21053 阅读 · 10 评论 -
客户端负载均衡器 Ribbon 整合Eureka实现远程调用
Ribbon介绍 Ribbon是Netflix公司开源的一个负载均衡的项目(https://github.com/Netflix/ribbon),它是一个基于HTTP、TCP的客户端负载均衡器。 什么是负载均衡?负载均衡是微服务架构中必须使用的技术,通过负载均衡来实现系统的高可用、集群扩容等功能。负载均衡可通过硬件设备及软件来实现,硬件比如:F5、Array等,软件比如:Nginx...原创 2018-12-24 09:25:08 · 807 阅读 · 0 评论 -
将服务注册到Eureka Server中
父工程导入依赖(版本控制) <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> ...原创 2018-12-21 15:02:57 · 328 阅读 · 0 评论 -
EurekaServer 集群环境搭建
Eureka Server 高可用环境需要部署两个Eureka server,它们互相向对方注册。如果在本机启动两个Eureka需要注意两个Eureka Server的端口要设置不一样,这里我们部署一个Eureka Server工程,将端口可配置,制作两个Eureka Server启动脚本,启动不同的端口,如下图: 1、在实际使用时Eureka Server至少部署两台服务器,实现高可...原创 2018-12-21 14:29:05 · 1149 阅读 · 0 评论 -
Eureka注册中心
Eureka介绍Spring Cloud Eureka 是对Netflix公司的Eureka的二次封装,它实现了服务治理的功能,Spring Cloud Eureka提供服务端与客户端,服务端即是Eureka服务注册中心,客户端完成微服务向Eureka服务的注册与发现。服务端和客户端均采用Java语言编写。下图显示了Eureka Server与Eureka Client的关系: ...原创 2018-12-21 11:25:10 · 178 阅读 · 0 评论 -
rabbitmq 工作模式 一
学习工作模式前,先看一下rabbitmq 给的helloworld案例 这是传统的一对一,,,, 也就是一台机器生产,一台机器接收.... 为了更好的了解代码....我这里演示的话用底层的代码来演示....不整合框架了<dependency> <groupId>com.rabbitmq</groupId> ...原创 2018-11-28 19:58:00 · 405 阅读 · 0 评论 -
下载rabbitmq
rabbymq 是由Erlang语言开发,Erlang语言用于并发及分布式系统的开发,在电信领域应用广泛,OTP(OpenTelecom Platform)作为Erlang语言的一部分,包含了很多基于Erlang开发的中间件及工具库,安装RabbitMQ需要安装Erlang/OTP, 需要注意版本,存在兼容性问题 1.erlang环境下载 erlang_20.3版本下载...原创 2018-11-28 09:56:21 · 241 阅读 · 1 评论 -
RabbitMQ 工作模式二
之前写了WORKQUEUES 跟 Publish/Subscribe 俩种模式 ,RabbitMQ 工作模式一Routing 工作模式 特点 每个消费者监听自己的队列,并且设置routingkey 生产者将消息发给交换机,由交换机根据routingkey来转发消息到指定的队列说白了,就是在publish/subscribe 工作模式的基础上...原创 2018-11-29 16:32:18 · 169 阅读 · 0 评论 -
Freemark 基于模板字符串生成静态文件
public void fun01() throws IOException, TemplateException {// 创建配置类 Configuration configuration = new Configuration(Configuration.getVersion());// 加载模板文件 //模板内容,这里测试...原创 2018-11-26 16:02:52 · 211 阅读 · 0 评论 -
springboot 异常处理-自定义异常及拦截异常
一般解决异常的思路如下 这里我就主要讲讲自定义异常的拦截 为什么要抛自定义异常?1.service方法在执行过程出现异常在哪捕获?在service中需要都加try/catch,如果在controller也需要添加try/catch,代码冗余严重且不易维护。2.在统一异常处理类中去捕获异常,无需controller捕获异常,向用户返回统一规范的响应信息3.将...原创 2018-11-22 19:59:41 · 2183 阅读 · 0 评论 -
SpringBoot整合Redis
整合前需要自己下载redis 因为整合过程比较简单,所以我这里不说太多 1.导入redis 起步依赖 <!-- 配置使用redis启动器 --> <dependency> <groupId>org.springframework.boot</groupId> ...原创 2018-10-29 18:30:02 · 113 阅读 · 0 评论 -
springMvc自定义拦截器
其实最初我是不想这篇文章的,因为我个人感觉拦截器没什么用,如果是需要权限拦截的话,完成可以使用现成的权限框架,比如shiro,不是因为我懒,因为我们自己去写的话肯定会有一堆问题,没那个必要,但是考虑到以后可能会自己写些拦截器这方面的东西,还是写一下巩固一下印象把....创建一个拦截器import org.slf4j.Logger;import org.slf4j.LoggerFa原创 2018-01-10 20:51:37 · 171 阅读 · 0 评论 -
声明式服务调用Feign
Feign介绍Feign是Netflix公司开源的轻量级rest客户端,使用Feign可以非常方便的实现Http 客户端。Spring Cloud引入.Feign并且集成了Ribbon实现客户端负载均衡调用。 Feign 整合测试1、在客户端添加依赖,所需依赖如下 <dependency> <groupId>org...原创 2018-12-24 11:50:26 · 386 阅读 · 0 评论 -
断点续传解决方案
通常视频文件都比较大,所以对于媒资系统上传文件的需求要满足大文件的上传要求。http协议本身对上传文件大小没有限制,但是客户的网络环境质量、电脑硬件环境等参差不齐,如果一个大文件快上传完了网断了,电断了没有上传完成,需要客户重新上传,这是致命的,所以对于大文件上传的要求最基本的是断点续传。断点续传断点续传指的是在下载或上传时,将下载或上传任务(一个文件或一个压缩包)人为的划分为几个部分...转载 2019-01-15 10:28:38 · 2977 阅读 · 1 评论 -
Kafka Leader Election
Zookeeper 节点类型节点有两个维度,一个是永久的还是临时的,另一个是否有序。组合成的四种类型如下:1:PERSISTENT // 持久化节点2:PERSISTENT_SEQUENTIAL // 持久化排序节点3:EPHEMERAL /...转载 2019-06-27 18:36:55 · 328 阅读 · 0 评论 -
Kafka_入门
介绍百度百科Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并...转载 2019-06-24 11:08:18 · 149 阅读 · 0 评论 -
Kafka数据复制与Failover
failover 又称故障切换,指系统中其中一项设备或服务失效而无法运作时,另一项设备或服务即可自动接手原失效系统所执行的工作。分布式架构一致性方案:Master-slave:Ø 同步复制可保证强一致性但会影响可用性Ø 异步复制可提供高可用性但会降低一致性WNRØ 主要用于去中心化(P2P)的分布式系统中。DynamoDB与Cassandra即采用...转载 2019-06-25 14:44:44 · 332 阅读 · 0 评论 -
python_django_customTemplate
Custom template tags and filtersDjango’s template language comes with a wide variety ofbuilt-in tags and filtersdesigned to address the presentation logic needs of your application. Nevertheless, ...转载 2019-06-17 15:42:25 · 177 阅读 · 0 评论 -
python_django_Pagination
分页查询当数据量过大时,可能会导致各种各样的问题发生,例如:服务器资源被耗尽,因数据传输量过大而使处理超时,等等。最终都会导致查询无法完成。解决这个问题的一个策略就是“分页查询”,也就是说不要一次性查询所有的数据,每次只查询一“页“的数据。这样分批次地进行处理,可以呈现出很好的用户体验,对服务器资源的消耗也不大。打一个比方,有很多很多人要过河,而只有一条船摆渡。若让所有人都上船,肯定会导致...转载 2019-06-13 19:48:26 · 380 阅读 · 0 评论 -
Python_Django_入门
Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。Django是一个开放源代码的Web应用框架,由Python写成。Django遵守BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 。Django采用了MVC的软件设计模式,即模型M,视图V和控制器C。轻量级框架...原创 2019-06-13 16:05:40 · 266 阅读 · 0 评论 -
分布式事务项目实战
网上找了个小项目,然后觉得收获很大,有必要写出来分享hhh自动选课需求1.支付成功即完成订单,订单完成之后系统需自动添加选课。2.下图是微信支付、学成在线订单服务、学成在线学习服务交互图:1、用户支付完成,微信支付系统会主动通知学成在线支付结果,学成在线也可主动请求微信支付查询订单的支付结果。最终得到支付结果后将订单支付结果保存到订单数据库中。2、订单支付完成...原创 2019-04-12 15:57:15 · 707 阅读 · 0 评论 -
spring cloud 微服务调用微服务未认证解决方案(Feign)
响应异常:{"error":"unauthorized","error_description":"Full authentication is required to access thisresource"}当实现了用户携带身份令牌访问微服务之后,微服务直接的访问调用就会抛出未授权的异常,,解决方案 服务直接调用时携带令牌Feign 拦截器添加依...原创 2019-04-09 08:48:46 · 4161 阅读 · 0 评论 -
服务网关zuul
微服务网关在微服务环境下,不同的服务有其不同的网络地址,若让客户端直接与各个微服务通信,客户端会多次请求不同微服务,存在跨域请求,处理相对复杂。此时我们就需要使用微服务网关。微服务网关介于服务端与客户端的中间层,所有外部服务请求都会先经过微服务网关,客户只能跟微服务网关进行交互,无需调用特定微服务接口,使得开发得到简化。服务网关是在微服务前边设置一道屏障,请求先到服务网关,网关会对请求进行过虑...原创 2019-04-02 18:55:08 · 277 阅读 · 0 评论 -
分布式事务
1.分布式系统部署在不同网关节点通过网络互相协助工作的系统充值业务_用户在充值系统向自己的账户充钱,在积分系统中自己积分相应的增加。充值系统和积分系统是两个不同的系统,一次充值加积分的业务就需要这两个系统协同工作来完成。分布式系统CAP定理cap定理是分布式系统的起点:一致性(Consistency)服务A、B、C三个结点都存储了用户数据, 三个结点的数据需要保持同一时...原创 2019-04-11 11:33:50 · 129 阅读 · 0 评论 -
BCryptPasswordEncoder 加密
Spring Security中的BCryptPasswordEncoder方法采用SHA-256 +随机盐+密钥对密码进行加密。SHA系列是Hash算法,不是加密算法,使用加密算法意味着可以解密(这个与编码/解码一样),但是采用Hash处理,其过程是不可逆的。传统的MD5加密传统的md5 ,虽然是不可逆算法,但是还是有很大的方法获取原密码虽然方法并不可靠(超大容量,存储md5密文...原创 2019-03-19 10:28:35 · 7227 阅读 · 0 评论 -
springMvc接收/响应json数据
json 数据介绍: JSON数据的数据的格式比较简单,解析比较简单,应用比较多。特别是:手机客户端使用JSON数据交互比较多。@RequestBody注解用于读取http请求的内容(JSON字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json、xml等格式的数据并绑定到controller方法的参数上。 @R原创 2018-01-10 19:25:37 · 1139 阅读 · 0 评论 -
myBatis虚拟路径文件上传
1.配置虚拟路径idea配置方案选择一个要配置的虚拟路径的目录 ,最后保存一下就可以了,,,,,,,下载jquery插件 http://jakarta.apache.org/commons/fileupload/ http://jakarta.apache.org/commons/io/ 下载完原创 2018-01-10 16:30:01 · 535 阅读 · 0 评论 -
使用struts2进行文件上传
1.写一个简单的jsp页面 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/h原创 2017-11-15 17:09:08 · 139 阅读 · 0 评论 -
Struts2自定义拦截器
拦截器简介 在开发中,我们经常需要多次解决一个相同的问题,从而造成代码重复,臃肿,可读性不高等问题.也可以使用拦截器做登陆校验,由此可见,拦截器的常用之处,那么问题来了,怎么在struts2框架里面自定义拦截器呢?1.拦截器跟过滤器的相同点,不同点 需要注意的是:过滤器只能过滤servlet,jsp 等 而拦截器只能拦截 action,它们之间是有区别的以上是过滤器跟拦截器的不同之处,那么我原创 2017-11-14 22:18:58 · 238 阅读 · 0 评论 -
spring注解入门之IOC,DI
注解开发1. IOC注解入门1.导入jar包(还需要导入核心jar包及日志jar包) spring-aop-xxx.jar2.导入xml约束,导入下面的约束即可<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http原创 2017-11-19 16:55:37 · 282 阅读 · 0 评论 -
Spring基础入门AOP
AOP简介1.什么是AOP ? 它有什么用? AOP(Aspect Oriented Programming,面向切面编程), 可以说是OOP(Object Oriented Programing,面向对象编程)的补充和完善。在不改动源码的前提下,对原有的功能进行扩展 | 升级2.AOP的底层原理是什么? 在JAVA的世界里,能够不改代码而又能进行扩展代码的,不多,常见的有装饰者模式,代理原创 2017-11-19 13:09:55 · 261 阅读 · 0 评论 -
spring入门基础
spring介绍1.spring是一个服务层的框架,它的优点很多,主要核心是 (IOC,AOP)无缝对接框架,提供对AOP的支持,和以前的Struts Hibenrate 组成了一套ssh框架,ssh框架也算的上曾经的霸主,如今 spring 和springMvc MyBatis组成了ssm框架,ssh已经渐渐被代替IOC介绍IOC 的全称是 Inversion Of Control 翻译过来是控原创 2017-11-17 22:06:50 · 147 阅读 · 0 评论 -
spring注解测试
spring测试主要简化的是我们的测试代码。准备工作 注解测试1.导入测试jar包, spring-test-xxx.jar 2.导入注解需要的jar包 spring-aop-xxx.jar 3.导入spring需要的jar包 4个基本jar包,加上日志包2.编写xml配置文件 导入约束<?xml version="1.0" encoding="UTF-8"?><beans xml原创 2017-11-17 17:55:02 · 737 阅读 · 0 评论 -
struts2默认ognl,值栈
1.OGNL概述 1.1 什么是OGNL? OGNL(object graph Navigation language) 对象图形导航语言,它是一款简单便捷的语言,通过它的表达式,可以轻松的存取对象的属性和调用对象的方法,遍历整个对象的结构图(说白了就是可以用’对象.属性’获取值)1.2 它是struts2开发的吗? OGNL是一个开源项目,并不是struts2开发的,struts2只是使原创 2017-11-12 22:03:58 · 249 阅读 · 0 评论 -
struts2基础加强
csdn会出现图片丢失的情况,简直了有木有,下次还是不上传图片了上篇文章我们讲述了struts2的基本用法,本章我们来讲讲action的三种配置方法,如何请求转发,重定向,接收参数等action三种配置方法方法一<!-- 方法一 --> <!-- 优点,阅读性强,缺点 代码臃肿,每个请求都需要配置一个action --> <package name="action" extend原创 2017-11-11 22:23:07 · 168 阅读 · 0 评论 -
struts2入门基础
Struts2介绍 1.1 Struts2 是基于MVC设计模式的web层框架,本质上相当于servlet1.2 Struts2 主要工作 接收参数 调用业务 分发转向2.1 Struts2入门 :下载地址: http://struts.apache.org/download.cgi 2.2 导入jar包 :进入lib后,里面的jar包很多很多原创 2017-11-11 17:15:26 · 175 阅读 · 0 评论 -
hibernate_三种查询方式
1.hibernate查询五种查询方式 :oid检索 : 根据id查询 session.get ,session.load对象导航检索 (特点) 使用对象查询,session.get(class,id);qbc检索 Qbc(query by criteria) 对象条件查询(更加面向对象)hql检索 Hql(hibernate query language),语法与原创 2017-11-10 21:34:50 · 346 阅读 · 0 评论 -
hibernate_商城关系表的建立
使用hibernate建立表1.建立表前,我们需要确定表的列,以及需要建立的表.1.1 需要建立的表 用户表 商品表 分类表 订单表 1.2 寻找表与表的关系 用户 -- 订单 --- 商品 -- 分类 1.3 表分析用户 -- 订单 一个用户可以有多个订单,一个订单只能有多个用户,如果一个订单能被多个用户拥有,那么就乱套了商品 -- 分原创 2017-11-09 20:02:26 · 208 阅读 · 0 评论 -
struts2点击切换中英文
1.首先,我们用ognl编写一个jsp简单页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!-- 需要导入ognl,struts2自带的,不用导包 --><%@ taglib uri="/struts-tags" prefix="s" %><!DO原创 2017-11-15 17:53:37 · 268 阅读 · 0 评论