- 博客(60)
- 资源 (20)
- 收藏
- 关注
转载 第三章 授权——《跟我学Shiro》
授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等)。在授权中需了解的几个关键对象:主体(Subject)、资源(Resource)、权限(Permission)、角色(Role)。主体主体,即访问应用的用户,在Shiro中使用Subject代表该用户。用户只有授权后才允许访问相应的资源。资源在应用中用户可以访问的任何东西,比如访问JSP页面、查看
2016-01-28 17:29:41 438
转载 第二章 身份验证——《跟我学Shiro》
身份验证,即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明。在shiro中,用户需要提供principals (身份)和credentials(证明)给shiro,从而应用能验证用户身份:principals:身份,即主体的标识属性,可以是任何东西,如用户名、邮箱等,唯一即可。一个主体可以有多个principa
2016-01-28 11:40:26 325
转载 第一章 Shiro简介——《跟我学Shiro》
1.1 简介Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了。对于它俩到底哪个好,这个不必纠结,能更简单的解决项目问题就好了。本教程只介绍基本的Shiro使
2016-01-27 17:53:45 388
转载 注解学习三:注解(Annotation)--注解处理器
如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。注解处理器类库(java.lang.reflect.AnnotatedElement): Java使用Annotation接口来代表程序元素前面的注解,该接口是所有Anno
2016-01-26 23:04:06 351
转载 注解学习二:注解(Annotation)自定义注解入门
要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解: 1.@Target,
2016-01-26 18:44:56 321
原创 注解学习一:注解(Annotation)基本概念
什么是注解(Annotation): Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。 Annotation(注解)是JDK5.0及以后版本引入的。它可以用于创
2016-01-26 17:38:23 351
原创 Java中父类强制转换成子类的原则
Java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换成哪个子类的引用。例:public class Test { public static void main(String[] args) { Person person = new Boy(); Boy boy = (Boy) person; boy.eat(); }
2016-01-21 18:13:16 21205 1
原创 Java中static静态类和静态方法隐藏、重写、继承
Java静态类 在Java世界里,经常被提到静态这个概念,static作为静态成员变量和成员函数的修饰符,意味着它为该类的所有实例所共享,也就是说当某个类的实例修改了该静态成员变量,其修改值为该类的其它所有实例所见。最近一个项目里频繁用到static修饰的内部类,再读了一下《Effective Java》才明白为什么会用static来修饰一个内部类也就是本文的中心——静态
2016-01-21 17:53:51 3162
原创 java中for方法执行的正确顺序
ssss:for(?;,?;,?){ break ssss; // continue;}三个表达式中:第一个?是初始化语句:一般是给一个变量赋初始值,只所有循环之前运行一次,以后不运行。第二个?是布尔表达:判断运行的条件,条件为真就循环,为假就结束。第三个?是普通语句:一般是递增或递减的语句,例如i++等,在当次循环后执行。
2016-01-21 11:30:59 460
原创 SiteMesh页面装饰器的配置和使用
1 . Sitemesh 定义 是一个网页布局和修饰的框架,利用它可以将网页的内容和页面结构分离,以达到页面结构共享的目的。 SiteMesh是OpenSymphony团队开发的JEE框架之一,它是一个非常优秀的页面装饰器框架,它通过对所有的用户请求进行过滤,并对服务器向客户端响应也进行过滤,从而给原始的服务器响应加入一定的装饰,可以是header,foot
2016-01-20 16:17:09 946
转载 【第十三章】 测试 之 13.1 概述 13.2 单元测试 ——跟我学spring3
13.1 概述13.1.1 测试软件测试的目的首先是为了保证软件功能的正确性,其次是为了保证软件的质量,软件测试相当复杂,已经超出本书所涉及的范围,本节将只介绍软件测试流程中前两个步骤:单元测试和集成测试。 Spring提供了专门的测试模块用于简化单元测试和集成测试,单元测试和集成测试一般由程序员实现。 13.2 单元测试 13
2016-01-18 22:21:39 371
转载 【第十二章】零配置 之 12.5 综合示例-积分商城 ——跟我学spring3
12.5 综合示例12.5.1 概述在第十一章中我们介绍了SSH集成,在进行SSH集成时都是通过基于XML配置文件配置每层的Bean,从而产生许多XML配置文件,本节将通过注解方式消除部分XML配置文件,实现所谓的零配置。 12.5.2 项目拷贝 1、拷贝【第十一章 SSH集成开发】中的“pointShop”项目将其命名为“pointSh
2016-01-18 16:06:35 617
转载 【第十二章】零配置 之 12.4 基于Java类定义Bean配置元数据 ——跟我学spring3
12.4 基于Java类定义Bean配置元数据12.4.1 概述基于Java类定义Bean配置元数据,其实就是通过Java类定义Spring配置元数据,且直接消除XML配置文件。 基于Java类定义Bean配置元数据中的@Configuration注解的类等价于XML配置文件,@Bean注解的方法等价于XML配置文件中的Bean定义。 基于Jav
2016-01-18 15:59:04 335
转载 【第十二章】零配置 之 12.3 注解实现Bean定义 ——跟我学spring3
12.3 注解实现Bean定义12.3.1 概述前边介绍的Bean定义全是基于XML方式定义配置元数据,且在【12.2注解实现Bean依赖注入】一节中介绍了通过注解来减少配置数量,但并没有完全消除在XML配置文件中的Bean定义,因此有没有方式完全消除XML配置Bean定义呢? Spring提供通过扫描类路径中的特殊注解类来自动注册Bean定义。同注解驱动事务一
2016-01-18 14:24:14 416
转载 【第十二章】零配置 之 12.2 注解实现Bean依赖注入 ——跟我学spring3
12.2 注解实现Bean依赖注入12.2.1 概述 注解实现Bean配置主要用来进行如依赖注入、生命周期回调方法定义等,不能消除XML文件中的Bean元数据定义,且基于XML配置中的依赖注入的数据将覆盖基于注解配置中的依赖注入的数据。 Spring3的基于注解实现Bean依赖注入支持如下三种注解:Spring自带依赖注入注解: Spring
2016-01-18 13:55:51 506
转载 【第十二章】零配置 之 12.1 概述 ——跟我学spring3
12.1 概述12.1.1 什么是零配置 在SSH集成一章中大家注意到项目结构和包结构是不是很有规律,类库放到WEB-INF/lib文件夹下,jsp文件放到WEB-INF/jsp文件夹下,web.xml需要放到WEB-INF文件夹下等等,为什么要这么放呢?不这样放可以吗? 所谓零配置,并不是说一点配置都没有了,而是配置很少而已。通过约定
2016-01-18 11:14:56 374
转载 第十一章】 SSH集成开发积分商城 之 11.3 实现积分商城层 ——跟我学spring3
11.3 实现积分商城层11.3.1 概述 积分商城是基于通用层之上进行开发,这样我们能减少很多重复的劳动,加快项目开发进度。11.3.2 实现数据模型层1、商品表,定义了如商品名称、简介、原需积分、现需积分等,其中是否发布表示只有发布(true)了的商品才会在前台删除,是否已删除表示不会物理删除,商品不应该物理删除,而是逻辑删除,版本属性用于防止并
2016-01-15 17:26:13 500
转载 【第十一章】 SSH集成开发积分商城 之 11.2 实现通用层 ——跟我学spring3
11.2 实现通用层11.2.1 功能概述通过抽象通用的功能,从而复用,减少重复工作:对于一些通用的常量使用一个专门的常量类进行定义;对于视图分页,也应该抽象出来,如JSP做出JSP标签;通用的数据层代码,如通用的CRUD,减少重复劳动,节约时间;通用的业务逻辑层代码,如通用的CRUD,减少重复劳动,节约时间;通用的表现层代码,同样用于减少重复,并提供更好的代码结构规范
2016-01-15 14:25:11 622
转载 【第十一章】 SSH集成开发积分商城 之 11.1 概述 ——跟我学spring3
11.1 概述11.1.1 功能概述 本节将通过介绍一个积分商城系统来演示如何使用SSH集成进行开发。 积分商城一般是购物网站的子模块,提供一些礼品或商品用于奖励老用户或使用积分来折换成现金,如图11-1所示。 图11-1 购物网站与积分商城 积分商城功能点:后台管理 交易管理模
2016-01-15 10:50:13 466
转载 【第十章】集成其它Web框架 之 10.4 集成JSF ——跟我学spring3
10.4 集成JSF10.4.1 概述 JSF(JavaServer Faces)框架是Java EE标准之一,是一个基于组件及事件驱动的Web框架,JSF只是一个标准(规范),目前有很多厂家实现,如Oracle的默认标准实现Mojarra、Apache的MyFaces、Jboss的RichFaces 等。 本示例将使用Oracle标准
2016-01-14 17:57:44 330
转载 【第十章】集成其它Web框架 之 10.3 集成Struts2.x ——跟我学spring3
10.3 集成Struts2.x10.3.1 概述Struts2前身是WebWork,核心并没有改变,其实就是把WebWork改名为struts2,与Struts1一点关系没有。 Struts2中通过ObjectFactory接口实现创建及获取Action实例,类似于Spring的IoC容器,所以Action实例可以由ObjectFactory实现来管理,因此集
2016-01-14 17:28:33 414
转载 【第十章】集成其它Web框架 之 10.2 集成Struts1.x ——跟我学spring3
10.2 集成Struts1.x10.2.1 概述 Struts1.x是最早实现MVC(模型-视图-控制器)模式的Web框架之一,其使用非常广泛,虽然目前已经有Struts2.x等其他Web框架,但仍有很多公司使用Struts1.x框架。 集成Struts1.x也非常简单,除了通用配置外,有两种方式可以将Struts1.x集成到Spring中:
2016-01-14 17:13:38 364
转载 【第十章】集成其它Web框架 之 10.1 概述 ——跟我学spring3
10.1 概述10.1.1 Spring和Web框架 Spring框架不仅提供了一套自己的Web框架实现,还支持集成第三方Web框架(如Struts1x、Struts2x)。 Spring实现的SpringMVC Web框架将在第十八章详细介绍。 由于现在有很大部分公司在使用第三方Web框架,对于并不熟悉S
2016-01-14 17:00:55 314
转载 【第九章】 Spring的事务 之 9.4 声明式事务 ——跟我学spring3
9.4 声明式事务9.4.1 声明式事务概述 从上节编程式实现事务管理可以深刻体会到编程式事务的痛苦,即使通过代理配置方式也是不小的工作量。 本节将介绍声明式事务支持,使用该方式后最大的获益是简单,事务管理不再是令人痛苦的,而且此方式属于无侵入式,对业务逻辑实现无影响。 接下来先来看看声明式事务如何实现吧。9.4.2
2016-01-13 15:00:05 308
转载 【第九章】 Spring的事务 之 9.3 编程式事务 ——跟我学spring3
9.3 编程式事务9.3.1 编程式事务概述 所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理。 Spring框架提供一致的事务抽象,因此对于JDBC还是JTA事务都是采用相同的API进行编程。 java代码:Java代码 Connection conn = null;
2016-01-13 11:42:48 360
转载 【第九章】 Spring的事务 之 9.2 事务管理器 ——跟我学spring3
9.2.1 概述 Spring框架支持事务管理的核心是事务管理器抽象,对于不同的数据访问框架(如Hibernate)通过实现策略接口PlatformTransactionManager,从而能支持各种数据访问框架的事务管理,PlatformTransactionManager接口定义如下: java代码:Java代码 public
2016-01-13 10:51:57 309
转载 windows下使用TortoiseGit代替Git命令行操作
大家在使用svn的时候,都非常喜欢使用小乌龟,也就是TortoiseSVN;那么git也有小乌龟版本,即TortoiseGit。 1、安装TortoiseGit 安装使用TortoiseGit的前提,是windows下msysGit环境都安装并设置好,并且已经生成了私钥和公钥,即可开始配合TortoiseGit使用。 安装没什么要求,根据自己的系统,32bi
2016-01-12 17:05:17 804
转载 git常用命令-最基本操作
git常用命令-基本操作1) 新增文件新增了Test_1.javagit add Test_1.javagit commit –m “新增了Test_1.java”git push2) 修改文件修改了Test_2.javagit add Test_2.javagit commit –m “修改了Test
2016-01-12 16:36:23 391
转载 【第九章】 Spring的事务 之 9.1 数据库事务概述 ——跟我学spring3
9.1 数据库事务概述事务首先是一系列操作组成的工作单元,该工作单元内的操作是不可分割的,即要么所有操作都做,要么所有操作都不做,这就是事务。 事务必需满足ACID(原子性、一致性、隔离性和持久性)特性,缺一不可:原子性(Atomicity):即事务是不可分割的最小工作单元,事务内的操作要么全做,要么全不做;一致性(Consistency):在事务执行前数据库的数
2016-01-12 14:02:28 297
转载 【第八章】 对ORM的支持 之 8.4 集成JPA ——跟我学spring3
8.4 集成JPA JPA全称为Java持久性API(Java Persistence API),JPA是Java EE 5标准之一,是一个ORM规范,由厂商来实现该规范,目前有Hibernate、OpenJPA、TopLink、EclipseJPA等实现。 下图是JPA和Hibernate、TopLi
2016-01-12 11:30:30 312
转载 【第八章】 对ORM的支持 之 8.3 集成iBATIS ——跟我学spring3
8.3 集成iBATIS iBATIS是一个半自动化的ORM框架,需要通过配置方式指定映射SQL语句,而不是由框架本身生成(如Hibernate自动生成对应SQL来持久化对象),即Hibernate属于全自动ORM框架。Spring提供对iBATIS 2.X的集成,提供一致的异常体系、一致的DAO访问支持、Spring管理事务支持。 Spring
2016-01-12 10:40:41 464
转载 【第八章】 对ORM的支持 之 8.2 集成Hibernate3 ——跟我学spring3
8.2 集成Hibernate3 Hibernate是全自动的ORM框架,能自动为对象生成相应SQL并透明的持久化对象到数据库。Spring2.5+版本支持Hibernate 3.1+版本,不支持低版本,Spring3.0.5版本提供对Hibernate 3.6.0 Final版本支持。8.2.1 如何集成 Spring通过使用如下Bea
2016-01-12 10:26:36 356
转载 【第八章】 对ORM的支持 之 8.1 概述 ——跟我学spring3
8.1 概述8.1.1 ORM框架 ORM全称对象关系映射(Object/Relation Mapping),指将Java对象状态自动映射到关系数据库中的数据上,从而提供透明化的持久化支持,即把一种形式转化为另一种形式。 对象与关系数据库之间是不匹配,我们把这种不匹配称为阻抗失配,主要表现在:关系数据库首先不支持面向对象技术如继承、多态,
2016-01-12 09:58:34 307
转载 eclipse启动tomcat成功,报404不能访问
症状:tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080/不能访问,且报404错误。同时其他项目页面也不能访问。关闭eclipse里面的tomcat,在tomcat安装目录下双击startup.bat手动启动tomcat服务器。访问htt://localhost:8080/能正常访问tomcat管理页面。症状原因:
2016-01-11 20:08:28 1008 1
转载 【第七章】 对JDBC的支持 之 7.5 集成Spring JDBC及最佳实践 ——跟我学spring3
7.5 集成Spring JDBC及最佳实践 大多数情况下Spring JDBC都是与IOC容器一起使用。通过配置方式使用Spring JDBC。 而且大部分时间都是使用JdbcTemplate类(或SimpleJdbcTemplate和NamedParameterJdbcTemplate)进行开发,即可能80%时间使用JdbcTemplate类,而只有20
2016-01-11 15:38:29 304
转载 【第七章】 对JDBC的支持 之 7.4 Spring提供的其它帮助 ——跟我学spring3【私塾在线原创】
7.4 Spring提供的其它帮助7.4.1 SimpleJdbc方式 Spring JDBC抽象框架提供SimpleJdbcInsert和SimpleJdbcCall类,这两个类通过利用JDBC驱动提供的数据库元数据来简化JDBC操作。 1、SimpleJdbcInsert: 用于插入数据,根据数据库元数据进行插入数据,本类用于简化插入操作,提供三
2016-01-11 15:12:22 320
转载 【第七章】 对JDBC的支持 之 7.3 关系数据库操作对象化 ——跟我学spring3
7.3.1 概述 所谓关系数据库对象化其实就是用面向对象方式表示关系数据库操作,从而可以复用。Spring JDBC框架将数据库操作封装为一个RdbmsOperation,该对象是线程安全的、可复用的对象,是所有数据库对象的父类。而SqlOperation继承了RdbmsOperation,代表了数据库SQL操作,如select、update、call等,如图7-4所
2016-01-11 14:59:20 378
转载 【第七章】 对JDBC的支持 之 7.2 JDBC模板类 ——跟我学spring3
7.2 JDBC模板类7.2.1 概述 Spring JDBC抽象框架core包提供了JDBC模板类,其中JdbcTemplate是core包的核心类,所以其他模板类都是基于它封装完成的,JDBC模板类是第一种工作模式。 JdbcTemplate类通过模板设计模式帮助我们消除了冗长的代码,只做需要做的事情(即可变部分),并且帮我们做哪些
2016-01-11 10:56:02 236
转载 【第七章】 对JDBC的支持 之 7.1 概述 ——跟我学spring3
7.1 概述7.1.1 JDBC回顾 传统应用程序开发中,进行JDBC编程是相当痛苦的,如下所示: java代码:Java代码 //cn.javass.spring.chapter7. TraditionalJdbcTest @Test public void test() throws Exception
2016-01-08 11:59:26 358
转载 【第六章】 AOP 之 6.9 代理机制 ——跟我学spring3
Spring AOP通过代理模式实现,目前支持两种代理:JDK动态代理、CGLIB代理来创建AOP代理,Spring建议优先使用JDK动态代理。JDK动态代理:使用java.lang.reflect.Proxy动态代理实现,即提取目标对象的接口,然后对接口创建AOP代理。CGLIB代理:CGLIB代理不仅能进行接口代理,也能进行类代理,CGLIB代理需要注意以下问题:
2016-01-08 11:51:16 303
MyBatis_Generator_1.3.1
2015-09-02
Centos下NFS安装与配置-V1.0
2015-07-21
tomcat6,7,8集群session共享所需jar包(支持kryo,javolution)
2014-09-23
安装Nginx-1.7.4作为Windows服务自启动运行
2014-09-23
WinDBG JVM
2013-06-06
Jad(java反编译工具)
2012-12-05
FindBugs插件
2012-11-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人