spring
文章平均质量分 74
lang20150928
stay hungry stay foolish
展开
-
关于分布式微服务中的跨域问题案例
通常来说,解决跨域问题需要在服务上添加几个头信息。最简单的办法是在过滤器中指定*来允许所有的请求。不过这样会有一些限制。原创 2022-08-30 11:41:10 · 97 阅读 · 0 评论 -
ParameterizedTypeReference使用
They also enable RestTemplate to read an HTTP response to a generic type (e.g. List), using a ParameterizedTypeReference, a new class that enables capturing and passing generic type info.原创 2022-08-30 10:11:43 · 4244 阅读 · 0 评论 -
MyBatis热部署
监控目标文件,需要依赖<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version></dependency>当文件变动时,获取SqlSessionFactory对象当中的Configuration,并通过反射获取其中的属性mappedStat原创 2021-09-11 16:09:23 · 176 阅读 · 1 评论 -
关于Swagger2中position属性排序的问题
在swagger2当中在简单java类属性上添加ApiModelProperty用于扩展前端文档的显示功能,比如如下配置如下@ApiModelProperty(value = "外部资金账号id", required = true, position = 1)前两个属性value和required没啥问题,但是position其实并不能起到作用。仔细分析源码发现如下几个问题:排序后使用TreeMap保存结果对应源码springfox.documentation.swagger2.mappers.原创 2021-09-10 23:23:09 · 2381 阅读 · 2 评论 -
top-spring-security-architecture
tagsprojectssecurityspring-securityUnderstanding Spring SecurityThis guide is a primer for Spring Security, offering insight into the design and basic building blocks of the framework. We cover only the very basics of application security. H...转载 2021-08-28 21:14:22 · 174 阅读 · 1 评论 -
Repository query keywords
<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jdbc</artifactId> <version>2.1.2.RELEASE</version></dependency>The following table lists the subject keywords ge原创 2021-08-24 16:50:05 · 113 阅读 · 0 评论 -
Spring当中一个巧妙的lazy方式
创建的时候不设置具体的PasswordEncoder,而是将上下文传入进去,在真实调动接口方法的时候才去容器中获取其他的PasswordEncoder实现static class LazyPasswordEncoder implements PasswordEncoder { private ApplicationContext applicationContext; private PasswordEncoder passwordEncoder; LazyPasswordEncoder(Appl原创 2021-07-28 16:16:01 · 101 阅读 · 0 评论 -
Spring AOP编程官方文档解读之操作Advised对象
Spring AOP编程官方文档解读目录文章目录org.springframework.aop.framework.Advised是啥?其实它早已出现在前面了,看一下下面这个类结构图可以看到无论是ProxyFactoryBean还是ProxyFactory最终都实现了这个接口、这个接口中的方法非常的多,我们随便看一下public interface Advised extends TargetClassAware { /** * Return whether the Advised .原创 2021-04-24 14:20:24 · 373 阅读 · 0 评论 -
Spring AOP编程官方文档解读之通过ProxyFactory创建代理
Spring AOP编程官方文档解读目录文章目录通过ProxyFactoryBean来创建代理必须与Spring容器绑定在一起,通过org.springframework.aop.framework.ProxyFactory可以更方便的创建代理而且不需要依赖Spring IoC容器。如下所示ProxyFactory factory = new ProxyFactory(new DemoServiceImpl());factory.addAdvice(new SimpleBeforeAdvic.原创 2021-04-24 14:19:18 · 127 阅读 · 0 评论 -
Spring AOP编程官方文档解读目录
系列文章目录第一章 : Spring AOP编程官方文档解读之切点第二章 : Spring AOP编程官方文档解读之增强第三章 : Spring AOP编程官方文档解读之增强方法参数第四章 : Spring AOP编程官方文档解读之引介增强第五章 : Spring AOP编程官方文档解读之另类切面Advisor第六章 : Spring AOP编程官方文档解读之代理机制第七章 : Spring AOP编程官方文档解读之AspectJ使用篇之@Configurable第八章 : Spring A原创 2021-04-24 09:27:04 · 356 阅读 · 0 评论 -
Spring 5.2.8测试依赖汇总
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0原创 2021-04-21 18:12:48 · 363 阅读 · 0 评论 -
为什么要使用微服务
Spring微服务实战为什么要使用微服务我们正处于历史的拐点,现代社会的几乎所有方面都可以通过互联网连接在一起。任何一个公司,都有可能接触到全球的客户,客户的增长同样带来了挑战。这些挑战意味着以下几点正在影响开发人员思考构建应用程序的方式:复杂度上升,高并发与单个数据库通信并且不与其他应用程序集成的孤立程序已经不再是常态,如今,应用程序不仅需要与多个位于公司数据中心内的服务和数据库通信,还要通过互联网与外部服务提供的服务和数据进行通信。客户期望更快速的交付客户不再希望等待软件包的下一次年度发布原创 2021-04-20 20:08:18 · 171 阅读 · 0 评论 -
Spring微服务实战
微服务初探本系列的版本如下所示 <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-framework-bom</artifactId>原创 2021-04-20 18:39:15 · 80 阅读 · 0 评论 -
一个factory-method引发的依赖注入思考
腾讯课堂某培训机构Spring源码问题集锦说到Spring,谁都能就IOC与DI扯上几段,甚至源码给你秀一波。但是我妨先问上几个问题:以下这个属于依赖注入吗?public class SimpleMovieLister { private MovieFinder movieFinder; @Autowired(required = false) public void setMovieFinder(MovieFinder movieFinder) { thi原创 2021-04-20 15:00:11 · 245 阅读 · 0 评论 -
你真懂循环依赖中缓存的作用?
腾讯课堂某培训机构Spring源码问题集锦也许从学Spring开始,就开始遇到循环依赖这个名字。在官方文档中也有明确提及。从这里可以看出,解决循环依赖可以通过setter注入的方式,何为构造注入、何为setter注入此处不详细解释了。毕竟DI是Spring中必须掌握的重点,参考官方文档即可。如果说如何解决循环依赖,基本上对Spring有一点深入理解的话,就知道setter注入,而且也能说出个一级缓存、二级缓存、三级缓存的玩意。也知道对应的源码如下所示org.springframework.bean原创 2021-04-18 20:46:41 · 251 阅读 · 0 评论 -
关于Spring事件机制的异步监听实现
腾讯课堂某培训机构Spring源码问题集锦有同学提出让老师多讲一点Spring容器中的事件机制。主要的代码就在这一块了。如何使用以及观察者模式,老师都有谈到。但是有一个同学提出如何实现一个异步监听器的时候,老师找到如下事件发布的源码@Overridepublic void multicastEvent(final ApplicationEvent event, @Nullable ResolvableType eventType) { ResolvableType type = (eventTy原创 2021-04-18 14:23:44 · 398 阅读 · 1 评论 -
Lookup方法注入,真的是那样不重要吗
腾讯课堂某培训机构Spring源码问题集锦在Spring当中将用户的配置元数据转化为BeanDefinition之后,后面就会通过这个BeanDefinition创建Bean实例。将基于xml的配置元数据解析为BeanDefinition的过程在方法为BeanDefinitionParserDelegate#parseBeanDefinitionElement,在这里方法中包括如下源码parseLookupOverrideSubElements(ele, bd.getMethodOverrides())原创 2021-04-17 21:48:56 · 135 阅读 · 0 评论 -
关于AllowBeanDefinitionOverriding属性设置问题
腾讯课堂某培训机构Spring源码问题集锦看过上一章的话,应该会对AllowBeanDefinitionOverriding这个属性有一个认识。这个是Spring中关键工厂org.springframework.beans.factory.support.DefaultListableBeanFactory的一个属性,定义如下/** Whether to allow re-registration of a different definition with the same name. */priv原创 2021-04-17 15:43:36 · 957 阅读 · 0 评论 -
注解方式与xml方式相同beanName覆盖注册问题
腾讯课堂某培训机构Spring源码问题集锦在课堂有同学问:如果通过xml和注解同时注册一个bean,哪个会起效?老师回答:如果设置不可以覆盖参数,那么会报错,如果设置可以覆盖,注解的会覆盖xml定义的。首先针对这个答案大致解释一下。这里关于这个是否允许覆盖的参数,是啥呢?在Spring当中注册Bean定义会通过org.springframework.beans.factory.support.DefaultListableBeanFactory#registerBeanDefinition方法来实现的。原创 2021-04-17 14:59:24 · 750 阅读 · 1 评论 -
腾讯课堂某培训机构Spring源码问题集锦
系列文章目录注解方式与xml方式注册问题原创 2021-04-17 11:12:25 · 283 阅读 · 0 评论 -
关于@Configuration注解的思考
package org.spring.boot.example.config;import org.springframework.beans.factory.InitializingBean;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.ApplicationContext;import org.springframework.context.ann原创 2021-02-17 15:00:22 · 176 阅读 · 0 评论 -
Spring自动注入之多方法的选择
假如一个类存在多个构造方法,Spring会选择哪个方法来实例化呢?使用默认的构造方法或者通过Autowire(required=true)来指定的构造方法,那么以下情形呢?在这里在三个构造方法上添加了@Autowired(required = false)注解。你认为在Spring实例化BeanConfig类型bean的时候会调用哪个构造方法呢?@Configurationpublic class BeanConfig { public BeanConfig() { Syste原创 2021-02-15 19:26:24 · 72 阅读 · 0 评论 -
Spring注入之单例bean注入原型bean
文章目录 前言 一、结果分析 二、原理分析 三、流程分析 1、注册阶段 2、实例化阶段 3、调用阶段 总结 前言我们知道在Spring当中bean的Scope类型包含有单例(singleton)和多例(prototype),后者又叫原型。当然,还有request类型、session类型等。其中单例类型是单个Spring容器只存在一个,而原型类型每次从容器中获取都会生成一个新的,因此从容器生命周期来看,单例类型的bean可以认为是longer-lived scoped bean(长生命周期bean)..原创 2021-02-12 22:25:16 · 1803 阅读 · 2 评论 -
Spring注入之方法注入
文章目录 前言 一、打破IOC解决单例bean注入原型bean 二、Lookup方法注入 总结 前言如果提到Spring的话,IOC和DI肯定是最重要的话题。那么Spring当中的方法注入你了解吗?在绝大多次的场景当中,bean都是单例的,所以当一个bean依赖于另一个bean的时候,我们只要简单的定义一个bean为另一个bean的属性即可。但是当bean的scope不相同的时候问题就出现了。比如在一个单例bean中注入一个原型bean,因为容器只会创建这个单例bean一次,也就是只有一次机会设置..原创 2021-02-11 21:30:35 · 186 阅读 · 0 评论 -
动态数据源循环依赖问题
假如在项目中定义动态数据源,以下配置中DynamicDataSource是org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource的子类 @ConfigurationProperties("spring.datasource.source") @Bean public DataSource sourceDataSource() { return DruidDataSourceBuilder原创 2020-12-25 15:37:29 · 2449 阅读 · 3 评论 -
EnableLoadTimeWeaving的一个流程
文章目录 EnableLoadTimeWeaving EnableLoadTimeWeaving EnableLoadTimeWeaving @Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(LoadTimeWeavingConfiguration.class)public @interface EnableLoadTimeWeaving { /** * Whether..原创 2020-12-20 15:40:07 · 1128 阅读 · 1 评论 -
MyBatis工作流程-与Spring整合
系列文章目录MyBatis开发要点MyBatis一级缓存MyBatis二级缓存MyBatis日志模块MyBatis日志增强MyBatis数据源MyBatis缓存模块(二级缓存深入理解)MyBatis反射模块MyBatis工作流程-初始化阶段一MyBatis工作流程-初始化阶段二MyBatis工作流程-代理封装阶段MyBatis工作流程-数据访问阶段MyBatis工作流程-与Spring整合文章目录系列文章目录 前言与MyBatis相关的Beanbean实例化的流程1. Sql原创 2020-12-19 16:12:11 · 185 阅读 · 1 评论 -
Spring JMX编程学习(五)- SpringBoot自动注册
系列文章目录Java管理扩展JMX入门学习Spring JMX编程学习(一)- 手动注册bean到MBeanServerSpring JMX编程学习(二)- 以Bean的方式注册MbeanServerSpring JMX编程学习(三)- 自定义JMX客户端Spring JMX编程学习(四)- MBeans自动探测与注解Spring JMX编程学习(五)- SpringBoot自动注册文章目录系列文章目录 前言 一、Spring Boot中使用JMX的方式 二、客户端调用的问题 三、是否面向原创 2020-11-26 18:37:37 · 608 阅读 · 0 评论 -
Spring JMX编程学习(四)- MBeans自动探测与注解
系列文章目录Java管理扩展JMX入门学习Spring JMX编程学习(一)- 手动注册bean到MBeanServerSpring JMX编程学习(二)- 以Bean的方式注册MbeanServerSpring JMX编程学习(三)- 自定义JMX客户端提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言 一、自动探测1. 基础探测模式2. 注解探测模式 总结前言在前面章节当中,我们已经通过在服务端手动注册MBean,创建MBeanServer,然原创 2020-11-22 16:53:24 · 967 阅读 · 0 评论 -
Spring JMX编程学习(二)- 以Bean的方式注册MbeanServer
系列文章目录Spring JMX编程学习(一)- 手动注册bean到MBeanServer文章目录系列文章目录 前言 一、添加MBeanServer配置1. 注册mbeanServer2. JConsole无法查看问题 总结 前言在上一章当中我们通过Spring中的org.springframework.jmx.export.MBeanExporter类将特定的Bean对象注册到MBeanServer中,通过源码分析,其实主要有以下两步,第一步是在MBeanExporter初始化的时候检查M原创 2020-11-20 15:56:34 · 669 阅读 · 0 评论 -
Spring JMX编程学习(一)- 手动注册bean到MBeanServer
系列文章目录Java管理扩展JMX入门学习文章目录系列文章目录 前言 一、手动将bean导出到JMX1. 引入库2. 创建接口和实现类3. 注册Bean并进行暴露4. 创建一个主类并启动5. 源码分析 总结 前言在上一章当中,我们学习了原生java中JMX的知识,本章开始学习在Spring当中如何使用JMX编程。具体来说,Spring的JMX支持提供了四个核心功能:将任何Spring bean自动注册为JMX MBean灵活的机制来控制您的bean的管理界面通过远程JSR-160连原创 2020-11-19 20:42:40 · 684 阅读 · 0 评论 -
关于ResourceBundle国际化的一些思考
文章目录 前言 一、Java中的国际化 二、一些痛点以及解决方案1.引入库2.读入数据 三、行业内优秀的解决方案1.引入库2.读入数据 总结 前言国际化这个词听起来很高大上,其实所谓的国际化就是针对不同的语言、地区采用不同的提示,比如遇见中国文就是“你好”,如果是美国人就是“Hello”,因为这两个国家的母语不一样,然后即使是同一个国家的不同地区,语言也有可能不一样,比如在中国大陆地区,使用的是简体,而在台湾地区,使用的就是繁体。在Java中处理国际化的主要类是java.util.Resource.原创 2020-11-17 22:09:28 · 897 阅读 · 2 评论 -
Spring AOP编程官方文档解读之AP篇
系列文章目录第一章 : Spring AOP编程官方文档解读之切点第二章 : Spring AOP编程官方文档解读之增强第三章 : Spring AOP编程官方文档解读之增强方法参数第四章 : Spring AOP编程官方文档解读之引介增强第五章 : Spring AOP编程官方文档解读之另类切面Advisor第六章 : Spring AOP编程官方文档解读之代理机制第七章 : Spring AOP编程官方文档解读之AspectJ使用篇之@Configurable第八章 : Spring A原创 2020-09-28 23:15:27 · 349 阅读 · 0 评论 -
Spring AOP编程官方文档解读之ProxyFactoryBean篇
系列文章目录第一章 : Spring AOP编程官方文档解读之切点第二章 : Spring AOP编程官方文档解读之增强第三章 : Spring AOP编程官方文档解读之增强方法参数第四章 : Spring AOP编程官方文档解读之引介增强第五章 : Spring AOP编程官方文档解读之另类切面Advisor第六章 : Spring AOP编程官方文档解读之代理机制第七章 : Spring AOP编程官方文档解读之AspectJ使用篇之@Configurable第八章 : Spring A原创 2020-09-24 14:39:44 · 528 阅读 · 0 评论 -
Spring AOP编程官方文档解读之Advice API篇
系列文章目录第一章 : Spring AOP编程官方文档解读之切点第二章 : Spring AOP编程官方文档解读之增强第三章 : Spring AOP编程官方文档解读之增强方法参数第四章 : Spring AOP编程官方文档解读之引介增强第五章 : Spring AOP编程官方文档解读之另类切面Advisor第六章 : Spring AOP编程官方文档解读之代理机制第七章 : Spring AOP编程官方文档解读之AspectJ使用篇之@Configurable第八章 : Spring A原创 2020-09-23 15:05:19 · 197 阅读 · 0 评论 -
Spring AOP编程官方文档解读之Pointcut API篇
系列文章目录第一章 : Spring AOP编程官方文档解读之切点第二章 : Spring AOP编程官方文档解读之增强第三章 : Spring AOP编程官方文档解读之增强方法参数第四章 : Spring AOP编程官方文档解读之引介增强第五章 : Spring AOP编程官方文档解读之另类切面Advisor第六章 : Spring AOP编程官方文档解读之代理机制第七章 : Spring AOP编程官方文档解读之AspectJ使用篇之@Configurable第八章 : Spring A原创 2020-09-22 19:39:01 · 506 阅读 · 0 评论 -
Spring AOP编程官方文档解读之AspectJ使用篇之LTW
系列文章目录第一章 : Spring AOP编程官方文档解读之切点第二章 : Spring AOP编程官方文档解读之增强第三章 : Spring AOP编程官方文档解读之增强方法参数第四章 : Spring AOP编程官方文档解读之引介增强第五章 : Spring AOP编程官方文档解读之另类切面Advisor第六章 : Spring AOP编程官方文档解读之代理机制第七章 : Spring AOP编程官方文档解读之AspectJ使用篇之@Configurable第八章 : Spring A原创 2020-09-20 00:27:08 · 1036 阅读 · 0 评论 -
Spring AOP编程官方文档解读之AspectJ使用篇之@Configurable
系列文章目录第一章 : Spring AOP编程官方文档解读之切点第二章 : Spring AOP编程官方文档解读之增强第三章 : Spring AOP编程官方文档解读之增强方法参数第四章 : Spring AOP编程官方文档解读之引介增强第五章 : Spring AOP编程官方文档解读之另类切面Advisor第六章 : Spring AOP编程官方文档解读之代理机制提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、使用AspectJ去依赖注入到非原创 2020-09-19 14:35:23 · 555 阅读 · 0 评论 -
Spring AOP编程官方文档解读之代理机制
系列文章目录第一章 : Spring AOP编程官方文档解读之切点第二章 : Spring AOP编程官方文档解读之增强第三章 : Spring AOP编程官方文档解读之增强方法参数第四章 : Spring AOP编程官方文档解读之引介增强第五章 : Spring AOP编程官方文档解读之另类切面Advisor文章目录系列文章目录前言代理的选择问题理解AOP代理编程式创建AspectJ代理总结前言Spring AOP使用JDK动态代理和或者CGLIB来为目标对象创建代理。官方建议,无论原创 2020-09-18 22:47:06 · 161 阅读 · 0 评论 -
Spring AOP编程官方文档解读之另类切面Advisor
系列文章目录第一章 : Spring AOP编程官方文档解读之切点第二章 : Spring AOP编程官方文档解读之增强第三章 : Spring AOP编程官方文档解读之增强方法参数第四章 : Spring AOP编程官方文档解读之引介增强提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言总结前言从前面几章我们不难看出 Aspect(切面) = PointCut(切入点)+ Advice(增强)。所谓的增强也就是在被增强的方法的前后执行特定的逻辑原创 2020-09-15 23:53:51 · 653 阅读 · 0 评论