专栏首页怀英的自我修炼《Spring实战》摘录 - 16

《Spring实战》摘录 - 16

151

问题:#8.2.1-2 | Spring中,行为状态,指的什么?

回答:视图状态会涉及到流程应用程序的用户,而行为状态则是应用程序自身在执行任务。行为状态一般会触发Spring所管理bean的一些方法并根据方法调用的执行结果转移到另一个状态

152

问题:#8.2.1-3 | 当到达<end-state>状态,流程会结束。接下来会发生什么取决于几个因素

回答:

  • 如果结束的流程是一个子流程,那调用它的流程将会从<subflow-state>处继续执行。<end-state>的ID将会用作事件触发从<subflow-state>开始的转移。
  • 如果<end-state>设置了view属性,指定的视图将会被渲染。视图可以是相对于流程路径的视图模板,如果添加“externalRedirect:”前缀的话,将会重定向到流程外部的页面,如果添加“flowRedirect:”将重定向到另一个流程中。
  • 如果结束的流程不是子流程,也没有指定view属性,那这个流程只是会结束而已。浏览器最后将会加载流程的基本URL地址,当前已没有活动的流程,所以会开始一个新的流程实例。

153

问题:#8.2.2-1 | spring中,用on属性来指定触发转移的事件,xml如何配置

回答:

视图状态,事件通常会是用户采取的动作。在行为状态,事件是评估表达式得到的结果。而在子流程状态,事件取决于子流程结束状态的ID。在任意的事件中(这里没有任何歧义),你可以使用on属性来指定触发转移的事件

<transition on="phoneEntered" to="lookupCustomer"/>

154

问题:#8.2.3-1 | Spring Web Flow的作用域

回答:

  • Conversation --- 最高层级的流程开始时创建,在最高层级的流程结束时销毁。被最高层级的流程和其所有的子流程所共享。
  • Flow --- 当流程开始时创建,在流程结束时销毁。只有在创建它的流程中是可见的。
  • Request --- 当一个请求进入流程时创建,在流程返回时销毁。
  • Flash --- 当流程开始时创建,在流程结束时销毁。在视图状态渲染后,它也会被清除。
  • View --- 当进入视图状态时创建,当这个状态退出时销毁。只在视图状态内是可见的。

155

问题:#9.1-1 | Spring Security是什么

回答:Spring Security是为基于Spring的应用程序提供声明式安全保护的安全性框架

156

问题:#9.1-1 | Spring Security从两个角度来解决安全性问题,分别是

回答:

  • 它使用Servlet规范中的Filter保护Web请求并限制URL级别的访问。
  • Spring Security还能够使用Spring AOP保护方法调用——借助于对象代理和使用通知,能够确保只有具备适当权限的用户才能访问安全保护的方法。

157

问题:#9.1.1-1 | Spring Security被分成了11个模块

回答:

  • ACL --- 支持通过访问控制列表(access control list,ACL)为域对象提供安全性
  • 切面(Aspects) --- 一个很小的模块,当使用Spring Security注解时,会使用基于AspectJ的切面,而不是使用标准的Spring AOP
  • CAS客户端(CAS Client) --- 提供与Jasig的中心认证服务(Central Authentication Service,CAS)进行集成的功能
  • 配置(Configuration) --- 包含通过XML和Java配置Spring Security的功能支持
  • 核心(Core) --- 提供Spring Security基本库
  • 加密(Cryptography) --- 提供了加密和密码编码的功能
  • LDAP --- 支持基于LDAP进行认证
  • OpenID --- 支持使用OpenID进行集中式认证
  • Remoting --- 提供了对Spring Remoting的支持
  • 标签库(Tag Library) --- Spring Security的JSP标签库
  • Web --- 提供了Spring Security基于Filter的Web安全性支持

158

问题:#9.1.2-1 | DelegatingFilterProxy是一个特殊的Servlet Filter,作用是什么?

回答:它本身所做的工作并不多。只是将工作委托给一个javax.servlet.Filter实现类,这个实现类作为一个<bean>注册在Spring应用的上下文中,如下图所示。

DelegatingFilterProxy把Filter的处理逻辑委托给Spring应用

上下文中所定义的一个代理Filter bean

159

问题:#9.1.2-2 | AbstractSecurityWebApplicationInitializer工作原理?

回答:AbstractSecurityWebApplicationInitializer实现了WebApplication-Initializer,因此Spring会发现它,并用它在Web容器中注册DelegatingFilterProxy。尽管我们可以重载它的appendFilters()或insertFilters()方法来注册自己选择的Filter,但是要注册DelegatingFilterProxy的话,我们并不需要重载任何方法。

本文分享自微信公众号 - 怀英的自我修炼(hydzwxl),作者:怀英Qiu

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 《Spring实战》摘录 - 11

    问题: #5.2.3-1 | 测试SpittleController处理针对“/spittles”的GET请求 回答:

    用户1335799
  • 《Spring实战》摘录 - 22

    Q: #13.3 | <cache:cache-evict>元素还有几个特有的属性:

    用户1335799
  • 怀英漫谈9 - JS 数组

    所谓的数组,就是一些数据的集合,JS中没有集合的概念,所以集合也是数组的一种。如果你Java用的多,那么这个概念就有点儿难以理解,毕竟从Java的文意来说,集合...

    用户1335799
  • Oracle数据库常用十一大操作指令

    ACOUG 成都 2019 于4月27日在成都举办,欢迎参会,马上报名:2019 ACOUG China Tour 成都站

    数据和云
  • 腾讯干货 | 如何输出清晰有效的设计方案

    很多初入职场的设计师在审美和平面图形基础上都比较扎实,对软件的操作也出神入化,单个方案的界面视觉表现完成度和细致度也没有太大问题。但却往往在实际输出项目方案的时...

    用户5009027
  • 最热门的 10 个 Java 微服务框架

    Java 构建 Spring 应用程序已经有很长一段时间了,Spring Boot 是 Spring 的一个特定版本,它通过对配置细节的处理,使微服务构建更加简...

    淡定的蜗牛
  • 大数据安全保护思考

    大数据安全保护思考 随着大数据时代的来临,企业数据开始激增,各种数据在云端、移动设备、关系型数据库、大数据库平台、pc端、采集器端等多个位置分散。对数据安全来说...

    FB客服
  • 2020年,这10 个 非常热门的Java 微服务框架,你知道吗?

    Java 构建 Spring 应用程序已经有很长一段时间了,Spring Boot 是 Spring 的一个特定版本,它通过对配置细节的处理,使微服务构建更加简...

    秃顶的Java程序员
  • 用Python演绎5种常见可视化视图

    如果你想要用Python进行数据分析,就需要在项目初期开始进行探索性的数据分析,这样方便你对数据有一定的了解。其中最直观的就是采用数据可视化技术,这样,数据不仅...

    朱小五
  • 微软超融合私有云测试06-StorageSpaceDirect(S2D)分布式存储配置

    可故障转移群集创建完毕后,接下来在群集中启用分布式存储(Storage Space Direct),来作为群集存储使用。

    SuperDream

扫码关注云+社区

领取腾讯云代金券