BlankCat

BlankCat


  • Home

  • Archives

  • Categories

  • Tags

  • About

  • Search
close

Spring Security配置cors跨域访问

Posted on 2016-12-29   |   In spring

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/cors.html

文档看似很清晰的描述了如何在Spring 4.2之后启用cors跨域访问,网上搜索介绍这样的帖子也不少。也提到了说什么如果用了Spring Security的话要采用filter的方式来配置。下面这段话就是官方文档

In order to support CORS with filter-based security frameworks like Spring Security, or with other libraries that do not support natively CORS, Spring Framework also provides a CorsFilter. Instead of using @CrossOrigin or WebMvcConfigurer#addCorsMappings(CorsRegistry), you need to register a custom filter defined like bellow:

Read more »

JDK8-Lambda表达式初步与函数式接口

Posted on 2016-12-19   |   In jdk8

Lambda表达式初步与函数式接口

“Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。

Read more »

并发编程7-取消与关闭

Posted on 2016-12-14   |   In 并发

取消与关闭

任务和线程的启动很容易。在大多数时候,我们都会让它们运行直到结束,或者让它们自行停止。然而,有时候我们希望提前结束任务或线程,或许是因为用户取消了操作,或者应用程序需要被快速关闭。

任务取消

在Java中没有一种安全的抢占式方法来停止线程,因此也就没有安全的抢占式方法来停止任务。只有一些协作式的机制,使请求取消的任务和代码都遵循一种协商好的协议。

1
2
3
4
5
6
7
private volatile boolean cancelled;
public void run() {
while(!cancelled){
// do something
}
}
Read more »

2016-12-13-life

Posted on 2016-12-13   |   In life

I am BlankCat,welcome to my blog;

##生活感悟

无论遇见什么事,切记别发火,地铁上一个人和一个老人抢座,那个男的非逼自己的老婆坐在自己旁边,挤那个老人,没有风度,切记不要那样。

####从刘老师身上学到的

学会慢,说话慢慢说,学会安静,就学学刘老师是怎么处理生活和工作。

####对技术的感悟

  • 对于技术层面,要高度模仿别人的思维,和别人的工作方式

  • 把复杂的工作简单化

  • 做一件事,要清楚自己的目标,我要啥,我有啥,我该怎么做

####今日总结(2016-12-13)

  • zookeeper命令的操作(上午)

  • 看电子书《angular》基础知识

(下午)

  • 写了一篇博客,画一个界面

####明日memo

  • 坚持吃早餐

  • 梳理业务需求,完成近期的开发工作

  • 坚持画一个界面

  • 坚持学博客

并发编程6-任务执行

Posted on 2016-12-13   |   In 并发

任务执行

任务通常是一些抽象的且离散的工作单元。通过把应用程序的工作分解到多个任务中,可以简化程序的组织结构

在线程中执行任务

在理想情况下,各个任务之间是相互独立的:任务并不依赖其他任务的状态、结果或边界效应。独立性有助于实现并发,例如向web服务器提交一个请求,不会影响正在处理的其他请求。

为任务创建线程

如果为每一个任务都创建一个线程,那么资源开销是极大的,无限制的创建线程存在一些缺陷:

  • 线程生命周期的开销非常高
  • 资源消耗
  • 稳定性
    Read more »

集成JWT到Spring Boot项目

Posted on 2016-12-08   |   In spring

这篇文章我们来讲一下如何集成JWT到Spring Boot项目中来完成接口的权限验证。

JWT

JWT是一种用于双方之间传递安全信息的简洁的、URL安全的表述性声明规范。JWT作为一个开放的标准( RFC 7519 ),定义了一种简洁的,自包含的方法用于通信双方之间以Json对象的形式安全的传递信息。因为数字签名的存在,这些信息是可信的,JWT可以使用HMAC算法或者是RSA的公私秘钥对进行签名。
如何使用JWT?

在身份鉴定的实现中,传统方法是在服务端存储一个session,给客户端返回一个cookie,而使用JWT之后,当用户使用它的认证信息登陆系统之后,会返回给用户一个JWT,用户只需要本地保存该token(通常使用local storage,也可以使用cookie)即可。

Read more »

并发编程5-基础构建模块

Posted on 2016-12-08   |   In 并发

基础构建模块

第4章介绍了构造线程安全类时采用的一些技术,例如将线程安全性委托给现有的线程安全类。委托是创建线程安全类的一个最有效的策略:只需让现有的线程安全类管理所有的状态即可。
下面将介绍一些JDK提供的工具类。

同步容器类

同步容器类包括Vector和Hashtable。这些类实现线程安全的方式是:将它们的状态封装起来,并对每个共有方法都进行同步,使得每次只有一个线程能访问容器的状态。

同步容器类的问题

同步容器类都是线程安全的,但在某些情况下需要加锁来保护复合操作。例如2个线程都在进行「若没有,则添加」的运算,如果没有对这个复合操作加锁,就可能会出问题。

Read more »

并发编程4-对象的组合

Posted on 2016-12-06   |   In 并发

对象的组合

本章将介绍一些组合模式,这些模式能够使一个类更容易成为线程安全的,并且在维护这些类时不会无意中破坏类的安全性保证。

设计线程安全的类

在设计线程安全类的过程中,需要包含以下三个基本要素:

  • 找出构成对象状态的所以变量
  • 找出约束状态变量的不变性条件
  • 建立对象状态的并发访问管理策略

收集同步需求

要确保的类的线程安全性,就需要确保它的不变性条件不会在并发访问的情况下被破坏,这就需要对其状态进行推断。

Read more »

并发编程3-对象的共享

Posted on 2016-12-05   |   In 并发

对象的共享

要编写正确的并发程序,管关键问题在于:在访问共享的可变状态时需要进行正确的管理。本章介绍如何共享和发布对象,从而使它们能够安全地由多个线程同时访问。

可见性

「可见性」是指当一条线程修改了这个变量的值,新值对于其他线程来说是可以立即得知的。而普通变量做不到这一点,普通变量的值在线程间传递均需要通过主内存来完成,例如线程A修改一个普通变量的值,然后向主内存进行回写,另外一条线程B在线程A回写完成了之后再从主内存进行读取操作,新变量值才会对线程B可见。

Read more »

并发编程2-线程安全性

Posted on 2016-12-02   |   In 并发

线程安全性

在构建文件的并发程序时,必须正确地使用线程和锁,但这些终归只是一些机制。要编写线程安全的代码,其核心在于要对状态访问操作进行管理,特别是对共享的和可变的状态的访问。一个对象是否是线程安全的,取决于它是否被多个线程同事访问。当多个线程访问某个状态变量并且其中有一个线程执行写入操作时,必须采用同步机制来协同这些线程对变量的访问。Java中的主要同步机制是关键字synchronized,它提供了一种独占的枷锁方式,但「同步」这个术语还包括volatile类型的变量,显式锁以及原子变量。
如果当多个线程访问同一个可变的状态变量时没有使用合适的同步,那么程序就会初夏你错误。有三种方式可以修复这个问题:

  • 不在线程之间共享该状态变量
  • 将状态变量改为不可变的变量
  • 在访问状态变量时使用同步

什么是线程安全性

当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的。在线程安全类中封装了必要的同步机制,因此客户端无须进一步采取同步措施。
无状态对象一定是线程安全的。(没有共享数据)

Read more »
1…345…9
BlankCat

BlankCat

三岁学说话,一生学闭嘴!

84 posts
25 categories
46 tags
GitHub Weibo 开发导航 个人主页
© 2017 BlankCat
Powered by Hexo
Theme - NexT.Mist