首页 > 其他分享 >Spring Cloud Vault Config

Spring Cloud Vault Config

时间:2022-12-05 10:38:38浏览次数:46  
标签:令牌 Spring enabled role Cloud spring vault Config cloud

Spring Cloud Vault Config_SSL

9. 自定义要公开为属性源的机密后端

Spring Cloud Vault 使用基于属性的配置来创建键值和发现的秘密后端。​​PropertySource​

发现的后端提供 bean 来描述使用机密后端的配置状态。 需要 Ais 创建包含路径、名称和属性转换配置的对象。​​VaultSecretBackendDescriptor​​​​PropertySource​​​​SecretBackendMetadataFactory​​​​SecretBackendMetadata​

​SecretBackendMetadata​​用于支持特定。​​PropertySource​

您可以注册用于自定义。 如果提供 ,则会禁用默认键值和发现的后端注册。 但是,您可以使用 and 启用默认注册。​​VaultConfigurer​​​​VaultConfigurer​​​​SecretBackendConfigurer.registerDefaultKeyValueSecretBackends()​​​​SecretBackendConfigurer.registerDefaultDiscoveredSecretBackends()​

public class CustomizationBean implements VaultConfigurer {

@Override
public void addSecretBackends(SecretBackendConfigurer configurer) {

configurer.add("secret/my-application");

configurer.registerDefaultKeyValueSecretBackends(false);
configurer.registerDefaultDiscoveredSecretBackends(true);
}
}
SpringApplication application = new SpringApplication(MyApplication.class);
application.addBootstrapper(VaultBootstrapper.fromConfigurer(new CustomizationBean()));

10. 自定义密钥后端实现

Spring Cloud Vault附带了对最常见的后端集成的秘密后端支持。 您可以通过提供一个实现来与任何类型的后端集成,该实现描述如何从要使用的后端获取数据以及如何通过提供 来显示该后端提供的数据。​​PropertyTransformer​

为后端添加自定义实现需要实现两个接口:

  • ​org.springframework.cloud.vault.config.VaultSecretBackendDescriptor​
  • ​org.springframework.cloud.vault.config.SecretBackendMetadataFactory​

​VaultSecretBackendDescriptor​​通常是保存配置数据的对象,例如。Spring 云保管库要求对类型进行注释,以便从配置中具体化类。​​VaultDatabaseProperties​​​​@ConfigurationProperties​

​SecretBackendMetadataFactory​​accepts要创建 Actual 对象,该对象保存 Vault 服务器中的上下文路径、解析参数化上下文路径所需的任何路径变量以及。​​VaultSecretBackendDescriptor​​​​SecretBackendMetadata​​​​PropertyTransformer​

两者都必须注册,并且类型是Spring提供的扩展机制,类似于Java的ServiceLoader。​​VaultSecretBackendDescriptor​​​​SecretBackendMetadataFactory​​​​spring.factories​

11. 服务注册表配置

您可以使用 (例如从 Spring Cloud Consul) 通过设置 spring.cloud.vault.discovery.enabled=true(默认值)来查找 Vault 服务器。 这样做的最终结果是,您的应用程序需要具有适当发现配置的 application.yml(或环境变量)。 好处是,只要发现服务是固定点,Vault 就可以更改其坐标。 默认服务 ID 是但您可以在客户端上更改它。​​DiscoveryClient​​​​false​​​​vault​​​​spring.cloud.vault.discovery.serviceId​

发现客户端实现都支持某种元数据映射(例如,对于 Eureka,我们有 eureka.instance.metadataMap)。 可能需要在其服务注册元数据中配置服务的某些其他属性,以便客户端可以正确连接。 未提供有关传输层安全性的详细信息的服务注册表需要提供要设置为的元数据条目。 如果未配置方案,并且服务未公开为安全服务,则配置默认为未设置时。​​scheme​​​​https​​​​http​​​​spring.cloud.vault.scheme​​​​https​

spring.cloud.vault.discovery:
enabled: true
service-id: my-vault-service

12. 保管库客户端快速失败

在某些情况下,如果服务无法连接到 Vault 服务器,则可能需要使服务启动失败。 如果这是所需的行为,请设置引导程序配置属性,客户端将停止并显示异常。​​spring.cloud.vault.fail-fast=true​

spring.cloud.vault:
fail-fast: true

13. 保管库企业命名空间支持

Vault Enterprise 允许使用命名空间在单个 Vault 服务器上隔离多个 Vault。 配置命名空间的方式是,在使用 Vaultor 时,设置在每个传出 HTTP 请求上启用命名空间标头。​​spring.cloud.vault.namespace=…​​​​X-Vault-Namespace​​​​RestTemplate​​​​WebClient​

请注意,保险柜社区版不支持此功能,对保险柜操作没有影响。

spring.cloud.vault:
namespace: my-namespace

另请参阅:保管库企业版:命名空间

14. 保管库客户端 SSL 配置

可以通过设置各种属性以声明方式配置 SSL。 您可以设置配置 JVM 范围的 SSL 设置,也可以仅为 Spring 云保管库配置设置 SSL 设置。​​javax.net.ssl.trustStore​​​​spring.cloud.vault.ssl.trust-store​

spring.cloud.vault:
ssl:
trust-store: classpath:keystore.jks
trust-store-password: changeit
trust-store-type: JKS
enabled-protocols: TLSv1.2,TLSv1.3
enabled-cipher-suites: TLS_AES_128_GCM_SHA256
  • ​trust-store​​设置信任存储的资源。 受 SSL 保护的保管库通信将使用指定的信任库验证保管库 SSL 证书。
  • ​trust-store-password​​设置信任库密码
  • ​trust-store-type​​设置信任库类型。支持的值是所有支持的类型,包括。KeyStorePEM
  • ​enabled-protocols​​设置已启用的 SSL/TLS 协议列表(自 3.0.2 起)。
  • ​enabled-cipher-suites​​设置已启用的 SSL/TLS 密码套件列表(自 3.0.2 起)。

请注意,配置只能在 Apache Http 组件或 OkHttp 客户端位于您的类路径上时才应用。​​spring.cloud.vault.ssl.*​

15. 租赁生命周期管理(续订和撤销)

对于每个机密,保险柜都会创建一个租约: 包含持续时间、可续订性等信息的元数据。

保险柜承诺数据将在给定的持续时间或生存时间 (TTL) 内有效。 租约到期后,保险柜可以撤销数据,而密钥的使用者无法再确定它是否有效。

Spring 云保管库在创建登录令牌和密钥之后保持租赁生命周期。 也就是说,与租约关联的登录令牌和机密计划在租约到期之前续订,直到终端到期。 应用程序关闭吊销获取的登录令牌和可续订租约。

秘密服务和数据库后端(如MongoDB或MySQL)通常会生成可续订的租约,因此生成的凭据将在应用程序关闭时被禁用。

静态令牌不会续订或撤销。

租约续订和吊销默认处于启用状态,可以通过设置为禁用。 不建议这样做,因为租约可能会过期,并且 Spring Cloud Vault 无法再使用生成的凭据访问保管库或服务,并且在应用程序关闭后有效凭据仍处于活动状态。​​spring.cloud.vault.config.lifecycle.enabled​​​​false​

spring.cloud.vault:
config.lifecycle:
enabled: true
min-renewal: 10s
expiry-threshold: 1m
lease-endpoints: Legacy
  • ​enabled​​控制是否将与机密关联的租约视为已续订,并轮换过期的机密。 默认启用。
  • ​min-renewal​​设置续订租约之前至少需要的持续时间。 此设置可防止续订过于频繁。
  • ​expiry-threshold​​设置到期阈值。 租约在到期前按配置的时间段续订。
  • ​lease-endpoints​​设置续订和吊销的终结点。 旧版适用于 0.8 之前的库版本,系统租约适用于更高版本。

另请参阅:库文档:租赁、续订和撤销

16. 会话令牌生命周期管理(续订、重新登录和吊销)

保管库会话令牌(也称为)与租约非常相似,因为它具有 TTL、最大 TTL,并且可能会过期。 登录令牌过期后,将无法再用于与保险柜交互。 因此,Spring Vault附带了aAPI,用于命令式和反应式使用。​​LoginToken​​​​SessionManager​

Spring Cloud Vault默认维护会话令牌生命周期。 会话令牌是延迟获取的,因此实际登录将延迟到第一次会话绑定使用 Vault。 一旦 Spring Cloud Vault 获得会话令牌,它就会保留它直到到期。 下次使用会话绑定活动时,Spring Cloud Vault 会重新登录 Vault 并获取新的会话令牌。 在应用程序关闭时,如果令牌仍处于活动状态以终止会话,Spring Cloud Vault 将吊销令牌。

会话生命周期默认处于启用状态,可以通过设置来禁用。 不建议禁用,因为会话令牌可能会过期,并且 Spring Cloud Vault 无法再访问 Vault。​​spring.cloud.vault.session.lifecycle.enabled​​​​false​

spring.cloud.vault:
session.lifecycle:
enabled: true
refresh-before-expiry: 10s
expiry-threshold: 20s
  • ​enabled​​控制是否启用会话生命周期管理以续订会话令牌。 默认启用。
  • ​refresh-before-expiry​​控制续订会话令牌的时间点。 刷新时间是通过从令牌到期时间中减去来计算的。 默认为。refresh-before-expiry5 seconds
  • ​expiry-threshold​​设置到期阈值。 阈值表示将会话令牌视为有效的最短 TTL 持续时间。 TTL 较短的令牌被视为已过期,不再使用。 应大于以防止令牌过期。 默认为。refresh-before-expiry7 seconds

另请参阅:保管库文档:令牌续订

附录 A:常见应用程序属性

可以在文件内部、文件内部或命令行开关中指定各种属性。 本附录提供了常见 Spring Cloud Vault 属性的列表,以及对使用这些属性的基础类的引用。​​application.properties​​​​application.yml​

属性贡献可以来自类路径上的其他 jar 文件,因此不应将其视为详尽的列表。 此外,您还可以定义自己的属性。

名字

违约

描述

spring.cloud.vault.app-id.app-id-path

​app-id​

AppId 身份验证后端的装载路径。

spring.cloud.vault.app-id.network-interface

“MAC_ADDRESS”UserId 机制的网络接口提示。

spring.cloud.vault.app-id.user-id

​MAC_ADDRESS​

用户 ID 机制。可以是“MAC_ADDRESS”、“IP_ADDRESS”、字符串或类名。

spring.cloud.vault.app-role.app-角色路径

​approle​

应用角色身份验证后端的装载路径。

spring.cloud.vault.app-role.role

角色的名称(可选),用于拉取模式。

spring.cloud.vault.app-role.role-id

角色 ID。

spring.cloud.vault.app-role.secret-id

秘密ID。

spring.cloud.vault.application-name

​application​

应用程序标识身份验证的应用程序名称。

spring.cloud.vault.authentication

spring.cloud.vault.aws-ec2.aws-ec2-path

​aws-ec2​

AWS-EC2 身份验证后端的挂载路径。

spring.cloud.vault.aws-ec2.identity-document

​169.254.169.254/latest/dynamic/instance-identity/pkcs7​

AWS-EC2 PKCS7 身份文档的 URL。

spring.cloud.vault.aws-ec2.nonce

Nonce 用于 AWS-EC2 身份验证。空随机数默认为随机数生成。

spring.cloud.vault.aws-ec2.role

角色的名称,可选。

spring.cloud.vault.aws-iam.aws-path

​aws​

AWS 身份验证后端的挂载路径。

spring.cloud.vault.aws-iam.endpoint-uri

STS 服务器 URI。@since 2.2

spring.cloud.vault.aws-iam.role

角色的名称,可选。如果未设置,则默认为友好 IAM 名称。

spring.cloud.vault.aws-iam.server-name

用于在登录请求标头中设置 {@code X-Vault-AWS-IAM-Server-ID} 标头的服务器名称。

spring.cloud.vault.aws.access-key-property

​cloud.aws.credentials.accessKey​

获取的访问密钥的目标属性。

spring.cloud.vault.aws.backend

​aws​

AWS 后端路径。

spring.cloud.vault.aws.credential-type

AWS 凭证类型

spring.cloud.vault.aws.enabled

​false​

启用 AWS 后端使用。

spring.cloud.vault.aws.role

凭据的角色名称。

spring.cloud.vault.aws.role-arn

角色 ARN 用于assumed_role,以防我们有多个角色与文件库角色关联。@since 3.0.2

spring.cloud.vault.aws.secret-key-property

​cloud.aws.credentials.secretKey​

获取的密钥的目标属性。

spring.cloud.vault.aws.session-token-key-property

​cloud.aws.credentials.sessionToken​

获取的密钥的目标属性。

spring.cloud.vault.aws.ttl

​0​

用于 sts 令牌的 TTL。默认为保管库角色对 Max 可能具有的任何内容。也仅限于 AWS 支持的 STS 最大值。 @since 3.0.2

spring.cloud.vault.azure-msi.azure-path

​azure​

Azure MSI 身份验证后端的装载路径。

spring.cloud.vault.azure-msi.identity-token-service

标识令牌服务 URI。@since 3.0

spring.cloud.vault.azure-msi.metadata-service

实例元数据服务 URI。@since 3.0

spring.cloud.vault.azure-msi.role

角色的名称。

spring.cloud.vault.cassandra.backend

​cassandra​

卡桑德拉后端路径。

spring.cloud.vault.cassandra.enabled

​false​

启用 cassandra 后端使用。

spring.cloud.vault.cassandra.password-property

​spring.data.cassandra.password​

获取的密码的目标属性。

spring.cloud.vault.cassandra.role

凭据的角色名称。

spring.cloud.vault.cassandra.static-role

​false​

启用静态角色使用。@since 2.2

spring.cloud.vault.cassandra.username-property

​spring.data.cassandra.username​

获取的用户名的目标属性。

spring.cloud.vault.config.lifecycle.enabled

​true​

启用生命周期管理。

spring.cloud.vault.config.lifecycle.expiry-threshold

到期阈值。{@link租约} 在到期之前续订给定的 {@link 期限}。@since 2.2

spring.cloud.vault.config.lifecycle.lease-endpoint

将 {@link租赁终结点} 设置为将续订/吊销调用委托给。{@link 租赁端点} 封装了影响续订/吊销端点位置的保管库版本之间的差异。对于 Vault 的 0.8 或更高版本,可以是 {@link LeaseEndpoints#SysLeases},对于旧版本,可以是 {@link LeaseEndpoints#Legacy}(默认)。@since 2.2

spring.cloud.vault.config.lifecycle.min-renewal

续订租约之前至少需要的时间段。@since 2.2

spring.cloud.vault.config.order

​0​

用于设置 {@link org.springframework.core.env.PropertySource} 优先级。这对于将 Vault 用作对其他属性源的覆盖非常有用。@see org.springframework.core.PriorityOrdered

spring.cloud.vault.connection-timeout

​5000​

连接超时。

spring.cloud.vault.consul.backend

​consul​

领事后端路径。

spring.cloud.vault.consul.enabled

​false​

启用 consul 后端使用。

spring.cloud.vault.consul.role

凭据的角色名称。

spring.cloud.vault.consul.token-property

​spring.cloud.consul.token​

获取的令牌的目标属性。

spring.cloud.vault.couchbase.backend

​database​

沙发基地后端路径。

spring.cloud.vault.couchbase.enabled

​false​

启用沙发基础后端使用。

spring.cloud.vault.couchbase.password-property

​spring.couchbase.password​

获取的密码的目标属性。

spring.cloud.vault.couchbase.role

凭据的角色名称。

spring.cloud.vault.couchbase.static-role

​false​

启用静态角色使用。

spring.cloud.vault.couchbase.username-property

​spring.couchbase.username​

获取的用户名的目标属性。

spring.cloud.vault.database.backend

​database​

数据库后端路径。

spring.cloud.vault.database.enabled

​false​

启用数据库后端使用。

spring.cloud.vault.database.password-property

​spring.datasource.password​

获取的密码的目标属性。

spring.cloud.vault.database.role

凭据的角色名称。

spring.cloud.vault.database.static-role

​false​

启用静态角色使用。

spring.cloud.vault.database.username-property

​spring.datasource.username​

获取的用户名的目标属性。

spring.cloud.vault.databases

spring.cloud.vault.discovery.enabled

​false​

指示已启用保管库服务器发现的标志(将通过发现查找保管库服务器 URL)。

spring.cloud.vault.discovery.service-id

​vault​

用于查找保管库的服务 ID。

spring.cloud.vault.elasticsearch.backend

​database​

数据库后端路径。

spring.cloud.vault.elasticsearch.enabled

​false​

启用弹性搜索后端使用。

spring.cloud.vault.elasticsearch.password-property

​spring.elasticsearch.rest.password​

获取的密码的目标属性。

spring.cloud.vault.elasticsearch.role

凭据的角色名称。

spring.cloud.vault.elasticsearch.static-role

​false​

启用静态角色使用。

spring.cloud.vault.elasticsearch.username-property

​spring.elasticsearch.rest.username​

获取的用户名的目标属性。

spring.cloud.vault.enabled

​true​

启用库配置服务器。

spring.cloud.vault.fail-fast

​false​

如果无法从保险柜获取数据,则快速失败。

spring.cloud.vault.gcp-gce.gcp-path

​gcp​

Kubernetes 认证后端的挂载路径。

spring.cloud.vault.gcp-gce.role

尝试登录的角色的名称。

spring.cloud.vault.gcp-gce.service-account

可选的服务帐户 ID。如果未配置,请使用默认 ID。

spring.cloud.vault.gcp-iam.credentials.encoded-key

JSON 格式的 OAuth2 帐户私钥的 base64 编码内容。

spring.cloud.vault.gcp-iam.credentials.location

OAuth2 凭据私钥的位置。<p> 由于这是一个资源,因此私钥可以位于多个位置,例如本地文件系统、类路径、URL 等。

spring.cloud.vault.gcp-iam.gcp-path

​gcp​

Kubernetes 认证后端的挂载路径。

spring.cloud.vault.gcp-iam.jwt-valid(英语:Spring.cloud.vault.gcp-iam.jwt-valid)

​15m​

JWT 令牌的有效性。

spring.cloud.vault.gcp-iam.project-id

覆盖 GCP 项目 ID。

spring.cloud.vault.gcp-iam.role

尝试登录的角色的名称。

spring.cloud.vault.gcp-iam.service-account-id

覆盖 GCP 服务帐号 ID。

spring.cloud.vault.host

​localhost​

库服务器主机。

spring.cloud.vault.kubernetes.kubernetes-path

​kubernetes​

Kubernetes 认证后端的挂载路径。

spring.cloud.vault.kubernetes.role

尝试登录的角色的名称。

spring.cloud.vault.kubernetes.service-account-token-file

​/var/run/secrets/kubernetes.io/serviceaccount/token​

服务帐户令牌文件的路径。

spring.cloud.vault.kv.application-name

​application​

要用于上下文的应用程序名称。

spring.cloud.vault.kv.backend

​secret​

默认后端的名称。

spring.cloud.vault.kv.backend-version

​2​

键值后端版本。当前支持的版本包括:<ul> <li>Version 1(未版本化的键值后端).</li> <li>Version 2(版本化的键值后端).</li> </ul>

spring.cloud.vault.kv.default-context

​application​

默认上下文的名称。

spring.cloud.vault.kv.enabled

​true​

启用 kev 值后端。

spring.cloud.vault.kv.profile-separator

​/​

用于组合应用程序名称和配置文件的配置文件分隔符。

spring.cloud.vault.kv.profiles

活动配置文件列表。@since 3.0

spring.cloud.vault.mongodb.backend

​mongodb​

MongoDB后端路径。

spring.cloud.vault.mongodb.enabled

​false​

启用 mongodb 后端使用。

spring.cloud.vault.mongodb.password-property

​spring.data.mongodb.password​

获取的密码的目标属性。

spring.cloud.vault.mongodb.role

凭据的角色名称。

spring.cloud.vault.mongodb.static-role

​false​

启用静态角色使用。@since 2.2

spring.cloud.vault.mongodb.username-property

​spring.data.mongodb.username​

获取的用户名的目标属性。

spring.cloud.vault.mysql.backend

​mysql​

MySQL 后端路径。

spring.cloud.vault.mysql.enabled

​false​

启用 mysql 后端使用。

spring.cloud.vault.mysql.password-property

​spring.datasource.password​

获取的用户名的目标属性。

spring.cloud.vault.mysql.role

凭据的角色名称。

spring.cloud.vault.mysql.username-property

​spring.datasource.username​

获取的用户名的目标属性。

spring.cloud.vault.namespace

保管库命名空间(需要保管库企业版)。

spring.cloud.vault.pcf.instance-certificate

实例证书 (PEM) 的路径。默认为 {@code CF_INSTANCE_CERT} env 变量。

spring.cloud.vault.pcf.instance-key

实例密钥 (PEM) 的路径。默认为 {@code CF_INSTANCE_KEY} env 变量。

spring.cloud.vault.pcf.pcf-path

​pcf​

Kubernetes 认证后端的挂载路径。

spring.cloud.vault.pcf.role

尝试登录的角色的名称。

spring.cloud.vault.port

​8200​

库服务器端口。

spring.cloud.vault.postgresql.backend

​postgresql​

PostgreSQL 后端路径。

spring.cloud.vault.postgresql.enabled

​false​

启用 postgresql 后端使用。

spring.cloud.vault.postgresql.password-property

​spring.datasource.password​

获取的用户名的目标属性。

spring.cloud.vault.postgresql.role

凭据的角色名称。

spring.cloud.vault.postgresql.username-property

​spring.datasource.username​

获取的用户名的目标属性。

spring.cloud.vault.rabbitmq.backend

​rabbitmq​

RabbitMQ 后端路径。

spring.cloud.vault.rabbitmq.enabled

​false​

启用 rabbitmq 后端使用。

spring.cloud.vault.rabbitmq.password-property

​spring.rabbitmq.password​

获取的密码的目标属性。

spring.cloud.vault.rabbitmq.role

凭据的角色名称。

spring.cloud.vault.rabbitmq.username-property

​spring.rabbitmq.username​

获取的用户名的目标属性。

spring.cloud.vault.reactive.enabled

​true​

指示已启用反应式发现的标志

spring.cloud.vault.read-timeout

​15000​

读取超时。

春天.云.库.方案

​https​

协议方案。可以是“http”或“https”。

spring.cloud.vault.session.lifecycle.enabled

​true​

启用会话生命周期管理。

spring.cloud.vault.session.lifecycle.expiry-threshold

​7s​

{@link登录令牌} 的到期阈值。阈值表示将登录令牌视为有效的最短 TTL 持续时间。TTL 较短的令牌被视为已过期,不再使用。应大于 {@code刷新前到期} 以防止令牌过期。

spring.cloud.vault.session.lifecycle.refresh-before-expireiry

​5s​

续订 {@link 登录令牌} 之前至少需要的时间段。

spring.cloud.vault.ssl.cert-auth-path

​cert​

TLS 证书身份验证后端的装载路径。

spring.cloud.vault.ssl.enabled-cipher-suites

已启用的 SSL/TLS 密码套件列表。@since 3.0.2

spring.cloud.vault.ssl.enabled-protocols

已启用的 SSL/TLS 协议列表。@since 3.0.2

spring.cloud.vault.ssl.key-store

保存证书和私钥的信任存储。

spring.cloud.vault.ssl.key-store-password

用于访问密钥库的密码。

spring.cloud.vault.ssl.key-store-type

密钥存储的类型。@since 3.0

spring.cloud.vault.ssl.trust-store

保存 SSL 证书的信任存储。

spring.cloud.vault.ssl.trust-store-password

用于访问信任存储的密码。

spring.cloud.vault.ssl.trust-store-type

信任存储的类型。@since 3.0

spring.cloud.vault.token

静态保管库令牌。如果 {@link #authentication} 是 {@code 令牌},则为必需。

spring.cloud.vault.uri

保管库 URI。可设置方案、主机和端口。

标签:令牌,Spring,enabled,role,Cloud,spring,vault,Config,cloud
From: https://blog.51cto.com/u_15326439/5911448

相关文章

  • Spring中获取request的几种方法,及其线程安全性分析
    前言本文将介绍在SpringMVC开发的web系统中,获取request对象的几种方法,并讨论其线程安全性。目录概述如何测试线程安全性方法1:Controller中加参数方法2:自动注入方法3......
  • 类项目中的配置文件app.config在打包安装后的信息获取的问题
    在一个项目中碰到这样的一个问题,做一个WORD插件,功能在类库项目中实现了,配置信息存在类库项目的配置文件app.config中,在进行打包后,获取的配置文件中的DocType节点信息时,使用......
  • 如何使用 Spring Cloud Zookeeper 进行服务发现和分布式配置
    该项目通过以下方式为SpringBoot应用程序提供Zookeeper集成自动配置并绑定到Spring环境和其他Spring编程模型习语。通过一些注释,您可以快速启用和配置常见模式......
  • springmvc注册fastJson报错
    原因:依赖版本问题这是我原本引入的依赖,版本是1.2.24<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId......
  • spring-boot-@Valid和@Validated详解
    ----------------------------------------------------------------------------------------在实际的项目开发中,经常会遇到对参数进行校验的场景,最常见的就是后端需要对......
  • spring学习小结之:hibernatetemplate,过度封装?
    边学spring,突然发现之前spring与hibernate结合的方式可以更厉害地封装,那就是用hibernateTemplate了,只需要改边userdao.java如下importorg.springfr......
  • spring mvc3及mvc 3.2中的异常处理小结
    在springmvc3中,处理异常的是试用exceptionresolver去做异常,先来个简单DEMO看下:1)自定义异常类publicclassSpringExceptionextendsRuntime......
  • Spring中配合hibernate使用的简单例子
    最近在看SPRING和hibernate,学习了spring和hibernate之间整合,下面举出一个例子予以说明.    首先,可以注入的是sessionfactory,因为sessionfactory的Datasource可以......
  • spring 3 jdbc常用小结
    spring3的jdbc跟springmvc搭配起来挺好用的,本文试着小结其主要使用方法,并举出spring3.3.2中的一些信变化进行解析1)在dao中注入jdbctemplate,然后......
  • spring mvc中的拦截器小结
    在springmvc中,拦截器其实比较简单了,下面简单小结并demo下。preHandle:预处理回调方法,实现处理器的预处理(如登录检查),第三个参数为响应的处理器(如我们......