java
kevin_sakura
0->1
展开
-
tomcat虚拟路径
昨天在为毕设加一个头像小功能,因为涉及到图片的上传、保存与读取问题,而用户上传的图片又不可能保存在工程文件夹里,所以就由此牵出了使用不同开发工具配置tomcat虚拟路径的问题。为什么要配置虚拟路径 这是我工程目录:D:\IJWorkspace\MavenStudy 这是我存放头像文件的目录:F:\touxiang在代码里写<img src="F:\touxiang\*.jpg"&g...原创 2019-03-06 10:10:52 · 409 阅读 · 0 评论 -
BCryptPasswordEncoder加密、验证策略
通过查看源码,了解PasswordEncoder加密以及验证密码(数据库存储的加密密码与用户输入的密码比较)的流程、方式。加密:BCryptPasswordEncoder类有三个构造方法,影响了盐的生成,如果在生成BCryptPasswordEncoder对象的时候没有指定任何参数(或只指定了一个参数),BCrypt会提供默认值,最终都会调用BCrypt.gensalt(streng...原创 2019-05-15 14:50:01 · 35439 阅读 · 2 评论 -
Filter、Interceptor和Aspect
Filter:遵从J2EE规范,通过Request和Response获取请求体和返回体信息。主要方法有init()、destroy()和doFilter()。主要代码逻辑都写在doFilter()里。不能获取到处理URL请求的方法的信息。Interceptor:是Spring框架提供支持的。相比于Filter,它能获取处理URL请求的方法信息。如果被Interceptor...原创 2019-05-11 10:45:29 · 119 阅读 · 0 评论 -
SpringSecurity学习之路4-利用多线程提高Restful服务性能
知识点一:使用Runnerable异步处理Restful服务知识点二:使用DeferredRestful异步处理Restful服务同步处理逻辑如下:假如要处理创建订单的请求,如上图所示,采用同步方式时,吞吐率无疑很低。异步处理逻辑如下:通过主线程调用副(子)线程的方式,能够提高系统的吞吐率。这种方式很直观,也很简单。实现代码如下:执行后控制台输出结果通过控...原创 2019-05-11 17:34:31 · 571 阅读 · 0 评论 -
SpringSecurity学习之路8-重构用户登录
目的:在没有提供自定义登录页面的情况下,系统提供默认的登录页面。①:application.properties 里写明 默认的登录页面在以下路径中新建三个类:先看SecurityProperties类,代码如下:它是一个properties的配置类,后面主要是通过它来调用值。prefix的值是根据application.properties里定义的名字来的,是一个前...原创 2019-05-30 18:02:43 · 448 阅读 · 2 评论 -
SpringSecurity学习之路9-实现验证码功能
步骤:定义一个封装验证码信息的类,ImageCode。写一个生成验证码的接口,利用随机数生成验证码,并将生成的验证码信息存储进session。springsecurity是由一系列filter接口来实现的,自定义一个filter继承OncePerRequestFilter,实现校验验证码的逻辑功能。将这个自定义的filter添加进入springsecurity链中。Ima...原创 2019-06-10 10:17:54 · 198 阅读 · 0 评论 -
SpringSecurity学习之路10-图片验证码与手机验证码的重构
为了达到可重用、可配置的目的,使用到了自定义properties类,可以读取在application.properties中的配置信息。这些配置的优先级是:请求参数配置 > application.properties配置 > 自定义properties类配置。自定义properties的方法如下:省略get/set方法注意:以prefix的imooc.securit...原创 2019-06-10 11:51:48 · 283 阅读 · 0 评论 -
SpringSecurity学习之路11-实现记住我的功能
目的:用户勾选记住我之后,一段时间内免登陆。{都是接着之前的代码,一点点加、重构代码的,不会在这里详细叙述之前提到的东西,以后的篇幅也是这样}下图是关于SpringSecurity的原理介绍:当登录成功之后,RememberService会将Token存储进浏览器Cookie,再将它写入进数据库里。当再次进行登录操作时,便会拿着浏览器中的token去数据库中查找,查找成功之后便会调...原创 2019-06-10 18:07:03 · 213 阅读 · 0 评论 -
SpringSecurity学习之路12-完成短信验证码的开发
目的:在验证码的重构完成之后,已经实现了发送验证码的功能,接下来要做的就是将短信验证码登录的逻辑添加就如程序里。使用户可以以账号、密码或手机号加验证码的方式登录。下图是短信验证码的实现逻辑:当用户以用户名+密码的形式登录时,经过UsernamepasswordAuthenticationFilter,将用户信息封装为一个token。然后AuthenticationManager是会根据...原创 2019-06-16 15:02:04 · 615 阅读 · 0 评论 -
dubbo初识
为什么用dubbo 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 **1,远程通讯:** 提供对多种基于长连接的NIO(java non-blocking IO,java非阻塞式IO)框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。 **2,集群容错** 提供基于接...原创 2019-03-04 13:09:04 · 403 阅读 · 0 评论 -
zookeeper初识
ZooKeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。ZooKeeper 是一个典型的分布式数据一致性解决方案,分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。ZooKeeper 一个最常...原创 2019-03-04 14:15:49 · 320 阅读 · 0 评论 -
zookeeper_ZKClient
操作zookeeper原生API过于繁琐。原生API: 不能递归创建:如若不存在“/local”,那么在直接创建"/local/tmp"则会报错。 不能递归删除:如若存在“/local/tmp”,那么在做删除"/local"时就会报错。 watch的监听是一次性的,只能手动将其设置为true才可以。在使用ZKClient在创建节点的时候,如若是递归创建,则不能为节点赋值。非递归创建:...原创 2019-03-04 14:43:14 · 282 阅读 · 0 评论 -
zookeeper原生API操作
/** * Zookeeper 学习 * watcher(事件监听器) * @author Kevin */public class ZookeeperBase { /** * zookeeper地址 */ static final String CONNECT_ADDR = "192.168.73.128:2181,192.168.73.131:...原创 2019-03-04 14:48:27 · 326 阅读 · 0 评论 -
什么时候使用CountDownLatch
正如每个Java文档所描述的那样,CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。在Java并发中,countdownlatch的概念是一个常见的面试题,所以一定要确保你很好的理解了它。在这篇文章中,我将会涉及到在Java并发编 程中跟CountDownLatch相关的以下几点:CountDownLatch是什么?Count...转载 2019-03-04 15:44:58 · 298 阅读 · 0 评论 -
dubbo service、reference配置文件
dubbo 和spring一块使用,service是把已有的service服务发布成dubbo服务,即通过ref引用已存在的service服务(即已存在的spring bean对象)reference是通过引用外部提供的dubbo服务,生成可供使用的service服务的,id属性自定义spring bean标识 供消费客户端服务使用的dubbo服务端和客户端的这两个属性定义没有相关性,通过接口...转载 2019-03-14 13:33:24 · 3154 阅读 · 0 评论 -
zookeeper与dubbo的关系
dubbo建议使用zookeeper作为服务的注册中心。zookeeper的作用zookeeper用来注册服务和进行负载均衡,哪一个服务由哪一个机器来提供必需让调用者知道,简单来说就是ip地址和服务名称的对应关系。当然也可以 通过硬编码的方式把这种对应关系在调用方业务代码中实现,但是如果提供服务的机器挂掉,调用者无法知晓,如果不更改代码,会继续请求挂掉的机器提供服务。zookeeper通过心...原创 2019-03-04 16:43:50 · 358 阅读 · 0 评论 -
Jquery中json的使用
方式一①:在pom.xml中加入依赖: <!-- 映射JSON --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifac...原创 2019-03-12 10:54:00 · 1620 阅读 · 0 评论 -
EqualsBuilder与HashCodeBuilder
两个类都是在import org.apache.commons.lang3.builder包下,可以帮助我们很好的重写equals与hashCode方法。先写个简单的实体类:package kevin.bean;import org.apache.commons.lang3.builder.EqualsBuilder;import org.apache.commons.l...原创 2019-04-04 15:36:54 · 354 阅读 · 2 评论 -
java代码与Restful设计风格
使用okhttp3,代码如下原创 2019-07-15 17:57:23 · 358 阅读 · 0 评论