自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

l1394049664的博客

技术、生活、观点、个人成长。 主要关注互联网电商广告业务、数据分析方法论、大数据分析平台建设;java web、分布式、大数据处理以及可视化等相关技术。

  • 博客(16)
  • 收藏
  • 关注

原创 CommandLineRunner和ApplicationRunner接口

在开发中可能会有这样的情景。需要在容器启动的时候执行一些内容。比如读取配置文件,数据库连接之类的。SpringBoot给我们提供了两个接口来帮助我们实现这种需求。这两个接口分别为CommandLineRunner和ApplicationRunner。他们的执行时机为容器启动完成的时候。这两个接口中有一个run方法,我们只需要实现这个方法即可。这两个接口的不同之处在于:ApplicationRunn...

2018-11-13 23:35:42 586

原创 获取用户请求的IP

在为服务平台设计IP白名单或者黑名单的时候,不能通过request.getRemoteAddr()获取IP地址,因为用户可能通过代理服务器来访问,因此需求对于需要获取用户的IP,需要对其进行特殊处理 public class IPUtils { private static Logger logger = LoggerFactory.getLogger(IPUtils.clas...

2018-11-13 22:04:06 1642 1

原创 借助ApplicationContextAware接口获取spring容器的工具类

@Componentpublic class SpringUtil implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationCont...

2018-11-13 22:01:04 710

原创 自定义注解、lock、aop实现注解锁

1、自定义的锁注解@Target({ElementType.PARAMETER, ElementType.METHOD})    @Retention(RetentionPolicy.RUNTIME)    @Documented    public  @interface Servicelock {      String description()  default "";}...

2018-11-13 21:59:22 3163 1

原创 springboot2配置swagger

 @Configuration@EnableSwagger2public class Swagger2 {    @Bean    public Docket createRestApi() {        return new Docket(DocumentationType.SWAGGER_2)                .apiInfo(apiInfo())   ...

2018-11-13 21:56:09 299

原创 Redisson 实现分布式锁

初始化redission链接/**在初始化数据时候,最好不要使用static{} 即静态块。因为在多核机器的情况下读取配置文件,会抛出java.lang.NoClassDefFoundError: Could not initialize class XXX。所以最好还是使用init的方式,在启动程序的时候手动执行下。 */import org.redisson.Redisson;...

2018-11-13 21:53:23 890

原创 aop切面记录请求日志

 @Aspect@Componentpublic class WebLogAspect {    private static final Logger logger = LoggerFactory.getLogger(WebLogAspect.class);    @Pointcut("execution(public * com.ls.demo.controller.*.*(...

2018-11-13 21:46:35 575

原创 Mysql中的存储过程简介

1、什么是存储过程简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法;ps:存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的,且功能比触发器更加强大,触发器是某件事触发后自动调用;2、存储有哪些特性有输入输出参数,可以声明变量,有if/else, case,while等控制语句,通过编写存储过程,可以实现复杂的逻辑功...

2018-11-11 21:13:19 1740

原创 定时推送后台数据到前台websocket和sse实现

前言:本文的实现环境基于springboot21、websocket的实现前端页面:<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8" />    <title></title></head&

2018-11-11 21:04:22 4257

原创 websocket与HTTP long poll、ajax轮询简述

一、WebSocket是HTML5出的东西(协议),也可以说HTTP协议没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)。首先HTTP有1.1和1.0之说,也就是所谓的keep-alive,把多个HTTP请求合并为一个,但是Websocket其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范而已,也就是说它是HTTP协议上的一种补充。两者有交集,但是并不...

2018-11-11 20:59:26 728

原创 优化http报文传输的方案

目录1、http报文压缩2、分块传输3、获取部分内容的范围请求1、http报文压缩http报文可以采取压缩来提高传输的效率,可以在请求的头部字段Accept-Encoding中来说明客户端可以接受的压缩格式,如Accept-Encoding: gzip, deflate 常用的内容编码有以下几种。gzip(GNU zip)compress(UNIX 系统的标准压缩)d...

2018-11-10 09:54:17 1547 1

原创 常用的HTTP状态码详解

目录状态码的类别2XX 成功200 OK204 No Content206 Partial Content3XX 重定向301 Moved Permanently302 Found303 See Other304 Not Modified307 Temporary Redirect4XX 客户端错误400 Bad Request401 Una...

2018-11-10 09:52:07 941

原创 session详解

简述session机制。session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。 当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识------------称为session id,如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这...

2018-11-09 23:45:36 649

原创 http请求和响应

目录1、HTTP请求报文格式1)、GET2)、POST2、HTTP响应报文格式3、HTTP请求方法说明4、请求头部5、响应头部6、响应的状态码7、HTTP请求GET和POST的区别8、http短链接和长连接的区别1、HTTP请求报文格式HTTP请求报文主要由请求行、请求头部、空行、请求正文四部分组成(可选部分,比如GET请求就没有请求正文),其中空行...

2018-11-09 23:41:47 310

原创 cookie

存储在用户本地终端的数据,http请求自动发送,跨域除外用途:客户端记录用户信息特点:存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存里的cookie,不同的浏览器有不同的处理方式。属性name:cookie名称value:cookie值domain:可以访问cookie的域名,某一级域名可以访问上一级级域名的cookieexpires/Ma...

2018-11-09 23:31:54 263

原创 乐观锁和悲观锁

1、悲观锁(Pessimistic Lock)每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。2、乐观锁(Optimistic Lock) 每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期...

2018-11-09 23:29:02 177

空空如也

空空如也

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

TA关注的人

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