自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (12)
  • 收藏
  • 关注

原创 Springboot 上传与下载

TDD设计模式一、Test类@RunWith(SpringRunner.class)@SpringBootTestpublic class UserControllerTest { @Autowired private WebApplicationContext wac; private MockMvc mockMvc; @Before public void setup() ...

2018-05-30 12:50:01 627

原创 Redis时间过期处理

目的:业务逻辑为利用usertoken为key在redis中保存,当不操作时间超过20分钟时,清空redis,使得用户重新登录。redis对存储值的过期处理实际上是针对该值的键(key)处理的,即时间的设置也是设置key的有效时间。Expires字典保存了所有键的过期时间,Expires也被称为过期字段。 四种处理策略EXPIRE 将key的生存时间设置为ttl秒PEXPIRE 将key的生...

2018-05-29 15:42:32 4262

原创 SpringClound微服务调用安全

微服务调用安全有两个方面1.客户端调用微服务的安全问题,通过zuul的网关去解决。当是我们想在ueurka内建一个小团体,所以请求头加了token(相当于多加了一道锁子)2.微服务之间的调用的安全问题,通过fegin调用,解决思路是在调用时请求头加上token,让被调用方验证token的有效性所以以上两种安全可以用同一种思路去解决,简化流程,提高安全一、被调用方的过滤器的解决在启动类中添加 @Be...

2018-05-18 20:53:58 890

原创 springboot 异常处理(输入参数验证,加上分组 第二版)

目的:在一个表中,添加或更新不同的字段(一个表中多次插入,要分组进行判断)一、定义分组接口 public interface First { } public interface Second { } 即通过@Validate注解标识要验证的分组;如果要验证两个的话,可以这样@Validated({First.class, Second....

2018-05-18 15:52:00 2004

原创 springboot 异常处理(输入参数验证 第一版)

改进了 输入参数的验证(全局)一、GlobalExceptionHandler类添加@ExceptionHandler(MethodArgumentNotValidException.class) @ResponseBody public ResultVO handlerException1(MethodArgumentNotValidException e) { ...

2018-05-17 22:04:54 913

原创 spring boot的异常处理

目的:异常处理采用的是枚举型的  ExceptionEnum 枚举类  (特点 和别的公司的不太一样)我们通常会把 事务 配置在 Service层,当数据库操作失败时让 Service 层抛出运行时异常,Spring 事物管理器就会进行回滚。如此一来,我们的 Controller 层就不得不进行 try-catch Service 层的异常,否则会返回一些不友好的错误信息到客户端。    @Con...

2018-05-17 21:59:37 546

原创 AOP切面编程 后置通知实现返回值的判空值处理(项目中使用)

目的:因为根据平常的代码在service层根据返回值要做判断空值处理,抛对应的错误信息,得每个方法判断一次,比较麻烦。现在的处理方法是根据放回值类型判断是否list.class,是的话list.size()=0抛对应的错误信息,然后在判断是否int.class等,希望能给大家代理帮助。平常的代码写法if(i==0){ throw new AppcationException(Excepti...

2018-05-10 14:43:54 3280

原创 Spring框架——AOP前置、后置、环绕、异常通知

@Aspect@Componentpublic class LoggingAspect { /** * 在 com.spring.aop.Impl.ArithmeticCalculator 接口的每一个实现类的每一个方法开始之前执行一段代码. */ @Before("execution(* com.spring.aop.Impl.*.*(..))") ...

2018-05-09 17:45:21 1156

原创 关于省,市,区三级联动 思考

目的:分析三级联动,五级联动的实现思路关于省,市,区的三级联动后台的实现有两种方式:1:分n次请求各自取出 省 市 区 的数据;优点:传到前台的数据少。缺点:会导致数据的延迟加载,出现的情况是 省 有数据了,市和区一级还没有数据,导致用户的体验不好;这种方式只有省一级的数据可以提前加载好,市和区一级的数据只用等到选中后才开始请求;2:一次请求获得所有的数据,并且组装成相依的数据结构到前端;优点:前...

2018-05-09 15:42:32 1180 2

原创 springboot 基础(一)

SpringBoot(主流)1.敏捷开发(整合框架),弊端(不方便扩展)2.无需tomcat(java应用程序运行,实际是jar包),内置Tomcat3.减少xml配置(没有xml),采用配置文件properties4.SpringClound+SpingBoot5.注解推荐网站:http://bbs.itmayiedu.com/springboot 和微服务有什么样的关联?目前来说springC...

2018-05-09 12:19:40 221

原创 WireMock

一、介绍1.1 简单介绍WireMock 是基于 HTTP 的模拟器。它具备 HTTP 响应存根、请求验证、代理/拦截、记录和回放功能。当开发人员的开发进度不一致时,可以依赖 WireMock 构建的接口,模拟不同请求与响应,从而避某一模块的开发进度。1.2 下载文件自行下载启动 WireMock 服务的 jar 包。1.3 启动服务在 jar 包所在目录执行如下命令:java -jar wire...

2018-05-30 17:34:18 1869

原创 Callable和DeferredResult

DeferredResult和Callable都是为了异步生成返回值提供基本的支持。简单来说就是一个请求进来,如果你使用了DeferredResult或者Callable,在没有得到返回数据之前,DispatcherServlet和所有Filter就会退出Servlet容器线程,但响应保持打开状态,一旦返回数据有了,这个DispatcherServlet就会被再次调用并且处理,以异步产生的方式,向...

2018-05-30 16:02:49 848 2

原创 Cookie

             Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。硬盘Cookie保存在硬盘里,有一个过期时间,除非...         Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。内存Cookie由...

2018-05-30 15:23:33 602

原创 TDD开发模式

TDD:测试驱动开发(Test-Driven Development)测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD的基本思路就是通过测试来推动整个开发的进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。TDD首先考虑使用需求(对象、功能、过程、...

2018-05-29 11:30:33 8168

原创 Filter Interceptor Aspect区别

1、filter,这是java的过滤器,和框架无关的,是所有过滤组件中最外层的,从粒度来说是最大的。配置方式,有直接实现Filter+@component,@Bean+@configuration(第三方的filter)2、interceptor,spring框架的拦截器配置方式,@configuration+继承WebMvcConfigurationSupport...

2018-05-29 09:51:17 1791 1

原创 ajax中出现两次请求

在项目中发现ajax中出现两次请求,OPTIONS请求和GET请求,得到的数据出错,所以想要去掉OPTIONS请求。ajax请求如下: ajaxRequestGet: function (lastPath, requestParams, successFun) { $.ajax({ headers: { ...

2018-05-28 20:36:30 13055

原创 filter过滤类及其配置

filter过滤类 只能拿到http的请求和响应一、在类的上方添加@Component@Componentpublic class LoginFilter implements Filter {二、自定义配置类,作用和上方的一样,但是下边这种可以定义是否过滤和过滤的url列表        @Bean public FilterRegistrationBean timeFilter() {...

2018-05-28 16:52:32 1500

原创 Hibernate Validator 自定义校验型注解

目的:通过自定义校验型注释 实现@MyConstraint注解(根据数据库查询校验或其他自定义校验)一、bean代码public class User { private String id; @MyConstraint(message = "这是一个测试") @ApiModelProperty(value = "用户名") private String username; ...

2018-05-28 14:46:21 1663

原创 Hibernate Validator 注解详解

2018-05-28 10:59:46 351

原创 @NotEmpty、@NotBlank、@NotNull的区别

@NotEmpty 用在集合类上面 @NotBlank 用在String上面 @NotNull 用在基本类型上只有简单的结果,但是再更具体一点的内容就搜不到了,所以去看了看源码,发现了如下的注释:1. @NotEmpty /*** Asserts that the annotated string, collection, map or array is not {@code n...

2018-05-25 17:28:05 641 1

原创 @JsonView注解

使用接口来声明多个视图package org.byron4j.springMVC4_rest_jackson_jsonview_annotation; public class Profile { public interface PublicView {} public interface FriendsView extends PublicView{} public...

2018-05-25 16:35:07 806

原创 JSONPath 表达式

JSONPath 是参照,xpath表达式来解析xml文档的方式,json数据结构通常是匿名的并且不一定需要有根元素。JSONPaht 用一个抽象的名字$来表示最外层对象。JOSNPath 表达式可以使用.  符号如下:$.store.book[0].title或者使用[] 符号$['store']['book'][0]['title']从输入路径来看。内部或者输出的路径都会转化成-符号。JSON...

2018-05-25 15:19:47 11397

原创 利用ReflectionToStringBuilder打印VO里的属性

有时候我们要在log里把VO里面的一些属性打印出来,一般我们都会去改写类的toString方法,apache的ReflectionToStringBuilder类利用放射机制,能方便的实现类的toString方法,还能通过参数设置toString的样式 Java代码  import org.apache.commons.lang.builder.ReflectionToStringBuild...

2018-05-25 15:10:50 1295

原创 @RequestParam,@RequestBody,@PathVariable等注解区别

@RequestParam 和 @PathVariable 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@RequestParam 是从request里面拿取值,而 @PathVariable 是从一个URI模板里面来填充@RequestParam看下面一段代码:http://localhost:8080/springmvc/hello/101?param1=10&a...

2018-05-25 11:36:19 4503 1

原创 restfull 风格

restfull api交互常用状态码2xx (成功类别) 200 Ok:标准的 HTTP 响应,表示 GET、PUT 或 POST 的处理成功。 201 Created:在创建新实例时,应返回此状态代码。例如,使用 POST 方法创建一个新的实例,应该始终返回 201 状态码。 204 内容不存在:表示请求已被成功处理,但并未返回任何内容。 3xx (重定向类别) 304 未修改:表示客户端...

2018-05-25 10:52:19 2986

原创 使用AOP统一处理Web请求日志

@Aspect@Componentpublic class WebLogAspect {private Logger logger = LoggerFactory.getLogger(getClass());@Pointcut("execution(public * com.itmayiedu.controller..*.*(..))")public void webLog() {}@Before...

2018-05-23 21:07:20 708

原创 springboot整合多数据源

多数据源产生的问题:事物管理在实际项目中,怎么样搭建多数据源 区分数据源举个例子 2个数据源 test001 test0021、分包结构com.baidu.test001 --访问test001数据库daoservicecom.baidu.test002 --访问test002数据库daoService分布式事物的解决方案jta+automatic传统项目 2、使用注解方式com.baidudao...

2018-05-23 21:06:36 434

原创 spring boot idea 启动多个项目

一、配置文件server.port=8082二、可以配置多个启动类

2018-05-23 18:04:31 1389

原创 权限管理之二 shiro

一、shiro 概念shiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证、用户授权。 spring中有spring security (原名Acegi),是一个权限框架,它和spring依赖过于紧密,没有shiro使用简单。shiro不依赖于spring,shiro不仅可以实现 web应用的权限管理,还可以实现c/s系统,分布式系统权限管理,shiro属于轻量框架,越来越多...

2018-05-23 10:26:03 334

原创 权限管理之一 原理

        只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。 权限管理包括用户认证和授权两部分。一、用户认证:     用户认证,用户去访问系统,系统要验证用户身份的合法性。最常用的用户身份验证的方法:1、用户名密码方式、2、指纹打卡机、3、基于证书验证方法。。系统验证用户身份合法,用户方可访问系...

2018-05-23 10:13:43 1616

原创 Spring Security

配置Spring Security@Configurationpublic class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Bean UserDetailsService customUserService() { return new CustomUserService(); ...

2018-05-21 18:07:33 144

原创 ServletRequest强转HttpServletRequest

代码中常见这样的代码:HttpServletRequest httpRequest = (HttpServletRequest) servletRequestString usertoken = httpRequest.getHeader("usertoken");String url = httpRequest.getRequestURI().substring(httpRequest.getC...

2018-05-21 17:14:25 13340 2

原创 Spring Boot 之servlet、Filter

目的:最近公司的项目中需要用到filter拦截所有请求,看用户是否登录等验证信息,所以把servlet,filter,listener总结一下一、servlet1.启动类中添加 @Bean public ServletRegistrationBean getDemoServlet(){ ServletRegistrationBean registrationBean=new Servlet...

2018-05-17 15:42:32 171

原创 Spring Session

一、Session与Cookie基础由于http协议是无状态的协议,为了能够记住请求的状态,于是引入了Session和Cookie的机制。我们应该有一个很明确的概念,那就是Session是存在于服务器端的,在单体式应用中,他是由tomcat管理的,存在于tomcat的内存中,当我们为了解决分布式场景中的session共享问题时,引入了redis,其共享内存,以及支持key自动过期的特性,非常契合s...

2018-05-10 21:59:17 205

原创 SpringBoot 多线程

线程池:线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程但线程...

2018-05-10 20:34:41 1755

原创 git .gitignore文件

忽略文件的原则是:忽略操作系统自动生成的文件,比如缩略图等;忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。target/!.mvn/wrapper/maven-wrapper.jar### STS ###.apt_g...

2018-05-10 16:44:00 185

原创 React实现java输出流的下载

目的:java端是输出流,前端用的react要实现输出流的下载,其中核心代码是模仿url的点击事件downloader=()=>{ let that =this; let parameter = '?shopID='+that.state.shopID +'&shopName='+that.state.shopName+'&shopTypeNa...

2018-05-10 14:50:38 3025

原创 springboot 基础(二)

web开发一、静态资源访问在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。默认配置Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:/static/public/resources /META-INF/resources举例:我们可以在src/main/resources/目录下创建static,在该位置放置一个图片文件。启动程...

2018-05-09 22:14:16 118

原创 报错:idea clone、 import项目所有注解全部报错

目的:从现有的git上边clone项目,前提是开发工具,开发环境都一样错误类型:所有的注解全部报错   是选择了Create from existing source一路Next下去,Maven项目导入成功“Import from external model”选项允许你导入一个已经存在的固定model的项目。例如Eclipse和Maven等。IDEA会根据你选择的model自动转换项目文件,换句...

2018-05-09 17:10:24 12516

原创 @Mappe与@MapperScan关系

现在项目中的配置public interface DemoMapper{ int deleteByPrimaryKey(Integer id);} @MapperScan("com.mapper")public class DlxRrsApplication {} 原因:     我们定义DemoMapper类,但是并没有在该类上定义类似@Service或者@Mapper之类的注解...

2018-05-09 11:45:27 15924

react-comment评论管理 -- 代码

react-comment评论管理 -- 代码

2022-01-26

springmvc框架基础知识学习笔记.docx

springmvc框架基础知识学习笔记

2019-07-12

2019史上最全Java面试大全.docx

2019史上最全Java面试大全

2019-07-12

大数据技术之Spark.docx

很好的很详细的讲解大数据的相关知识,是一个很好的学校的课件和大家分享

2019-06-28

大数据技术之Kafka.doc

很好的很详细的讲解大数据的相关知识,是一个很好的学校的课件和大家分享

2019-06-28

大数据技术之HBase.doc

很好的很详细的讲解大数据的相关知识,是一个很好的学校的课件和大家分享

2019-06-28

大数据技术之Flume.docx

很好的很详细的讲解大数据的相关知识,是一个很好的学校的课件和大家分享

2019-06-28

容器部署解决方案Docker

容器部署解决方案Docker容器部署解决方案Docker容器部署解决方案Docker容器部署解决方案Docker容器部署解决方案Docker容器部署解决方案Docker容器部署解决方案Docker容器部署解决方案Docker

2018-04-09

java编程规范(含心得笔记及其解释)

java编程规范(含心得笔记及其解释)java编程规范(含心得笔记及其解释)java编程规范(含心得笔记及其解释)java编程规范(含心得笔记及其解释)

2018-04-09

velocity模板引擎

velocity与freemaker、jstl并称为java web开发三大标签技术,一、定义变量二、遍历数组三、遍历HashTable四、判断是否为空五、数值、日期格式化六、国际化七、内建对象八、include、parse实现布局模块化

2018-04-09

空空如也

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

TA关注的人

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