spring
文章平均质量分 63
起风哥
这个作者很懒,什么都没留下…
展开
-
数据库敏感字段脱敏
如果你有申请过一些软件资质,应该会被要求敏感数据进行加密,比如密码不能明文,用户的手机号,身份证信息,银行卡号信息,等等都需要以加密的形式放在数据库中,防止因系统漏洞导致被拖库,黑客直接就能拿到这些信息,给用户的人身财产安全带来严重的隐患。脱敏实际就是加密,这边分为两种类型不可逆 如密码这种直接采用不可逆的加密方式可逆的 如手机号,身份证,银行卡这种信息需要密文存储,但是需要时必须能解密。原创 2023-02-17 10:43:17 · 3205 阅读 · 0 评论 -
有了importSelector为什么还要有importBeandefinitionRegistrar
那么自定义BeanDefinition又是为了什么呢?前面说到自定义注解可以通过ImportSelector扫描进行注册,但是假如我的自定义注解中有一些属性是需要在生成bean的时候进行配置的呢?该怎么处理?这时使用ImportSelector是实现不了的。通过以上的说明,我相信大家已经有答案了ImportSelector 更多的时候是使用spring已有的BeanDefinition解析机制直接处理成BeanDefinition的场景。原创 2023-02-15 12:51:41 · 545 阅读 · 0 评论 -
easy-excel通用异步导入导出神辅助
async-excel是easy-excel的辅助组件,抽取通用异步逻辑,通过引入一个starter配置个数据源就可以让导入导出变成异步,无需额外的任何代码,不改变easy-excel的任何特性。async-excel基于easy-excel抽取了异步逻辑,并且使用了sping的父子容器,适配了springboot-starter,使用该组件非常简单。当前版本1.1.0。为了支持业务上日益变态的需求,对async-excel进行了一轮重构。这个类带了两个map 一个是表头的map,一个是数据的map。原创 2023-02-01 18:31:17 · 2775 阅读 · 0 评论 -
项目中生成MultipartFile并调用其它服务
微服务项目中服务调用需要生成multipartFile问题的几种解决方案。1、引入test包,使用test包中的MockMultipartFile。2、自定义实现一个MockMultipartFile(推荐)原创 2022-07-19 10:21:01 · 1417 阅读 · 0 评论 -
spring异步线程传递线程上下文
我们直接使用@Async注解,当然你也可以直接使用线程池,效果是一样的首先我们创建ContextDecorator实现TaskDecorator接口package com.qimo.omsa.demo.thread;import java.util.Map;import org.springframework.core.task.TaskDecorator;/** * @Description TODO * @Author 姚仲杰#80998699 * @Date 2022/1/30 1原创 2022-03-07 20:41:25 · 1225 阅读 · 0 评论 -
BeanDefinition说明
BeanDefinition继承自AttributeAccessor, BeanMetadataElement两个顶层接口AttributeAccessor 接口用于提供 BeanDefinition 的描述信息(而 BeanDefinition 是用于描述bean的信息)如用于描述 BeanDefinition 的 FULL 和 LITE 的属性就是设置在这里BeanMetadataElement 接口提供了一个 geSource() 方法用于跟踪该 BeanDefinition 的来源信息Abs原创 2022-01-27 15:59:53 · 253 阅读 · 0 评论 -
springcloud推荐使用bootstrap开头的配置文件
在spring体系中有以下4个常用配置文件application.propertiesapplication.ymlbootstrap.propertiesbootstrap.yml在springboot框架下你选用一个文件配置就行了,加载顺序为#mermaid-svg-48oxxpgCRXoWiEM7 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#原创 2021-06-27 00:07:14 · 1377 阅读 · 0 评论 -
springboot报错`check whether you have multiple ContextLoader* definitions in your web.xml!`
我们都知道web.xml是应用程序与容器的一个纽带缺少它你的应用程序便无法在容器中跑起来。那么web.xml 当然是由容器提供给外部应用程序的一个通道了,所以是否需要web.xml 还是由容器决定的,tomcat容器基于servlet规范编写的,所以最终决定容器如何加载应用理论上来说是由servlet规范的决定的。sevlet3.0规定对于每一个应用启动时,容器会创建一个ServletContainerInitializer 实例与之对应,而应用需要实现具体的ServletContainerInitial原创 2021-06-19 20:20:49 · 1195 阅读 · 0 评论 -
springIOC的一些扩展点解读
Spring扩展点1、SpringIOC扩展点1.1、bean的生命周期BeanNameAware's {@code setBeanName}BeanClassLoaderAware's {@code setBeanClassLoader}BeanFactoryAware's {@code setBeanFactory}EnvironmentAware's {@code setEnvironment}EmbeddedValueResolverAware's {@code s原创 2021-03-16 15:05:40 · 213 阅读 · 0 评论 -
SpringMVC的一些扩展点解读
Spring扩展点1、springMVC扩展1.1、SpirngMVC–请求映射扩展直接继承自RequestMappingHandlerMapping即可,整个mvc最重要的两个类中的一个作用就是生成路径到类到方法的映射容器,另一个是RequestMappingHandlerAdapter,就是请求调用过程的配对。1.2、SpirngMVC–拦截器Interceptor接口HandlerInterceptorpublic interface HandlerInterceptor {原创 2021-03-15 18:19:30 · 1041 阅读 · 0 评论 -
springboot大于1.3之后RestTemplate自动配置
/* * Copyright 2012-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http:/原创 2021-01-19 11:10:54 · 499 阅读 · 0 评论 -
spring项目优雅关闭线程池
ThreadPoolExecutor 介绍java中线程池的三个方法shutdown()、shutdownNow()和awaitTermination()shutdown:拒绝新任务提交到线程池待执行与正在执行的任务继续执行shutdownNow:拒绝提交新任务到线程池取消队列中等待执行的任务尝试取消正在执行任务awaitTermination(long timeOut, TimeUnit unit):阻塞线程等待所有待执行以及正在执行的任务执行完成或者等到超时或者线程被中原创 2020-07-30 18:10:25 · 1915 阅读 · 0 评论 -
spring到底什么时候进行bean实例化
这个问题看似简单实则坑多。1、很早以前有人告诉我说,spring是在你使用该bean的时候,通过动态代理给你实例化出来的。2、后来又有人告诉我说,spring是在容器启动的时候就将bean都给你实例化好了。那么究竟哪个正确呢?其实这么回答都不正确,spring对bean的初始化其实是有条件的。首先判断是单例还是多例,如果是多例的情况下,肯定是在你第一次使用该bean的时候初始化无疑。但是如果是单例的情况下又分为两种情况:一是当你lazy-init懒加载设置为true时是在你第一次使用的时候原创 2020-06-26 22:08:00 · 2288 阅读 · 0 评论 -
从args讲到springboot全套配置体系架构(六)
目录spring需要几个重要全局变量呢?mvc的全局配置ioc的全局配置spring需要几个重要全局变量呢?我们知道spring的模块中有ioc和mvc那么我们完成一个请求具体的整个流程是什么样呢?对我们还是从配置来讲mvc的全局配置我们知道一个请求从浏览器发起,到容器再到mvc,那么mvc中肯定需要一个地方保存请求路径与controller的映射的配置吧我们假设这个配置是一个map&l...原创 2019-12-03 10:13:24 · 174 阅读 · 0 评论 -
从args讲到springboot全套配置体系架构系列
前言无论你什么语言,什么框架,什么系统、都离不开的一个东西就是配置,配置可以使你的语言,框架、系统变得更灵活,更完美,更强大。ioc也是全套依托于配置体系而来得。所以要想深入了解spring得架构,需要从配置文件开始了解起。配置不是spring得专有名词,也不是java语言得专有名词,但是我们得去了解java得配置体系。绞尽我们得脑汁想想配置文件可以从哪里来?main 函数得传入参数j...原创 2019-11-10 15:03:26 · 370 阅读 · 0 评论 -
从args讲到springboot全套配置体系架构(一)
目录前言java的main函数args 有什么应用场景呢?System.setProperty是什么?前言无论你什么语言,什么框架,什么系统、都离不开的一个东西就是配置,配置可以使你的语言,框架、系统变得更灵活,更完美,更强大。spring全套框架最核心得部分不是 ioc 不是aop 而是它得配置体系。所有ioc 也是全套依托于配置体系而来得。所以要想深入了解spring得架构,需要从配置文件...原创 2019-11-10 15:02:33 · 870 阅读 · 0 评论 -
从args讲到springboot全套配置体系架构(五)
目录五、springboot中第三方组件如何实现自动配置spring-boot-autoconfigure-2.1.9.RELEASE.jarRedisProperties@EnableConfigurationProperties注解@Import 注解简述五、springboot中第三方组件如何实现自动配置我们知道springboot 只需要引入一个starter就可以完成一个组件的集成,...原创 2019-11-10 15:03:12 · 477 阅读 · 0 评论 -
从args讲到springboot全套配置体系架构(二)
目录回顾Spring框架如何读取配置文件?回顾在上文中讲到了系统的环境变量和属性,system.env和system.properties.这是java的两个全局变量。也就是说在java的应用程序中,你在任何为止都能取到其中的值。并且我们可以通过set方法将(k,v)放到这两个全局变量中。并且我们也知道了配置文件几乎可以从任何地方来,任何方式来,具体看自己的需求是什么样了。那我们现在来看...原创 2019-11-10 15:02:45 · 266 阅读 · 0 评论 -
从args讲到springboot全套配置体系架构(四)
目录为什么需要分配置文件?@PropertySource注解@PropertiySources注解注意的点为什么需要分配置文件?我们的项目可能使用了各种各样的组件,比如oss 比如 redis 比如 mq 比如对接的第三方api信息等等想象一下如果你把这些配置统统装到application.properties 中,会不会显得很臃肿?这就需要我们自定义配置文件了,那么我们自定义的配置文件如...原创 2019-11-10 15:03:01 · 353 阅读 · 0 评论 -
从args讲到springboot全套配置体系架构(三)
springboot 配置文件加载顺序文件分类按文件名分类按后缀名分类bootstrap 文件加载顺序application 加载顺序如何验证?配置中心文件分类按文件名分类可以分为 bootstrap 和 application按后缀名分类可以分为yml 和properties 当然这里还有一个 yaml 它其实与yml 是同一个东西,yml是 yaml 更简单的写法。所以我们肯...原创 2019-11-10 15:02:52 · 207 阅读 · 0 评论 -
springboot获取ApplicationContext的几种方式
工具类package com.yzj.learn.common.utils;import org.springframework.context.ApplicationContext;public class SpringContextUtil { private static ApplicationContext applicationContext; pub...原创 2019-10-29 16:58:44 · 4337 阅读 · 0 评论 -
ApplicationContext解析
ApplicationContext 这个接口作为作为spring框架下最重要的一个接口他提供了能力结构图如上。他自己提供了以下方法public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ...原创 2019-10-25 16:38:34 · 572 阅读 · 0 评论 -
Spring的BeanDefinition解析
BeanDefinition 就是在bean被实例化之前与文件加载之后的一个中间产物,在这个中间过程用户可以对BeanDefinition做一些变更操作.后面实例化通过反射实现,实例化时需要的属性均来之BeanDefinitionBeanDefinition 继承了AttributeAccessor, BeanMetadataElement这两个类,可以处理一些属性配置比如Xml配置中的一些信...原创 2019-10-25 10:52:17 · 499 阅读 · 0 评论 -
springboot内置tomcat文件上传的坑
如果你能看到这篇文章你应该是报了如下错误The temporary upload location [/tmp/tomcat.7368392676262345132.8080/work/Tomcat/localhost/ROOT] is not valid此错误的特征是刚启动一切都正常,运行几天后就突然间出现,然后各种百度都找不到答案。出现这个错误的原因是tomcat 默认临时文件目录...原创 2019-10-22 16:08:17 · 8983 阅读 · 0 评论 -
hibernate 校验框架注解大全
spring中继承了 hibernate 校验框架,使用的时候只要在实体类上加以下注解,请求的地方加@Valid注解如下 public User getUser(@Valid @RequestBody User userPamas) 新版的新增加了几个注解 可以点到包中查看注解 适用的数据类型 说明 @AssertFalse Boolean, boolean ...原创 2019-08-08 12:07:52 · 1308 阅读 · 0 评论 -
hibernate 校验框架对于嵌套对象的校验
@RestControllerpublic class UserController { @PostMapping("/user/getUser") //这里加上@Valid public User getUser(@Valid @RequestBody Page<User> userPamas){ User user=new User(...原创 2019-08-08 15:18:45 · 1750 阅读 · 0 评论 -
security项目下使用@Profile 注解实现开发环境不拦截请求
我们来看下项目结构配置类分两个包prod 、testWebSecurityProdConfig.java/** * @desc 生产配置类 * @Auth 姚仲杰 * @Date 2019/8/15 9:54 **/@Configuration@EnableWebSecurity@Profile(value = {"prod"})public class Web...原创 2019-08-15 10:06:37 · 1727 阅读 · 0 评论 -
springboot打成jar包后文件下载问题
首先springboot项目使用内置tomcat打成jar包后如果将文件放在resource下 需要使用 如下方式读取 InputStream inputStream = null; ResourceLoader resourceLoader = new DefaultResourceLoader(); Resource resource=res...原创 2019-08-22 22:55:23 · 2087 阅读 · 0 评论 -
spring.profiles.active分环境配置
1、application-prod.properties 生产配置启动脚本nohup java -jar -Dspring.profiles.active=prod xxx.jar > /dev/null 2>&1 &2、application-dev.properties 开发配置直接在开发工具得jvm 参数中配置-Dspring.profi...原创 2019-09-03 11:21:10 · 2530 阅读 · 0 评论 -
你真的会用springboot吗?(使用@Profile注解让配置类分环境配置)
在springboot下,很多得文件配置开始转为配置类配置,那么在配置类下如何分环境配置呢?给大家介绍得这个注解@Profile(value={}) 参数是个字符串数组,用逗号隔开,它内部关联到 spring.profiles.active这个配置结合spring.profiles.active分环境配置这篇文章与security项目下使用@Profile 注解实现开发环境不拦截请求,...原创 2019-09-03 11:42:26 · 2546 阅读 · 0 评论 -
springboot集成Hibernate校验框架
spring-boot-starter-web 已经集成Hibernate校验框架。1、配置类配置@Configurationpublic class ValidatorConfig{ @Bean public static Validator validator() { return Validation .byP...原创 2019-09-21 23:34:51 · 248 阅读 · 0 评论 -
spring扩展点(一、Spring Bean扩展接口)
1、InitialingBeanimport org.springframework.beans.factory.InitializingBean;/** * @Auth yaozhongjie * @Date 2019/7/3 11:55 **/public class AAA implements InitializingBean { @Override pu...原创 2019-07-03 15:03:50 · 752 阅读 · 0 评论