Apache Shiro参考手册中文版的版本控制库:https://svn.apache.org/repos/asf/shiro/trunk/samples/quickstart  在 Apache Shiro 的源代码的 samples/quickstart 目录。该源代码在 Download 页面提供下载。 Setup 在这个简单的示例中,我们将创建一个非常简单的命令行应用程序,它将会运行并迅速退出,这样你能够获得对 Shiro lhazlewood:~/projects/shiro-tutorial\$ 我们已经验证了该程序运行成功——现在让我们启用 Apache Shiro。当我们继续本教程的时候,你可以在每次我们 添加一些代码后运行 mvn compile exec:java 来观察我们变化后的结果。 Enable Shiro 在应用程序中启用 Shiro 最先要明白的事情是几乎在 Shiro 中的每个东西都与一个名为 虽然我们能够直接实例化一个 SecurityManager 类,但 Shiro 的 SecurityManager 实现有足够的配置选项及内置组件 使得在 Java 源代码做这件事情变得较为痛苦——如果使用一个灵活的基于文本的配置格式来配置 SecurityManager, 那么这将是一件很容易的事情。 为此,Shiro 通过基于文本的 INI 配置文件提供了一个默认的"共性(common0 码力 | 92 页 | 1.16 MB | 1 年前3
 《Java 应用与开发》课程讲义 - 王晓东115 vi 10.3.1 ArrayList 类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 10.3.2 代码的局部性能优化 ensureCapacity . . . . . . . . . . . . . . . . . . 116 10.3.3 Vector 类 . . . . . . . . . . 23.4 JSP 脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 23.4.1 代码脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 23.4.2 表达式脚本 . . . . . . . . . . . . . . . 273 xxii 序 言 本讲义配套中国海洋大学信息科学与工程学院计算机科学与技术系《Java 应用与 开发》课程使用。 本讲义参考了多方书籍、资料和源代码而编写,在此对原始资料的作者和编者表 示感谢。但为保证课堂教学进度和实验授课质量,并没有随本文档公开原始参考资料 的出处,望相关作者和编者谅解! xxiii Java 应用与开发课程教学体系0 码力 | 330 页 | 6.54 MB | 1 年前3
 Apache Shiro 1.2.x Reference Manual 中文翻译应用程序的安全。 缓存:缓存是 Apache Shiro 保证安全操作快速、高效的重要手段。 并发:Apache Shiro 支持多线程应用程序的并发特性。 测试:支持单元测试和集成测试,确保代码和预想的一样安全。 "Run As":这个功能允许用户假设另一个用户的身份(在许可的前提下)。 "Remember Me":跨 session 记录用户的身份,只有在强制需要时才需要登录。 Apache org/repos/asf/shiro/trunk/samples/quickstart/ 在Apache Shiro 的源码发布 samples/quickstart 目录中。 源码可以下载。 (译者注:译者也提供了自己的代码,包含了中文注解,本章所含示例如下) 示例1 示例2 示例3 Setup 设置 在这个简单的示例中,我们将创建一个非常简单的命令行应用程序,它将运行并迅速退出,这样你 可以领略到 Shiro 你就会看到我们的小教程应用程序的运行和退出。 您应当会看到类似于下面的输出(译者 注:红框中的内容) 我们已经验证了应用程序成功运行——现在让我们使 Apache Shiro。当我们继续学习教程,每 次我们添加更多的代码之后,您可以运行 mvn compile exec:java 看到我们的变化的结果。 Enable Shiro 使用 使用 Shiro 要理解的第一件事情是 Shiro 几乎所有的事情都和一个中心组件0 码力 | 196 页 | 2.34 MB | 1 年前3
 Java 应用与开发 - 面向对象编程进阶show() 方法既可以处理 Person 类型的数据,又可以处理 Student 类型的数据,乃至未来定义的任何 Person 子类类型的 数据,即不必为相关的每种类型单独声明一个处理方法,提高了 代码的通用性。 大纲 多态性 方法重载 关键字 static 关键字 final 多态用法示例 CODE ± PolymorphismSample.java 2 public class PolymorphismSample show() 方法既可以处理 Person 类型的数据,又可以处理 Student 类型的数据,乃至未来定义的任何 Person 子类类型的 数据,即不必为相关的每种类型单独声明一个处理方法,提高了 代码的通用性。 大纲 多态性 方法重载 关键字 static 关键字 final 虚方法调用 思考 一个引用类型的变量如果声明为父类的类型,但实际引用的是子 类对象,则该变量就不能再访问子类中添加的属性和方法。 Student s = new Student(); 5 t.distribute(t); 6 } 7 } 大纲 多态性 方法重载 关键字 static 关键字 final 虚方法调用和造型 课程配套代码 ± package sample.oop.poly ▶ VirtualMethodSample.java ▶ Person.java ▶ Student.java O 虚方法调用和造型强化0 码力 | 49 页 | 659.74 KB | 1 年前3
 跟我学Shiro - 张开涛的架构,即非常容易插入用户自定义实现,因为任何框架都不能满足所有需求。 首先,我们从外部来看 Shiro 吧,即从应用程序角度的来观察如何使用 Shiro 完成工作。如 下图: 可以看到:应用代码直接交互的对象是Subject,也就是说Shiro的对外API核心就是Subject; 其每个 API 的含义: Subject:主体,代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互 Realm 得到用户相应的角色/权限进行验证用户是否能进行操作;可以把 Realm 看 成 DataSource,即安全数据源。 也就是说对于我们而言,最简单的一个 Shiro 应用: 1、 应用代码通过 Subject 来进行认证和授权,而 Subject 又委托给 SecurityManager; 2、 我们需要给 Shiro 的 SecurityManager 注入 Realm,从而让 SecurityManager 实现,或者内存实现等等;由用户提供;注意:Shiro 跟我学 Shiro——http://jinnianshilongnian.iteye.com/ 8 不知道你的用户/权限存储在哪及以何种格式存储;所以我们一般在应用中都需要实现自己 的 Realm; SessionManager:如果写过 Servlet 就应该知道 Session 的概念,Session 呢需要有人去管理 它的生命周期,这个组件就是0 码力 | 219 页 | 4.16 MB | 10 月前3
 Java 应用与开发 - MVC 和框架初步础。 2. 了解经典的 MVC 框架——Struts 2,学会使用 Eclipse 入 手编写一个 Struts 2 Web 应用。 3. 通过 Struts 2 的经典 MVC 框架设计和业务代码开发过程, 进一步思考、理解框架。 大纲 Java Web 应用的开发演化 经典 MVC 框架 - Struts 2 本节习题 大纲 Java Web 应用的开发演化 经典 MVC 框架 - Struts 2 Struts 2 的开发步骤小结 本节习题 大纲 Java Web 应用的开发演化 经典 MVC 框架 - Struts 2 本节习题 JSP 方式 JSP 在 HTML 代码里写 Java 代码完成业务逻辑。 1 <% 2 String name = request.getParameter("name"); 3 String password = request.getP 无需额外的配置文件,无需框架的帮助,即可完成逻辑。 2. 简单易上手。 O 劣势 1. Java 代码由于混杂在一个 HTML 环境中而显得混乱不堪, 可读性非常差。一个 JSP 文件有时候会变成几十 K,甚至 上百 K,经常难以定位逻辑代码的所在。 2. 编写代码时非常困惑,不知道代码到底应该写在哪里,也不 知道别人是不是已经曾经实现过类似的功能,到哪里去引用。 3. 突然之间,某个需求发生了变化。于是,每个人蒙头开始全0 码力 | 51 页 | 837.26 KB | 1 年前3
 Java 应用与开发 - Java 数组和字符串1,…,初值 n; CODE ± 一维数组静态初始化 1 int[] a = {1,2,3,4,5}; 注意 在 Java 程序中声明数组时,无论用何种方式定义数组,都不能 指定其长度。 课程配套代码 ± sample.array.ArraySample.java 大纲 数组的概念 一维数组 二维数组 字符串 接下来… 数组的概念 一维数组 二维数组 字符串 大纲 数组的概念 一维数组 二维数组 字符串 二维数组赋初值 1 int[][] a = {{11,22,33,44}, {66,77,88,99}}; 注意 声明多维数组并初始化时不能指定其长度,否则出错。 课程配套代码 ± sample.array.Array2DimSample.java 大纲 数组的概念 一维数组 二维数组 字符串 Arrays 类 java.util.Arrays 工具类能方便地操作数组,它提供的所有方法都 equals 方法比较数组中元素值是否相等。 查找数组元素 通过 binarySearch 方法能对排序好的数组进行二 分查找法操作。 复制数组 把数组复制成一个长度为 length 的新数组。 课程配套代码 ± sample.array.ArrayToolsSample.java 大纲 数组的概念 一维数组 二维数组 字符串 接下来… 数组的概念 一维数组 二维数组 字符串 大纲 数组的概念0 码力 | 33 页 | 620.46 KB | 1 年前3
 基于 Java EE 的企业应用系统设计 - Spring MVC 01Spring MVC 数据绑定和表单标签库 大纲 Java Web 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 JSP 方式 JSP 在 HTML 代码里写 Java 代码完成业务逻辑。 <% String name = request.getParameter("name"); String password = request.getParameter("password"); 无需额外的配置文件,无需框架的帮助,即可完成逻辑。 2. 简单易上手。 O 劣势 1. Java 代码由于混杂在一个 HTML 环境中而显得混乱不堪,可 读性非常差。一个 JSP 文件有时候会变成几十 K,甚至上百 K,经常难以定位逻辑代码的所在。 2. 编写代码时非常困惑,不知道代码到底应该写在哪里,也不 知道别人是不是已经曾经实现过类似的功能,到哪里去引 用。 3. 突然之间,某个需求发生了变化。于是,每个人蒙头开始全 无需额外的配置文件,无需框架的帮助,即可完成逻辑。 2. 简单易上手。 O 劣势 1. Java 代码由于混杂在一个 HTML 环境中而显得混乱不堪,可 读性非常差。一个 JSP 文件有时候会变成几十 K,甚至上百 K,经常难以定位逻辑代码的所在。 2. 编写代码时非常困惑,不知道代码到底应该写在哪里,也不 知道别人是不是已经曾经实现过类似的功能,到哪里去引 用。 3. 突然之间,某个需求发生了变化。于是,每个人蒙头开始全0 码力 | 67 页 | 792.43 KB | 1 年前3
 JAVA 应用与开发 - 控制台应用程序设计的 String 数 组对象,然后将之作为实参传给应用程序入口方法 main()。 命令行参数须使用空格符分隔,如果参数中包含空格符则必须 使用双引号括起来。 8 41 ����� 课程配套代码 ± sample.commandline.CommandLineArgsSample.java Linux 下运行程序 1 > java CommandLineArgsSample Lisa "Billy" CommandLineArgsSample Lisa "Billy" "Mr␣Brown" "a""b" 输出��� output Lisa Billy Mr Brown 9 41 ����� 课程配套代码 ± sample.commandline.CommandLineArgsSample.java Linux 下运行程序 1 > java CommandLineArgsSample Lisa "Billy" CommandLineArgsSample Lisa "Billy" "Mr␣Brown" "a""b" 输出��� output Lisa Billy Mr Brown 9 41 ����� 课程配套代码 ± sample.commandline.CommandLineArgsSample.java Linux 下运行程序 1 > java CommandLineArgsSample Lisa "Billy"0 码力 | 63 页 | 2.84 MB | 1 年前3
 Nacos架构&原理
DNS(Dubbo+Nacos+Spring- cloud-alibaba/Seata/Sentinel)微服务最佳实践。 随着我们选择三合⼀的开源模式,又面临另外⼀个问题,未来内部和商业化关系是什么,代码关系 是什么? 这个问题应该说⼀直持续,但是我们定下来开源、自研、商业化三位⼀体的战略,以开源为内核, 以商业化为扩展;开源做生态,商业化做企业级特性,阿里内部做性能和高可用;开源做组件,商 未来为了 Nacos 2.0 代码更加清爽,性能更加卓越,我们将加速插件化和服务网格生态的进化速度, 期望对此感兴趣小伙伴⼀起共建!!! 17 > Nacos 架构 Nacos 架构 Nacos 总体设计 Nacos 架构 Nacos 开源之前在阿里内部已经发展了十年,沉淀了很多优秀的能力,也有很多历史负担,在开源 的时候我们取其精华进行开源,为了提升代码的健壮性和扩展性,进行了充分的分层和模块化设计。 协作。  架构⼀致性,⼀套架构要能适应开源、内部、商业化(公有云及专有云)3 个场景。  扩展性,以开源为内核,商业化做基础,充分扩展,方便用户扩展。  模块化,将通用部分抽象下沉,提升代码复用和健壮性。  长期主义,不是要⼀个能支撑未来 3 年的架构,而是要能够支撑 10 年的架构。  开放性,设计和讨论保持社区互动和透明,方便大家协作。 架构图 整体架构分为用户层、业务0 码力 | 326 页 | 12.83 MB | 9 月前3
共 46 条
- 1
 - 2
 - 3
 - 4
 - 5
 













