什么是Shiro Shiro是Apache组织下的一款轻量级Java安全框架.Spring Security相对来说比较臃肿. 官网 Shiro提供的服务 1.Authentication(认证) 2.Authorization(授权) 3.Session Management(会话管理) 4.Cryptography(加密) 5.Web Integration(web集成) 6.Integrations(集成) 首先,她提供了Authentication(认证)服务,也就是说,通过她可以完成身…
对方法进行性能监控,在方法调用时统计出方法执行时间. 原始做法:在内个方法的开头获取系统时间,然后在方法的结尾获取时间,最后把前后台两次分别获取的系统时间做一个减法,即可获取方法执行所消耗的总时间. 项目中大量的方法,如果对每个方法开头结尾都加上这些代码,工作量会很大.现在不用修改现有代码,在另一个地方做性能监控,AOP(Aspect Oriented Programming,面向方面编程)就是我们寻找的解决方案. 在AOP中,我们需要定义一个Aspect(切面)类来编写需要横切业务逻辑的代码,…
开发AOP框架 借鉴SpringAOP的风格,写一个基于切面注解的AOP框架.在进行下面的步骤之前,确保已经掌了动态代理技术. 定义切面注解 /** * 切面注解 */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface Aspect { /*注解*/ Class<? extends Annotation> value(); } 通过@Target(ElementType.TYPE)来设…
MVC(Model-View-Controller,模型-视图-控制器)是一种常见的设计模式,可以使用这个模式将应用程序进行解耦. 上一章我们使用Servlet来充当MVC模式中的Controller.这样做虽然可以实现基本功能,但Servlet的数量会随着业务功能的拓展而不断增加.因此有必要减少Servlet的数量,将某类业务交给Controller来处理,它负责调用Service的相关方法,并将返回值放入Request或Response中.此外,Service不是通过new 的方式来创建的,…
Servlet API解耦 为什么需要与Servlet API解耦 目前在Controller中是无法调用Servlet API的,因为无法获取Request与Response这类对象,我们必须在Dispatcher中将这些对象传递给Controller的Action方法才能拿到这些对象,这显然会增加Controller对Servlet API的耦合.最好能让Controller完全不使用Servlet API就能操作Request与Response对象. 最容易拿到Request与Respon…
什么是ThreadLocal? ThreadLocal直译为“线程本地”或“本地线程”,如果真的这么认为,那就错了!其实它就是一个容器,用于存放线程的局部变量,应该叫ThreadLocalVariable(线程局部变量)才对. 早在JDK1.2的时代,java.lang.ThreadLocal就诞生了,它是为了解决多线程并发问题而设计的,只不过设计得有些难用而已,所以至今没有得到广泛的应用. 一个序列号生成器的程序可能同时会有多个线程并发访问它,要保证每个线程得到的序列号都是自增的,而补鞥呢互相…
内容提要 <架构探险--从零开始写Java Web框架>首先从一个简单的 Web 应用开始,让读者学会如何使用 IDEA.Maven.Git 等开发工具搭建 Java Web 应用:接着通过一个简单的应用场景,为该 Web 应用添加若干业务功能,从需求分析与系统设计开始,带领读者动手完成该 Web 应用,完善相关细节,并对已有代码进行优化:然后基于传统 Servlet 框架搭建一款轻量级 Java Web 框架,一切都是从零开始,逐个实现类加载器.Bean 容器.IoC 框架.MVC 框架,所…
Java安全(权限)框架 - Shiro 功能讲解 架构分析 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 简述Shiro Shiro出自公司Apache(阿帕奇),是java的一个安全和权限框架: 在这之前,我想各位应该也学过 SpringMvc.struts2.他们都是web的mvc框架,紧接着一些ORM框架,比如Mybatis .Hibernate,而这个Shiro更加主流.也更加简单易用,它不但是适用于javaSE环境,也适用于javaEE环境: Shiro可以完成如…
1.0.0 Summary Tittle:[EatBook]-NO.3.EatBook.3.JavaArchitecture.2.001-<架构探险:从零开始写Java Web框架>- Style:JavaArchitecture Series:Architecture Publishing House:电子工业 Author: 黄勇 Page Number:349 Since:2017-04-06 End:ing... Total Hours:ing... Degree Of Diffcul…
参考来自:<架构探险>黄勇 著 1 使用IDEA搭建MAVEN项目 1.1 搭建java项目 (1)创建java项目 为了整个书籍的项目,我创建了一个工程,在这个工程里创建了每个章节的module.创建过程见随笔<待定>. 创建完成后,项目结构如下: ps:对maven项目而言,classpath是java和resources两个根目录. (2)调整pom配置 统一源代码的编码方式 统一源代码和编译输出所用的JDK版本 打包时跳过单元测试(可选) <?xml version=…