acegi安全系统,是个用于springframework的安全框架,能够和目前流行的web容器无缝集成。他使用了spring的方式提供了安全和认证安全服务,包括使用beancontext,拦截器和面向接口的编程方式。因此,acegi安全系统能够轻松地适用于复杂的安全需求。安全涉及到两个不同的概念,认证和授权。前者是关于确认用户是否确实是他们所宣称的身份。授权则是关于确认用户是否有允许执行一个特定的操作。在acegi安全系统中,需要被认证的用户,系统或代理
系统 2019-08-29 22:06:29 2486
六十六、同步访问共享的可变数据:在Java中很多时候都是通过synchronized关键字来实现共享对象之间的同步的。事实上,对象同步并不仅限于当多个线程操作同一可变对象时,仍然能够保证该共享对象的状态始终保持一致。与此同时,他还可以保证进入同步方法或者同步代码块的每个线程,都看到由同一个锁保护的之前所有的修改效果。Java的语言规范保证了读写一个变量是原子的,除非这个变量的类型为long或double。换句话说,读取一个非long或double类型的变量
系统 2019-08-29 22:02:40 2486
十三、使类和成员的可访问性最小化:信息隐藏是软件程序设计的基本原则之一,面向对象又为这一设计原则提供了有力的支持和保障。这里我们简要列出几项受益于该原则的优势:1.更好的解除各个模块之间的耦合关系:由于模块间的相互调用是基于接口契约的,每个模块只是负责完成自己内部既定的功能目标和单元测试,一旦今后出现性能优化或需求变更时,我们首先需要做的便是定位需要变动的单个模块或一组模块,然后再针对各个模块提出各自的解决方案,分别予以改动和内部测试。这样便大大降低了因代
系统 2019-08-29 22:02:34 2486
好长时间没有用过Spring了.突然拿起书.我都发现自己对AOP都不熟悉了.其实AOP的意思就是面向切面编程.OO注重的是我们解决问题的方法(封装成Method),而AOP注重的是许多解决解决问题的方法中的共同点,是对OO思想的一种补充!还是拿人家经常举的一个例子讲解一下吧:比如说,我们现在要开发的一个应用里面有很多的业务方法,但是,我们现在要对这个方法的执行做全面监控,或部分监控.也许我们就会在要一些方法前去加上一条日志记录,我们写个例子看看我们最简单的
系统 2019-08-29 21:58:29 2486
当我们开始接触JNI但是还不熟悉的时候,也许会这样几个问题:Java程序和native程序的数据类型通常是不一样的,它们怎么相互映射的呢?怎么在native方法中访问java方法传递过来的数据呢?在native方法中可以创建java对象吗?如何把结果返回给调用它的java方法?读完本文你将会明白如上问题的来龙去脉。首先我在重复一下如何编写JNI相关的应用程序,我们必须在java方法中声明一个native的方法,比如publicnativeStringget
系统 2019-08-12 09:30:14 2486
Fisher–Yatesshuffle基本思想(Knuthshuffle):Toshuffleanarrayaofnelements(indices0..n-1):forifromn−1downto1doj←randomintegerwith0≤j≤iexchangea[j]anda[i]JDK源代码如下:/***MoveseveryelementoftheListtoarandomnewpositioninthelist.**@paramlist*the
系统 2019-08-12 09:27:20 2486
在Oracle10g以前的版本,更改表空间名字是几乎不可能的事情,除非删除,重新创建,大费周章。Oracle10g新添加了一项更改表空间名字的功能,使得更改表空间名字瞬间即可完成。是个较为人性化的功能。SQL>SELECTfile_name,tablespace_nameFROMdba_data_files;FILE_NAMETABLESPACE--------------------------------------------------------
系统 2019-08-12 01:54:38 2486
如果重启服务器前没有关闭mysql,MySql的MyiSAM表很有可能会出现ERROR#1017:Can'tfindfile:'/xxx.frm'的错误,出现这个问题的原因不是'/xxx.frm'这个文件不见了,而是这些文件的权限(应该要是mysql)不知道为什么变成了root。解决方法:cd到xxx.frm文件所在目录下,执行一下命令:chownmysql.mysql*将所有文件的权限都改过来就可以了!解决mysqlERROR1017:Can'tfind
系统 2019-08-12 01:54:05 2486
程序包由两部分构成:规范(specification)和主体(body)。创建表createtablePEOPLE(IDNUMBERprimarykeynotnull,NAMENVARCHAR2(20)notnull,STATUSNVARCHAR2(3))insertintopeople(id,name,status)values(1,'福康','CLX');insertintopeople(id,name,status)values(2,'陆晓','ac
系统 2019-08-12 01:52:52 2486
临时表空间作用http://blog.csdn.net/47522341/archive/2009/02/05/3864171.aspxOracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会一直增长。直到耗尽硬盘空间。网上有人猜测在磁盘空间的分配上,oracle使用的是贪心算法,如果上次磁盘空间消耗达到
系统 2019-08-12 01:52:11 2486