
spring
文章平均质量分 83
spring
crayon-shin-chan
这个作者很懒,什么都没留下…
展开
-
oauth授权码模式请求
1.获取授权码http://localhost:8080/oauth/authorize?client_id=shop&redirect_uri=http://localhost:3000&response_type=code&scope=readGET /oauth/authorize?client_id=shop&redirect_uri=http:...原创 2018-11-28 16:07:26 · 3712 阅读 · 0 评论 -
wireshark抓取eureka请求包
1.注册请求POST /eureka/apps/EUREKA-SERVICE HTTP/1.1Accept-Encoding: gzipContent-Type: application/jsonAccept: application/jsonDiscoveryIdentity-Name: DefaultClientDiscoveryIdentity-Version: 1.4Di...原创 2018-11-27 16:01:01 · 570 阅读 · 0 评论 -
spring源码解析之从AbstractApplicationContext#refresh()初始化单例过程看Bean的创建过程
1.简介AbstractApplicationContext#refresh()方法的最后一步是初始化所有单例 /** * 完成此上下文的bean工厂的初始化,初始化所有剩余的单例bean。 * @param beanFactory */ protected void finishBeanFactoryInitialization(ConfigurableListableBeanFactory beanFactory) { /** 为此上下文初始化转换服务{@link.原创 2020-10-16 14:59:21 · 1433 阅读 · 1 评论 -
依赖包版本后缀含义
RC:(Release Candidate)Candidate是候选人的意思,用在软件上就是候选版本。Release是发行、发布的意思。Release.Candidate.就是发行候选版本。和Beta版最大的差别在于Beta阶段会一直加入新的功能,但是到了RC版本,几乎就不会加入新的功能了,而主要着重于除错!GA:(GenerallyAvailable)在很多软件下载的时候,你会发觉标...原创 2020-10-14 10:38:42 · 706 阅读 · 0 评论 -
spring源码解析之DeferredImportSelector执行延迟导入配置类
1.简介之前在对象@Configuration注解配置类bean定义的解析中,最后有一步是执行延迟选择器导入 /** * 扫描{@link BeanDefinitionHolder},填充{@link ConfigurationClass} * @param configCandidates */ public void parse(Set<BeanDefinitionHolder> configCandidates) { /* 解析配置类bean定义 *.原创 2020-10-14 23:52:56 · 956 阅读 · 0 评论 -
spring源码解析之ConfigurationClassPostProcessor对@Configuration注解的处理
1.简介之前讨论过,spring框架在读取配置类Bean定义时,会预先注册一系列BeanDefinitionRegistryPostProcessor、BeanPostProcessor用来处理@Configuration、@Autowired等注解其中ConfigurationClassPostProcessor就是用来处理@Configuration注解,读取配置类,注册配置的Bean定义。2.继承结构实现了BeanDefinitionRegistryPo...原创 2020-10-14 19:40:12 · 1601 阅读 · 4 评论 -
spring源码解析之注解配置后处理器对@Configuration、@Autowired、@Value、@Inject、@PreDestroy、@PostConstruct等注解的处理
1.简介spring框架在从配置类中读取bean定义时,会对一些注解进行处理,比如遇到@Configuration注解,需要读取配置类中@Bean注解的方法,定义为Bean,遇到@Autowired注解,需要自动装配依赖。这些都是通过BeanDefinitionRegistryPostProcessor、BeanPostProcessor等后处理器来实现的1.1AnnotatedBeanDefinitionReaderAnnotatedBeanDefinitionRe...原创 2020-10-14 17:07:18 · 1629 阅读 · 2 评论 -
spring源码解析之AnnotationConfigWebApplicationContext#loadBeanDefinitions()方法加载BeanDefinition过程
1.简介AnnotationConfigWebApplicationContext是常用的上下文容器类,在spring boot没有流行的时候,以前用tomcat在web.xml配置spring容器时,如果使用Java注解的配置类,一般都会使用这个上下文类顾名思义,AnnotationConfig代表注解配置,Web代表具有web功能,可以访问ServletContext。这是这个上下文的基本功能。之前在spring源码解析之AbstractApplicationContext#..原创 2020-10-13 14:26:01 · 2037 阅读 · 0 评论 -
spring源码解析之AbstractApplicationContext#refresh()方法刷新上下文过程
1.简介方法的定义 /** * 加载或刷新配置的持久性表示形式,它可能来自基于Java的配置,XML文件,属性文件,关系数据库模式或其他格式。 * 由于这是一种启动方法,因此,如果失败,则应销毁已创建的单例,以避免资源悬空。 * 换句话说,在调用此方法之后,应实例化所有单例或根本不实例化。 * @throws BeansException 如果无法初始化bean工厂 * @throws IllegalStateException 如果已经初始化并且多次刷新.不支持尝.原创 2020-10-12 19:53:32 · 935 阅读 · 1 评论 -
spring boot实战之集成druid-spring-boot-starter
1.简介druid-spring-boot-starter是druid数据库连接池的spring starter,里面包含了以下自动配置自动配置类 功能 DruidDataSourceAutoConfigure 配置数据源DruidDataSource DruidSpringAopConfiguration 配置spring bean的运行时监控切面 DruidStatViewServletConfiguration 配置监控界面servlet DruidWe原创 2020-09-17 12:29:05 · 1127 阅读 · 0 评论 -
spring工具使用spring-core之ResolvableType
1.根据类型获取1.1 根据Class获取ResolvableType rt = ResolvableType.forType(String.class);Assertions.assertEquals(rt.getType(),String.class);log.info(rt.toString());这种方式无法解析泛型ResolvableType rt = ResolvableType.forType(new HashMap<String,String>().g.原创 2020-09-04 13:12:53 · 543 阅读 · 0 评论 -
spring源码解析spring-core之ResolvableType
注释源码:https://github.com/crayon-shin-chan/spring-framework/tree/comment1.简介封装了java.lang.reflect.Type,提供以下访问权限:父类类型 :getSuperType() 接口类型 :getInterfaces() 泛型类型 :getGeneric(int...)ResolvableType可以从以下方法获取:从字段获取:forField(Field) 从方法参数获取:forMethodP..原创 2020-09-04 10:37:51 · 379 阅读 · 0 评论 -
spring源码解析之ApplicationContext及其继承结构
1.简介org.springframework.context.ApplicationContext是spring容器的中心接口,为应用程序提供配置。在应用程序运行时为只读,但是如果实现支持,则可以重新加载。ApplicationContext提供了以下功能:用于访问应用程序组件Bean的工厂方法。继承自org.springframework.beans.factory.ListableBeanFactory 以通用的方式加载资源文件的能力,继承自org.springframework.core.原创 2020-08-30 14:41:55 · 577 阅读 · 0 评论 -
记一个FilterRegistrationBean注册失败问题
1.问题今天写了一个Filter注册,但是调试发现Filter并没有注册到Tomcat里@Bean public FilterRegistrationBean<ApplicationInitFilter> applicationFilterRegistration(){ FilterRegistrationBean<ApplicationInitFilter> registration = new FilterRegistrationBean();原创 2020-08-29 22:08:15 · 1982 阅读 · 0 评论 -
记一个spring缓存Cacheable注解key设置问题
spring的Cacheable注解用来设置缓存,其中的key属性为spel表达式,如果要设置常量,则需要用''包裹,如:@Cacheable(value = CacheConstant.APPLICATION,key = "'id_map'")此处的"'id_map'"代表key设置了一个常量,如果没有'',则会报错org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or fiel.原创 2020-08-12 22:37:38 · 6139 阅读 · 0 评论 -
spring源码解析spring-core之order排序
1.排序说明spring在执行很多逻辑时都需要对bean实例集合进行排序,根据指定的优先级执行逻辑,spring内排序有关的有以下类 org.springframework.core.Ordered:用于定义指定实例order值得接口 org.springframework.core.PriorityOrdered:用于定义指定实例order值,且优先级高于Ordered接口 org.springframework.core.OrderComparator:支持Or...原创 2020-07-31 00:07:58 · 1924 阅读 · 0 评论 -
spring boot实战之配置静态资源路径
1.SpringBoot配置文件spring: mvc: static-path-pattern: /** resources: static-locations: classpath:/static第一个指定的static-path-pattern为访问静态资源的路径,这个只能配置一个第二个static-locations指定静态资源在服务器上的位置cl...原创 2020-05-06 19:13:46 · 1535 阅读 · 0 评论 -
spring boot实战之集成swagger2
目前spring boot并没有集成swagger2的starter,需要手动配置集成一、引入依赖使用gradle引入依赖 compile('org.springframework.boot:spring-boot-starter-web:2.2.2.RELEASE') compile group: 'io.springfox', name: 'springfo...原创 2019-12-21 20:22:48 · 265 阅读 · 0 评论 -
BeanDefinition
BeanDefinition是spring容器的核心数据接口,定义了bean的依赖关系以及初始化信息等package org.springframework.beans.factory.config;import org.springframework.beans.BeanMetadataElement;import org.springframework.beans.MutableP...原创 2018-10-03 23:55:36 · 1213 阅读 · 0 评论 -
Spring for Apache Kafka 2.2.6 文档
1.前言Spring for Apache Kafka项目将核心Spring概念应用于基于Kafka的消息传递解决方案的开发。 我们提供“模板”作为发送消息的高级抽象。 我们还为消息驱动的POJO提供支持。2.什么是新的?2.1。 2.2以来的新功能2.1本节介绍从2.1版到2.2版所做的更改。2.1.1。 Kafka客户端版本此版本需要2.0.0 kafka-clients或更高...翻译 2019-06-11 10:32:09 · 1496 阅读 · 0 评论 -
spring-kafka消费者使用
1.依赖dependencies { compile('org.springframework.boot:spring-boot-starter-web') compile group: 'org.springframework.kafka', name: 'spring-kafka' compile group: 'org.apache.kafka', name: 'kafka-st...原创 2019-06-11 15:23:14 · 1824 阅读 · 1 评论 -
spring-kafka生产者使用
1.依赖dependencies { compile('org.springframework.boot:spring-boot-starter-web') compile group: 'org.springframework.kafka', name: 'spring-kafka' compile group: 'org.apache.kafka', name: 'kafka-st...原创 2019-06-11 15:54:09 · 567 阅读 · 0 评论 -
spring源码解析之工厂加载机制 spring.factories
1.工厂加载机制spring framework有一种工厂加载机制,即将实现类根据接口-实现类的关系放在配置文件中,然后一次获取指定接口的多个实例使用时多个实例同时使用2.spring.factories在spring boot的源码目录下有这样一份文件:spring-boot-source\spring-boot-project\spring-boot-autocon...原创 2019-07-05 14:41:38 · 2187 阅读 · 0 评论 -
spring源码解析之BeanFactory及其继承结构
BeanFactory为spring容器的顶级接口,定义了容器的基本操作package org.springframework.beans.factory;import org.springframework.beans.BeansException;import org.springframework.core.ResolvableType;import org.springfra...原创 2018-10-03 22:24:37 · 284 阅读 · 0 评论