- 博客(25)
- 收藏
- 关注
原创 补充知识
1.通过认证后,Spring Security创建Authentication(可包含了用户的详细信息),并存储到SecurityContextHolder中。当前认证用户被存储到SecurityContextHolder中,这个类提供了静态方法SecurityContextHolder.getContext().getAuthentication()就可以获得当前用户对象.2.修改密码 InM...
2018-04-08 21:50:17
201
原创 安全通道以及防止跨站请求伪造
一.HTTP提交是一个风险极大的事,所以用HTTPS加密运输可以保护用户信息的安全。在configre的HttpSecurity对象提供了一个方法,requiresChannel()方法,借助这个方法,可以为各种url提供要求的通道。如果想用https的通道.requiresChannel.antMatchers("/").requiresSecure()如果还是想用http传送.require...
2018-04-08 20:37:59
440
原创 查询用户信息的服务四种方式
按照用户信息放在不同地方,所以可以采用不同的方式经行主要分为:1.基于内存的用户储存直接用configre(AuthenticationManagerBuilid auth)方法经行,withUser和password,role都是可选的;withUser(user)会在内存中寻找user的用户,Password也一样。role是授予其的角色。2.基于数据库的认证3.基于LDAP经行认证(2.3目...
2018-04-08 19:57:58
689
转载 Method Security
支持表达式的注解 Spring Security中定义了四个支持使用表达式的注解,分别是@PreAuthorize、@PostAuthorize、@PreFilter和@PostFilter。其中前两者可以用来在方法调用前或者调用后进行权限检查,后两者可以用来对集合类型的参数或者返回值进行过滤。要使它们的定义能够对我们的方法的调用产生影响我们需要设置global-method-sec...
2018-04-08 19:34:04
359
转载 web Security 入门篇
Hello Web Security在这个部分,我们对一个基于web的security作一些基本的配置。可以分成四个部分:更新依赖 – 我们已经在前一篇文章中用Maven进行了示范进行Spring Security配置 – 这个例子中,我们采用WebSecurityConfigurerAdapter确保Spring Security配置已经被加载了 – 我们采用AbstractAnnotation...
2018-04-08 19:17:51
8648
转载 如何线程安全的使用HashMap
在周二面试时,一面的面试官有问到HashMap是否是线程安全的,如何在线程安全的前提下使用HashMap,其实也就是HashMap,Hashtable,ConcurrentHashMap和synchronized Map的原理和区别。当时有些紧张只是简单说了下HashMap不是线程安全的;Hashtable线程安全,但效率低,因为是Hashtable是使用synchronized的,所有线程竞争同...
2018-04-02 13:40:58
192
转载 HashMap的实现原理
HashMap概述HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap的数据结构在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列...
2018-04-02 13:39:16
120
转载 HashMap的工作原理(面试)
HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入...
2018-04-02 13:38:42
190
转载 如何在java中使用ConcurrentHashMap
ConcurrentHashMap(简称CHM)是在Java 1.5作为Hashtable的替代选择新引入的,是concurrent包的重要成员。在Java 1.5之前,如果想要实现一个可以在多线程和并发的程序中安全使用的Map,只能在HashTable和synchronized Map中选择,因为HashMap并不是线程安全的。但再引入了CHM之后,我们有了更好的选择。CHM不但是线程安全的,而...
2018-04-02 13:37:45
761
转载 ConcurrentHashMap总结
并发编程实践中,ConcurrentHashMap是一个经常被使用的数据结构,相比于Hashtable以及Collections.synchronizedMap(),ConcurrentHashMap在线程安全的基础上提供了更好的写并发能力,但同时降低了对读一致性的要求(这点好像CAP理论啊 O(∩_∩)O)。ConcurrentHashMap的设计与实现非常精巧,大量的利用了volatile,f...
2018-04-02 13:35:36
120
原创 Spring 之Aspect中execute规则
对于execute有两个时候用1.第一个是在aop中其用法是@("execute ....")2.第二种是在Aspect类中使用pointcut func():execute(...)下面介绍规则表达式组成:修饰符(public,private..) 返回类型 包名.类名.方法名(类型,不填就是没有)在此有几个必填 返回类型(构造器可无) 名称(可以全填,也可以只填包名,类名,甚至方法名) 参...
2018-03-29 21:00:27
1780
原创 Spring 之bean的装配
spring 中bean的装配有几个可选方案1.在Xml中经行显示配置2.在java中经行显示配置3.隐式发现机制和自动配装 自动配装自动配装分为两个部分1.组件的扫描:自动发现上下文的Bean2.自动装配:满足一切Bean的依赖关系扫描:一般来说扫描分两个步骤,先在所要变为bean的类上方加上@Component,再在配置文件中经行配置1.@Component有一个属性,命名属性,可以用@co...
2018-03-28 19:04:06
185
原创 spring-JDBCTempalate方法提要
作者MayJDBCTemplate主要提供了五类方法:execute()方法:可用于执行任何sql语句,但是一般用来执行DDL语句;update()以及batchUpdate()方法:update()方法用来执行增加、修改和删除等语句;batchUpdate()方法用来执行批处理相关的语句;query()以及queryForXxx():用来执行查询相关的语句;call()方法:用于执行存储过程、函...
2018-03-27 19:50:34
480
转载 spring之aop-expression
在使用AOP时,指定一个pointcut的同时会定义一个expression,来表示对什么方法使用AOP。类似expression="execution(public * com.baidu.map.*Ctr.*Handle(..))"等语法为:execution(修饰符 返回值 包名.类名/接口名.方法名(参数列表))其中:1、返回类型、方法名、参数是必须有的.2、*表示任意值. 比如返回类...
2018-03-27 16:11:41
210
转载 spring之 对象创建和实例化
Spring中四种实例化bean的方式本文主要介绍四种实例化bean的方式(注入方式) 或者叫依赖对象实例化的四种方式。上面的程序,创建bean 对象,用的是什么方法 ,用的是构造函数的方式 (Spring 可以在构造函数私有化的情况下把类对象创建出来)常用的创建方式有以下四种:1) setter 方法2) 构造函数3) 静态工厂4) 实例工厂一、用 setter 方式public interfa...
2018-03-26 21:41:27
521
转载 spring 之数据库操作 (new)
DateSource首先我们要获得者个数据源,spring提供了三个数据源方式1.JNDI 如果应用配置在高性能的应用服务器(如WebLogic或Websphere等)上,我们可能更希望使用应用服务器本身提供的数据源。应用服务器的数据源 使用JNDI开放调用者使用,Spring为此专门提供引用JNDI资源的JndiObjectFactoryBean类。下面是一个简单的配置: xml 代码 &...
2018-03-26 21:22:19
273
转载 spring 之数据库
本文简单的讲解使用Spring连接数据库的几种常用方法:测试主类为:[java] view plain copy package myspring2; import java.sql.*; import javax.sql.DataSource; import org.springframework.context.ApplicationContext; impor...
2018-03-26 21:13:29
187
转载 javabean 以及 beanUtils
javaBean简单理解:javaBean在MVC设计模型中是model,又称模型层,在一般的程序中,我们称它为数据层,就是用来设置数据的属性和一些行为,然后我会提供获取属性和设置属性的get/set方法即Javabean 就是一个类,这个类就定义一系列 get<Name> 和 set<Name> 方法。 So simple !Javabean 就是为了和 jsp ...
2018-03-26 12:59:40
487
转载 连接池
JDBC之 连接池 有这样的一种现象:用java代码操作数据库,需要数据库连接对象,一个用户至少要用到一个连接。现在假设有成千上百万个用户,就要创建十分巨大数量的连接对象,这会使数据库承受极大的压力,为了解决这种现象,一种技术出现了,这就是数据库连接池。 什么是数据库连接池(原理)所谓数据库连接池,可以看作 :在用户和数据库之间创建一个”池”,这个池中有若干个连接对象,当用户想要连接数据库,就要先...
2018-03-26 12:57:32
145
转载 ResultMetaData类
DatabaseMetaData 有关整个数据库的信息:表名、表的索引、数据库产品的名称和版本、数据库支持的操作。 ResultSet 关于某个表的信息或一个查询的结果。您必须逐行访问数据行,但是您可以任何顺序访问列。 ResultSetMetaData 有关 ResultSet 中列的名称和类型的信息。 尽管每个对象都有大量的方法让您获得数据库元素的极为详细的信息,但在每个对象中都有几种主要的方...
2018-03-26 12:49:08
624
转载 设计模式(3)
策略者模式定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。类型:行为类模式类图: 策略模式是对算法的封装,把一系列的算法分别封装到对应的类中,并且这些类实现相同的接口,相互之间可以替换。在前面说过的行为类模式中,有一种模式也是关注对算法的封装——模版方法模式,对照类图可以看到,策略模式与模版方法模式的区别仅仅是多了一个单独的封装类Context,它与模版方法模式的区别...
2018-03-25 22:30:45
94
转载 设计模式(2)
模板方法定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。类型:行为类模式类图: 事实上,模版方法是编程中一个经常用到的模式。先来看一个例子,某日,程序员A拿到一个任务:给定一个整数数组,把数组中的数由小到大排序,然后把排序之后的结果打印出来。经过分析之后,这个任务大体上可分为两部分,排序和打印,打印功能好实现,排...
2018-03-25 13:36:11
167
转载 创造类模式笔记
工厂设计定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。类型:创建类模式类图:抽象工厂模式与工厂方法模式的区别抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。他与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对的多个产品等级结构。在编程中,通常一个产品结构,表现为一个接口或者抽象类,也就是说,工厂方法模式...
2018-03-23 14:30:34
146
转载 监听器的运用
监听器在JavaWeb开发中用得比较多,下面说一下监听器(Listener)在开发中的常见应用一、统计当前在线人数 在JavaWeb应用开发中,有时候我们需要统计当前在线的用户数,此时就可以使用监听器技术来实现这个功能了。 1 package me.gacl.web.listener; 2 3 import javax.servlet.ServletContext; 4 import j...
2018-03-23 12:22:42
136
转载 数据库类型
MySQL与SQLServer的数据类型大同小异。因此,可以忽略与SQLServer相同的地方,在SQLServer的基础上学习。一、整型的显示宽度 MySQL数据类型与SQLServer有些不同,其定义的基本形式如下:整型类型(显示宽度) 注意,正确的理解,其实是显示宽度,因为整型的显示宽度,对数值大小无影响,只是当设置了zerofill的时候,在显示的时候补0而已。 从上面的显示我们...
2018-03-23 12:19:53
258
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人