spring
文章平均质量分 75
Spring框架系列
梦想画家
开源软件爱好者,乐于博客分享,业余时间喜欢跑步和科幻,希望与意趣相投朋友一起学习交流。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Vue.js 和 spring boot 入门教程
Vue.js 和 spring boot 入门教程本文我们通过示例说明如何整合使用vue和spring boot,示例通过vue渲染单个页面,spring boot作为后端提供数据。为了对比说明,也使用Thymeleaf模板技术渲染页面部分内容。搭建spring boot应用pom.xml使用spring-boot-starter-web 和 spring-boot-starter-thy...原创 2018-12-15 09:55:58 · 3166 阅读 · 0 评论 -
图像转换为Base64字符串
图像转换为Base64字符串本文我们讨论使用Apache Common IO 和 Java 8 自带 Base64 功能把图像文件转为Base64字符串,并反向解码为原图像.该转换可以应用于任何二进制文件或二进制数组。当我们需要将JSON格式的二进制内容(例如从移动应用程序到REST端点)传输到REST端点时,它非常有用。maven 依赖首先我们需要在项目引入依赖,这里示例ma...原创 2018-08-30 19:50:28 · 2809 阅读 · 0 评论 -
快速学习 Golang RPC 教程
Remote Procedure Call (RPC) 是一种使用TCP协议从另一个系统调用应用程序功能执行的方法。Go有原生支持RPC服务器实现,本文通过简单实例介绍RPC的实现过程。原创 2022-12-10 22:10:00 · 1100 阅读 · 0 评论 -
java开源验证框架OVAL应用实例
对oval验证框架进行分类,并针对常用的验证规则进行总结,从而可以抽象成模型可以定义,达到定义后自动生成,减少开发人员的工作量,同时也规范化代码结构。原创 2015-10-21 11:58:08 · 4748 阅读 · 0 评论 -
介绍 Java RabbitMQ Client
介绍 RabbitMQ解耦组件是软件设计的重要部分,其中一种实现是使用消息系统。其提供异步方式实现组件或服务间通信。本文我们介绍其中一个消息系统实现:RabbitMQ。RabbitMQ是实现Advanced Message Queuing Protocol (AMQP)协议的消息代理中间件,对主流语言都提供了客户端库。除了对软件组件进行解耦,还可以用于下列场景:执行后端操作执行异步操作...原创 2019-12-15 09:57:41 · 689 阅读 · 0 评论 -
Golang实现更安全的HTTP基本认证(Basic Authentication)
本文介绍了Go如何实现安全http基本认证,首先介绍原理,后面给出详细实现过程,最后通过curl和GO http客户端进行验证。详细内容参考:https://www.alexedwards.net/blog/basic-authentication-in-go。原创 2023-04-10 18:00:14 · 4324 阅读 · 2 评论 -
QueryDsl查询mongodb数据2
QueryDsl查询实例 上节已经生成了Query类,本文通过示例说明如何通过Query类实现灵活查询。示例类及查询类 为了说明示例,这里定义简单的User类,以及依据User类生成的QUser类。User类:@Document public class User {@Idprivate String id;private String name;private Integer原创 2017-10-27 15:54:27 · 3921 阅读 · 0 评论 -
sqlserver 调用qq map 服务,根据地点获取所在城市
使用sqlserver 调用腾讯 map 服务,根据地点获取所在城市;定义存储过程调用web服务,并解析返回的JSON字符串。原创 2015-01-02 18:09:13 · 2615 阅读 · 0 评论 -
Java 实现RSA签名和加密
Java 实现RSA签名和加密RSA在1977年发明,是公钥加密方式的事实标准,名称有其三位作者首字母组成。本文我们介绍Java中如何使用RSA实现加密和签名。RSA属于非对称加密算法,有两个密钥。区别于共享密钥的对称加密算法,如DES和AES。公钥可以共享给任何人,私钥自己进行保管。公钥用于加密数据,使得该加密数据只能用私钥进行解密;私钥也可用于签名数据,签名和数据一起发送,然后使用公钥验证...原创 2019-09-30 17:10:24 · 12636 阅读 · 2 评论 -
IIS Web 服务器的权限设置
IIS Web 服务器的权限设置有两个地方,一个是 NTFS 文件系统本身的权限设置,另一个是 IIS 下 网站->默认网站->右击属性->虚拟目录 面板上。这两个地方是密切相关的。下面我会以实例的方式来讲解如何设置权限。 IIS5.1下 网站->默认网站->右击属性->虚拟目录 面板上有: 脚本资源访问:用户可以对网站目录的脚本文件有操作的权限,前提是开启读取或者写入权限,开启读转载 2009-11-08 13:59:00 · 3320 阅读 · 0 评论 -
Jackson 反序列化数组类型json值
Jackson 反序列化数组类型json值本文介绍如何使用Jackson 2反序列化json数组值至Java 数组或集合。反序列化为ArrayJackson可以很容易反序列化为Java数组:@Testpublic void givenJsonArray_whenDeserializingAsArray_thenCorrect() throws JsonParseException,...原创 2019-08-31 11:56:07 · 6805 阅读 · 4 评论 -
URL 和 URI 区别
URL 和 URI 区别本文我们讨论URL 和 URI 的主要区别,并通过示例说明这些差异。URL 和 URI直接差异来自其定义:Uniform Resource Identifier (URI) − 对任何抽象或物理资源进行完整标识的字符序列。 UniformResource Locator (URL) − 除了标识资源可用的位置之外,URI的一个子集描述了访问该资源的主...原创 2018-07-15 22:19:09 · 12974 阅读 · 1 评论 -
freemarker乱码问题
数据不是乱码,模板文件中的中文是乱码,是模板的文件格式不正确造成的;其他的地方编码设置:config.setEncoding(Locale.CHINA, "UTF-8"); config.setDirectoryForTemplateLoading(new File(base+"configuration\\template\\jsp"原创 2012-05-16 16:42:25 · 1396 阅读 · 0 评论 -
如何使用spring mvc 主题
如何使用spring mvc 主题主题是一组静态资源的集合,一般包括影响应用程序界面样式的资源,如样式表和图像文件。本文详细说明使用 Spring MVC 的主题实现不同风格切换。配置Spring MVC 主题在spring web 应用中使用主题,需要配置一个实现org.springframework.ui.context.ThemeSource接口的类,这里我们使用org.sp翻译 2018-01-31 10:19:03 · 2500 阅读 · 0 评论 -
使用Jackson和JSON Pointer查询解析任何JSON节点
使用Jackson和JSON Pointer查询解析任何JSON节点JSON Pointer是字符串表达式,用于标识JSON文档特定节点。RFC 6901规范有定义,用于查询复杂Json文档结构。1.示例Json文档{ "firstName": "John", "lastName": "Doe", "address": { "street": "21 2nd Street", "city": "New York", "postal原创 2020-06-03 18:14:57 · 6305 阅读 · 2 评论 -
使用GSON把数据保存为json格式文件
当然也可以存储自定义类型对象为json格式。}}}如果字段标记为transient,gson默认会忽略,json序列化和反序列化过程中不会包括该字段。因此输出中没有出现nationality字段。{"id":1}如果需要保留null字段,请继续往下浏览。本文介绍使用gson库把java不同数据类型序列化为json文件。原创 2022-11-23 17:36:04 · 2803 阅读 · 0 评论 -
Jackson 生成xml格式文件
Jackson 生成xml格式文件Jackson是java应用中流行的操作Json工具库,很快成为Java生态中事实标准,Spring boot默认也使用Jackson。从版本2开始,支持json的同时引入成熟的xml实现。1. 环境依赖增加Jackson xml 模块,仅需要一个依赖:<dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>原创 2020-08-21 11:50:57 · 12402 阅读 · 2 评论 -
springmvc中使用thymeleaf乱码完整方案
springmvc中使用thymeleaf乱码完整方案 在springmvc项目中,使用thymeleaf视图,出现中文乱码,尤其是message.properties文件中文,多次调试并总结如下。本文统一采用java config方式说明,如果你仍然是xml配置,相应修改xml配置即可。thymeleaf模板文件<!DOCTYPE html><html xmlns:th="http://w原创 2017-09-22 10:35:21 · 3807 阅读 · 0 评论 -
Spring Security 实现IP白名单机制
Spring Security 实现IP白名单机制本文讨论如何在Spring Security 中实现IP白名单机制。先看看默认实现机制,同时也讨论自定义AuthenticationProvider实现更加灵活的应用。1. 默认实现首先我们看下Java配置。使用hasIpAddress() 定义允许特定ip地址的用户访问特定资源。请看下面使用hasIpAddress()的配置:@Confi...原创 2020-03-08 10:10:06 · 12881 阅读 · 2 评论 -
API 网关与反向代理
API 已经成为成功数字产品的必备要素之一,因此正确管理API成为重要内容。本文带你了解管理API的两个常用组件:API 网关与反向代理。架构我们首先看典型的网络拓扑图。虽然API 网关与反向代理位于相同位置,但两者提供的功能有差异。下面我们分别进行解释。反向代理反向代理主要作为客户端与一个或多个后端服务之间的协调者。在微服务架构中,随着应用规模增大微服务会随之变多。必要时需要隐藏异构AP服务带来的复杂性,这时反向代理可以重写URL,客户端仅和反向代理交互,反向代理负责将请求转发到后端服务实例.原创 2021-11-26 15:19:45 · 2390 阅读 · 0 评论 -
Java Base64 加密与解密
Java Base64 加密与解密本文我们探讨不同方式实现java中Base4加密和解密功能。主要是java 8 api为主,同时也学习来自Apache Commons 的API。Java 8 中 Base 64java 8 在标准API中增加Base64功能,通过 java.util.Base64工具类。首先我们看基本的加密过程:Java 8 基本 Base64基本的...原创 2018-06-01 20:07:36 · 24426 阅读 · 1 评论 -
Spring Security 实现角色继承
Spring Security 实现角色继承本文描述如何基于Spring Security 实现角色继承。权限声明很多应用基于Spring Security 实现认证过程,通常需要定义一些角色,这些角色可能会有优先级或层次关系。假设我们有三个角色:ADMIN, MODERATOR ,USER.下面代码进行权限声明:@Secured(['MODERATOR'])def dashBoar...原创 2019-05-17 11:59:27 · 2416 阅读 · 0 评论 -
使用Spring Security 限制URL访问
使用Spring Security 限制URL访问通常保护url方式有以下几种:允许每个人访问的url基于角色保护url基于多个角色保护url基于IP地址保护url本文介绍如何通过spring security 实现这些功能。指定URL指定url最常用的方法是通过antMatcher,如果我们想保护下列url: url 访问限制 http...原创 2018-02-13 14:03:39 · 22094 阅读 · 8 评论 -
Spring Batch 写Excel数据
Spring Batch 写Excel数据本文通过示例介绍如何通过Spring Batch写数据至Excel。1. Apache POI介绍Apache poi 是解析微软office文档的Java工具库,支持解析Excel,Word,PowerPoint甚至Visio.本文聚焦Excel及当前最新版本xlsx,POI提供低内存占用API写xlsx文件。通过设置滑动窗口值指定在内存中缓存...原创 2020-04-30 17:39:21 · 3406 阅读 · 1 评论 -
Spring Batch 跳过策略配置
Spring Batch 跳过策略配置Spring batch job执行过程中遇到任何错误,默认情况下将使得相应步骤执行失败。但有些场景我们希望跳过造成特定异常的当前处理项。本文探讨Spring batch 提供的两种方法配置跳过逻辑。1.示例环境说明为了简化说明,本文重用Spring Batch 入门教程 中的示例,实现把csv文件中的一些财务数据转换为xml格式。但我们增加一些错误数...原创 2019-12-26 18:50:47 · 3229 阅读 · 0 评论 -
介绍Spring Batch 中Tasklet 和 Chunks
介绍Spring Batch 中Tasklet 和 ChunksSpring Batch 提供了两种不同方式实现job: tasklet 和 chunk。本文通过实例实践两种方法。示例需求说明给定输入csv文件内容如下:Mae Hodges,10/22/1972Gary Potter,02/22/1953Betty Wise,02/17/1968Wayne Rose,04/06/19...原创 2019-03-28 13:05:47 · 22854 阅读 · 3 评论 -
Spring Batch 自定义ItemReader
Spring Batch 自定义ItemReaderSpring Batch支持各种数据输入源,如文件、数据库等。然而有时也会遇到一些默认不支持的数据源,这时我们则需要实现自己的数据源————自定义ItemReader。本文通过示例说明如何自定义ItemReader。创建自定义ItemReader创建自定义ItemReader需要下面两个步骤:创建一个实现ItemReader接口的类,并...原创 2019-04-12 22:04:38 · 5866 阅读 · 0 评论 -
配置Spring Batch 跳过逻辑
配置Spring Batch 跳过逻辑Spring Batch处理过程中遇到错误将导致失败。但有些场景我们更希望能够跳过当前处理记录产生的异常。本文介绍如何配置跳过逻辑以及定义跳过策略。1. 应用示例为了说明我们搭建一个示例,转换一些财务数据从csv至xml格式:username, user_id, transaction_date, transaction_amountdevendra, 1234, 31/10/2015, 10000john, 2134, 3/12/2015, 12321r原创 2020-10-24 19:59:18 · 1532 阅读 · 0 评论 -
Spring Batch 入门教程
spring batch 入门教程Spring Batch用于健壮地执行批处理工作的框架。本文通过实战方式介绍Spring Batch,聚焦案例代码方式进行阐述。当前版本4.1,支持Spring 5 和 java 8 或以上版本。也遵循JSR-352批处理规范。这里详细说明了其应用场景。核心概念及流程Spring batch 遵循作业仓库(job repository)执行调度工作并负责...原创 2019-03-22 18:05:36 · 10559 阅读 · 1 评论 -
Spring Batch 条件处理流
Spring Batch 条件处理流Spring Batch的job有多个步骤组成:读、处理、写步骤。如果job中步骤有多个路径,类似与if语句,一般称为条件流程。本文介绍两种方式创建Spring Batch条件流程。1. 结束状态和批处理状态(Exit & Batch Status)使用Spring Batch框架指定条件步骤时,需要步骤或job的结束状态。因此需要理解步骤或job的批状态和结束状态之间的差异。BatchStatus 是一个枚举状态,表示step/job的状态,在Batc原创 2020-10-25 13:58:42 · 3150 阅读 · 0 评论 -
Spring Batch 配置重试逻辑
Spring Batch 配置重试逻辑Spring Batch在处理过程中遇到错误job默认会执行失败。为了提高应用程序的健壮性,我们需要处理临时异常造成失败。本文我们探讨如何配置Spring Batch的重试逻辑。1. 应用示例批处理应用读取csv文件:sammy, 1234, 31/10/2015, 10000john, 9999, 3/12/2015, 12321然后,通过调用rest接口处理每条记录,获取用户的年龄和邮编属性,为了正确输出日期,可以在属性上增加@XmlJavaTypeA原创 2020-10-24 19:10:05 · 1130 阅读 · 0 评论 -
Spring AbstractRoutingDatasource 实现动态数据源
本文介绍如何使用 Spring AbstractRoutingDatasource 基于上下文动态切换数据源,因此我们会让查找数据源逻辑独立于数据访问之外。数据源上下文AbstractRoutingDatasource 需要信息决定路由到那个数据源,该信息我们称为上下文。可以市任何对象,下面示例我们使用枚举 ClientDatabase 作为上下文:public enum ClientDatabase { CLIENT_A, CLIENT_B}值得注意的是,实际中上下文可以是任何有意.原创 2021-06-27 22:29:11 · 641 阅读 · 1 评论 -
Spring 5 WebFlux入门教程
WebFlux是Spring 5 新增特性,提供响应式web应用。本文我们利用RestController 和 WebClient组件实现简单的响应式Restful应用。Spring WebFlux FrameworkWebFlux内部使用Project Rector并实现了——Flux 和 Mono 。新的框架支持两种编程模型:基于注解方式响应式组件函数式路由和处理本文聚焦基于注解响应式组件。我们需要增加 spring-boot-starter-webflux 依赖,它自动拉取其他依赖.原创 2021-06-20 16:57:40 · 1740 阅读 · 0 评论 -
介绍 Hibernate EntityManager
EntityManager属于Java Persistence API的一部分. 它主要实现了JPA 2.0规范定义的编程接口和生命周期规则,而且通过EntityManager api 可以访问Persistence Context。本文我们介绍EntityManager的配置、类型以及其API.EntityManager配置引入依赖首先我们引入hibernate依赖:<dependency> <groupId>org.hibernate</groupId&.原创 2021-06-19 12:16:06 · 3080 阅读 · 0 评论 -
Spring启动时运行自定义业务
在Spring应用启动时运行自定义业务的场景很常见,但应用不当也可能会导致一些问题。基于Spring控制反转(Inverse of Control)功能用户几乎不用干预bean实例化过程,对于自定义业务则需要控制部分流程及容器,因此值得须特别关注。1. Spring启动时运行自定义业务我们不能简单包括自定义业务在bean的构造函数或在实例化任何对象之后调用方法,这些过程不由我们控制。请看示例:@Componentpublic class InvalidInitExampleBean { @原创 2021-04-07 17:39:55 · 617 阅读 · 1 评论 -
Spring FactoryBean实战教程
Spring Bean容器中有两者类型bean:普通bean和工厂bean。前者Spring直接使用,而后者能产生被框架管理的对象。我们可以实现org.springframework.beans.factory.FactoryBean 接口构建工厂bean。1. 基本工厂bean2.1 实现FactoryBean首先看FactoryBean接口定义:public interface FactoryBean { T getObject() throws Exception; Class原创 2021-03-31 21:25:38 · 472 阅读 · 0 评论 -
Spring5.1新特性—接口驱动开发Controller
本文介绍Spring MVC新特性,使用java接口定义web请求。1. 概述通常在SpringMVC中定义Controller,在其方法上使用不同的注解用于描述请求URL入口地址,HTTP请求方法,路径变量等。举例,我们在普通方法上增加@PostMapping("/save/{id}"),指定请求地址和路径变量:@PostMapping("/save/{id}")@ResponseBodypublic Book save(@RequestBody Book book, @PathVariable原创 2021-03-14 11:44:12 · 518 阅读 · 0 评论 -
Spring Boot 运行初始化代码
实际应用通常需要在应用启动后实现一定业务逻辑,Spring Boot提供了几种方式实现,本文分别进行介绍并对比其中的差异。1. 环境准备Spring Boot是一个开发框架,当启动时需要一定启动时间。如果在任何构造函数中实现一些初始化代码,可能会遇到其依赖的对象还没有被初始化。我们讨论的问题就是在Spring context初始化之后,运行自定义初始化代码。Spring Boot提供了几种方式实现,下面首先搭建一个示例工程。启动类的非常简单:@SpringBootApplicationpubli原创 2020-11-27 16:25:13 · 975 阅读 · 0 评论 -
Spring访问Apache kafka快速入门
Apache kafka是分布式、容错流程处理系统。本文介绍Spring集成Kafka以及其提供对Kafka Java Client Api的抽象封装。Spring Kafka利用KafkaTemplate发送消息,@KafkaListener注解消费消息,从而实现模板化编程模式,简化Java对Kafka交互访问。1. 环境及依赖读者可以参照官网进行安装,也可以通过docker快速搭建。spring-kafka需要pom.xml中增加依赖:<dependency> <gro原创 2020-11-26 16:41:22 · 585 阅读 · 0 评论 -
对比 Netflix Feign 和 OpenFeign
对比 Netflix Feign 和 OpenFeign本文主要描述介绍 Netflix Feign 和 OpenFeign 之间的差异,并比较一下Spring Cloud OpenFeign和使用Spring Cloud Netflix Feign的实现方式。1. FeignFeign提供注解支持,仅通过接口实现客户端,使得写web服务客户端更加容易。最早Feign是有Netflix 公司发布,作为Netflix OSS项目一部分。现在Feign已经是开源项目。1.1 增加依赖首先在pom.xm原创 2020-10-27 11:43:38 · 3757 阅读 · 0 评论
分享