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

《Spring实战》摘录 - 22

211

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

A:

  • all-entries:如果是true的话,缓存中所有的条目都会被移除掉。如果是false的话,只有匹配key的条目才会被移除掉。
  • before-invocation:如果是true的话,缓存条目将会在方法调用之前被移除掉。如果是false的话,方法调用之后才会移除缓存。

212

Q: #14.1 | Spring Security提供了三种不同的安全注解

A:

  • Spring Security自带的@Secured注解;
  • JSR-250的@RolesAllowed注解;
  • 表达式驱动的注解,包括@PreAuthorize、@PostAuthorize、@PreFilter和@PostFilter。

213

Q: #14.1.1-1 | 在Spring中,如果要启用基于注解的方法安全性,关键之处在于要在配置类上使用@EnableGlobalMethodSecurity,如下所示:

A:

@Configuration
@EnableGlobalMethodSecurity(securedEnabled=true)
public class MethodSecurityConfig
       extends GlobalMethodSecurityConfiguration {
}

214

Q: #14.1.1-2 | 我们在Web层的安全配置中设置认证,那么可以通过重载GlobalMethodSecurityConfiguration的configure()方法实现该功能

A:

@Override
protected void configure(AuthenticationManagerBuilder auth)
         throws Exception {
  auth
  .inMemoryAuthentication()
    .withUser("user").password("password").roles("USER");
}

215

Q: #15.0-1 | 什么是JMS

A: Java消息服务(Java Message Service,JMS)和高级消息队列协议(Advanced Message Queuing Protocol,AMQP)

216

Q: #15.0-2 | 作为一个Java开发者,我们有多种可以使用的远程调用技术,包括:

A:

  • 远程方法调用(Remote Method Invocation,RMI);
  • Caucho的Hessian和Burlap;
  • Spring基于HTTP的远程服务;
  • 使用JAX-RPC和JAX-WS的Web Service。

217

Q: #15.1-1 | 概述了几个RPC模型,并简要讨论了它们所适用的不同场景。

A:

  • 远程方法调用(RMI) --- 不考虑网络限制时(例如防火墙),访问/发布基于Java的服务
  • Hessian或Burlap --- 考虑网络限制时,通过HTTP访问/发布基于Java的服务。Hessian是二进制协议,而Burlap是基于XML的
  • HTTP invoker --- 考虑网络限制,并希望使用基于XML或专有的序列化机制实现Java序列化时,访问/发布基于Spring的服务
  • JAX-RPC和JAX-WS --- 访问/发布平台独立的、基于SOAP的Web服务

218

Q: #15.1-2 | 使用远程导出器将Spring管理的bean发布为远程服务

A:

219

Q: #16.1.1-1 | REST是什么

A:

为了理解REST是什么,我们将它的首字母缩写拆分为不同的构成部分:

  • 表述性(Representational):REST资源实际上可以用各种形式来进行表述,包括XML、JSON(JavaScript Object Notation)甚至HTML——最适合资源使用者的任意形式;
  • 状态(State):当使用REST的时候,我们更关注资源的状态而不是对资源采取的行为;
  • 转移(Transfer):REST涉及到转移资源数据,它以某种表述性形式从一个应用转移到另一个应用。

更简洁地讲,REST就是将资源的状态以最适合客户端或服务端的形式从服务器端转移到客户端(或者反过来)。

230

Q: #16.1.2 | 当前的4.0版本中,Spring支持以下方式来创建REST资源:

A:

  • 控制器可以处理所有的HTTP方法,包含四个主要的REST方法:GET、PUT、DELETE以及POST。Spring 3.2及以上版本还支持PATCH方法;
  • 借助@PathVariable注解,控制器能够处理参数化的URL(将变量输入作为URL的一部分);
  • 借助Spring的视图和视图解析器,资源能够以多种方式进行表述,包括将模型数据渲染为XML、JSON、Atom以及RSS的View实现;
  • 可以使用ContentNegotiatingViewResolver来选择最适合客户端的表述;
  • 借助@ResponseBody注解和各种HttpMethodConverter实现,能够替换基于视图的渲染方式;
  • 类似地,@RequestBody注解以及HttpMethodConverter实现可以将传入的HTTP数据转化为传入控制器处理方法的Java对象;
  • 借助RestTemplate,Spring应用能够方便地使用REST资源。

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

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

原始发表时间:2019-07-07

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • UAV MOF工作原理之Agent注入机制原理

    【UAVStack的中间件增强框架专题(MOF)】为大家详细讲述UAV中的MOF Agent是如何借助javaagent(premain)和javaassist...

    宜信技术学院
  • java.lang.UnsupportedOperationException解决方法

    在项目中对List进行操作时报错java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的,通过看...

    凯哥Java
  • SpringBootUnity

    https://github.com/xiaomoinfo/SpringBootUnity

    凯哥Java
  • java代码执行系统命令

    何白白
  • spring boot 默认静态文件位置及动态文件位置

    spring boot项目只有src目录,没有webapp目录,会将静态访问(html/图片等)映射到其自动配置的静态目录,如下

    凯哥Java
  • 使用Java打印字符串表格(中英文内容不乱)

    最近在学习使用java来编写cli应用,但是在信息展示上碰到了难题。原因是没有很好工具来展示一个由字符串组成的表格。在git上搜到阿里巴巴有一个叫做 text-...

    何白白
  • 为何JUC中有大量代码将成员变量复制到本地变量后再操作?

    总结:在性能核心部分,是有效果的(所以j.u.c和Netty大量这样搞)。 juc那么写是因为一开始就那么写(考虑到当时的jvm的现代化),而且单纯来看,loc...

    开发架构二三事
  • 关于netty你需要了解的二三事.md

    在nio编程中,select和bind可以不按顺序调用,也可以不在同一个线程中。netty中这是在boss线程中做的事情,可能会出现先select再绑定端口的情...

    开发架构二三事
  • Sharding-JDBC 使用入门和基本配置

    Sharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可...

    宜信技术学院
  • 在 Spring 框架中,设计模式是怎么用的?

    设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆。

    凯哥Java

扫码关注云+社区

领取腾讯云代金券