
Spring
文章平均质量分 68
inrgihc
这个作者很懒,什么都没留下…
展开
-
Hazelcast 在springboot下的使用集成
Hazelcast是一款由Hazelcast公司开发的基于jvm环境的为各种应用提供分布式集群服务的分布式缓存解决方案。可以嵌入到java、c++、.net等开发的产品中使用。其实我们最简单的一个理解就是,以Map接口为例,在Hazelcast中创建了一个map之后,当我们通过Hazelcast创建一个Map实例后,我们在节点A调用 Map::put("A","A_DATA") 方法添加数据,然后可以在节点B使用 Map::get("A") 获取到值为"A_DATA" 的数据。原创 2022-12-22 20:46:13 · 2318 阅读 · 1 评论 -
Spring中SecurityContextHolder的异步使用解说
Spring中SecurityContextHolder的异步使用解说原创 2022-09-17 00:02:53 · 1643 阅读 · 1 评论 -
Spring容器中Bean的生命周期内所有可扩展的点
1.背景在这篇文章里,我总结了几乎Spring & Springboot所有的扩展接口,以及各个扩展点的使用场景。并且整理出了一个bean在spring内部从被加载到最后初始化完成所有可扩展点的顺序调用图。从而我们也能窥探到bean是如何一步步加载到spring容器中的。2.可扩展的接口启动调用顺序图以下是我整理的spring容器中Bean的生命周期内所有可扩展的点的调用顺序,下面会一个个分析3.ApplicationContextInitialize转载 2021-11-09 10:02:05 · 908 阅读 · 0 评论 -
SpringBoot中同一格式的RESTful接口设计
一、背景前端和后端进行交互,前端按照约定请求URL路径,并传入相关参数,后端服务器接收请求,进行业务处理,返回数据给前端。通常,后端会以统一风格格式返回给前端。如:{ code:integer, #返回状态码 message:string, #返回信息描述 data:object #返回值}二、实现思路1、定义一个注解@ResponseResult,表示这个接口返回的值需要包装一下2、拦截请求,判断此请求是否需要被@ResponseResult注解原创 2021-05-06 22:38:47 · 386 阅读 · 0 评论 -
使用策略模式和工厂模式实现IF/ELSE的重构
一、问题背景重构大量的if else代码肯定是要用策略模式的,这个问题主要想知道你是否了解策略模式。可能有一部分人觉得策略模式并不好好,还不如if else看着清晰。用设计模式重构与否的关键是,每个分支的行数是否过多。如果一个分支的代码行数在几十行,确实没有必要重构。如果一个分支的代码行数在几百行,上千行(不用和我杠怎么能写出一个分支几百行的代码,是不是能力的问题,因为比较复杂的系统确实有这种情况),以某个项目对接微信聊天信息为例,有一部分业务逻辑是这样的: String msgType原创 2021-05-06 14:47:33 · 751 阅读 · 3 评论 -
Springboot 使用@Valid+BindingResult进行controller层接口参数校验
一、背景在基于SpringBoot编写RESTful接口时,常常需要对接口的入参格式或数据范围进行参数校验,通过常规的if/else检查会使代码变得非常臃肿,那么可以使用@Valid+BindingResult进行controller层接口参数校验。二、实体属性上的校验规则1、空检查@NotEmpty:用在集合类上面;不能为null,而且长度必须大于0@NotBlank: 用在String上面;只能作用在String上,不能为null,而且调用trim()后,长度必须大于0@No..原创 2021-03-27 23:35:28 · 1875 阅读 · 0 评论 -
Java 应用监控平台JavaMelody之Spring Boot整合
Spring Boot项目中使用JavaMelody进行监控,可以使用spring-boot-starter进行快速整合。首先,使用maven引入spring-boot-starter:<dependency> <groupId>net.bull.javamelody</groupId> <artifactId>javamelody-spring-boot-starter</artifactId> <version>1.原创 2020-12-10 13:48:14 · 813 阅读 · 0 评论 -
阿里开源的 Nacos微服务管理之SpringBoot实践
二、SpringBoot 实战Nacos主要的功能有配置中心和注册中心。配置中心:通过在Nacos上配置用户名,在不重启微服务的情况下实现动态获取配置信息功能。 注册中心:创建两个微服务:服务提供者和服务消费者,实现微服务间调用。消费者要调用提供者的接口,只需要声明提供者的微服务名称和接口的请求地址,Nacos就可准确地找到到对应的接口。2.1 运行 Nacos下载地址:https://github.com/alibaba/nacos/releasesunzipnacos-s...转载 2020-12-07 10:46:25 · 451 阅读 · 0 评论 -
基于SpEL的SpringBoot含有动态参数的日志记录与管理的实现
一、功能介绍在SpringBoot的项目应用中,常常需要记录日志到数据库中,例如系统访问日志(登录日志)、用户操作日志等,日志文本中需要含有动态的参数(发送http请求的请求参数),此情景下,可基于Spring Expression Language的动态日志信息记录功能。二、需求场景场景需求如下:package com.tang.demo.controller;import javax.validation.Valid;import org.springframework.validati原创 2020-12-03 09:49:57 · 1139 阅读 · 0 评论 -
springboot——@EnableConfigurationProperties使用与分析
一、前言用springboot开发的过程中,我们会用到@ConfigurationProperties注解,主要是用来把properties或者yml配置文件转化为bean来使用的,而@EnableConfigurationProperties注解的作用是@ConfigurationProperties注解生效。如果只配置@ConfigurationProperties注解,在IOC容器中是获取不到properties配置文件转化的bean的,当然在@ConfigurationProperties加入转载 2020-11-16 18:08:41 · 14947 阅读 · 0 评论 -
给你一份Spring Boot知识清单
在过去两三年的Spring生态圈,最让人兴奋的莫过于Spring Boot框架。或许从命名上就能看出这个框架的设计初衷:快速的启动Spring应用。因而Spring Boot应用本质上就是一个基于Spring框架的应用,它是Spring对“约定优先于配置”理念的最佳实践产物,它能够帮助开发者更快速高效地构建基于Spring生态圈的应用。那Spring Boot有何魔法?自动配置、起步依赖、Actuator、命令行界面(CLI) 是Spring Boot最重要的4大核心特性,其中CLI是Spring Bo转载 2020-05-30 20:22:33 · 174 阅读 · 0 评论 -
Oracle数据库在Java编程中获取默认的Schema名称的方法
一、SQL语句获取默认Schema名称的方法select sys_context('USERENV', 'CURRENT_SCHEMA') as schema_name from dual二、Java编程中获取默认的Schema名称的方法在Spring中,org.springframework.jdbc.core.metadata.OracleTableMetaDataProvider里提供的方法如下: private static String lookupDefaultSchema(原创 2020-05-21 14:29:31 · 1729 阅读 · 1 评论 -
Spring集成tomcat作为web服务器与SpringBoot的WEB服务实现研究
一、 问题SpringBoot默认使用Tomcat作为servlet容器的web服务器,而通常tomcat的servlet容器需要使用web.xml来进行配置,但在SpringBoot中却找不到任何xml相关的配置,那么是怎么将tomcat嵌入到程序中的呢?二、 原理Tomcat自7.0版本开始已经完全支持Servlet3.0。Servlet3.0规范的一个主要目标是无需手动...原创 2020-05-05 15:19:48 · 1997 阅读 · 0 评论 -
基于Spring-AOP的APIs进行的切面编程示例
一、背景在Spring的官方文档里,其中《Spring AOP APIs》一章里讲述了使用Spring-AOP的API进行切面编程的方法。地址如下:https://docs.spring.io/spring/docs/5.2.6.RELEASE/spring-framework-reference/core.html#aop-api于是简单写了个DEMO以加深巩固;二、说明使用...原创 2020-05-05 00:58:10 · 232 阅读 · 0 评论 -
Java编程之创建对象——Objenesis简单使用
一、背景最近在研读Spring的官方文档,当在对照Spring源码时,发现了Objenesis的字样,于是谈谈究竟:package org.springframework.aop.framework;import java.lang.reflect.Constructor;import org.apache.commons.logging.Log;import org.apac...原创 2020-05-05 00:15:30 · 1489 阅读 · 0 评论 -
Spring中使用@Import和ImportBeanDefinitionRegistrar动态注册bean
ImportBeanDefinitionRegistrar接口是也是spring的扩展点之一,它可以支持我们自己写的代码封装成BeanDefinition对象;实现此接口的类会回调postProcessBeanDefinitionRegistry方法,注册到spring容器中。把bean注入到spring容器不止有 @Service @Component等注解方式;还可以实现此接口,即:Imp...转载 2020-05-02 20:36:21 · 784 阅读 · 0 评论