dubbo番外篇-bug之【aop失效】

    本文浅述:在使用dubbo时,spring aop失效问题。如果你也遇到该问题,先检查是否使用@Reference注入dubbo服务的。

场景还原

    版本:我使用的dubbo版本是2.6.

阅读全文

no-title

阅读全文

spring源码之IOC - 注解 - 扫描指定的包

    AnnotationConfigApplicationContext另一种方式,可以直接传入所需扫描的包。该容器会将扫描该包及其子包下所有类,并通过默认的过滤器将配置了@Component、@Service等注解的类转换成BeanDefinition,并注册。

阅读全文

spring源码之IOC - 注解 - 注册指定bean定义

    上一章总结到,AnnotationConfigApplicationContext提供两种方式注册bean,一是注册指定的bean,二是扫描指定的包。本章主要描述前者的过程。

注册指定的bean

    AnnotatedBeanDefinitionReader.register()向容器注册指定bean。该方法完成整个过程的调用,其总结步骤如下

阅读全文

spring源码之IOC - 注解 - 容器初始化

    为了简化bean的配置,spring提供了注解方式,用来取代xml配置文件。在spring中管理注解的bean定义容器有两个:AnnotationConfigApplicationContext、AnnotationConfigWebApplicationContext,两者的用法以及对注解的处理几乎没有区别。这里以AnnotationConfigApplicationContext为例。

阅读全文

spring源码之IOC - xml - 注册BeanDefinition

    在上面几章,描述了整个xml解析成BeanDefinition的过程。还剩余最后一个步骤就是向IOC中注册BeanDefinition。回到DefaultBeanDefinitionDocumentReader中,通过BeanDefinitionParserDelegate.parseBeanDefinitionElement()获得BeanDefinitionHolder,再会通过BeanDefinitionReaderUtils.registerBeanDefinition()将其注册。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static void registerBeanDefinition(
BeanDefinitionHolder definitionHolder, BeanDefinitionRegistry registry)
throws BeanDefinitionStoreException {

// 获取bean的名称
String beanName = definitionHolder.getBeanName();
// 向IOC注册BeanDefinition
registry.registerBeanDefinition(beanName, definitionHolder.getBeanDefinition());

// 如果存在别名,则向IOC保存alias到name的映射关系
String[] aliases = definitionHolder.getAliases();
if (aliases != null) {
for (String alias : aliases) {
registry.registerAlias(beanName, alias);
}
}
}

阅读全文

swagger增加接口版本管理

    怎么使用swagger,这里就不说了,本站已经跟各大搜索引擎达成合作,只要你在各大搜索引擎中输入关键词springboot swagger,就会在第一页返回给你集成教程。

背景

    swagger确实很不错,可以自动生成接口文档,省去另外写文档的工作量,但是毕竟自动生成,肯定有不适合我们自己需求的地方。比如所有的接口文档没有分类,放在一起,前端很难找到所需的接口。还有接口文档有更新,没有任何地方提现处理。需要口头通知前端修改,如果前端忘了,后续还会怪后端没有通知到,以及发生各种扯皮。

阅读全文

spring源码之IOC - xml - 加载bean定义 3 解析bean标签

    上一章,在解析bean标签的时候,还剩余两个方法没有深入

  1. parseBeanDefinitionElement()
  2. registerBeanDefinition()

阅读全文

spring源码之IOC - xml - 加载bean定义 2 解析import、alias标签

    这一章开始真正解析xml的标签,逻辑不复杂,但是内容比较多,所有单独放一篇文章。继续上一章的BeanDefinitionDocumentReader.registerBeanDefinitions(),该接口只有一个实现类就是:DefaultBeanDefinitionDocumentReader。以下面xml为例

1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cache="http://www.springframework.org/schema/cache"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd">

<import resource="classpath*:/spring/job-timer.xml" />

<bean id="some" class="src.com.Some"/>
<alias name="some" alias="someJava,oneBean,twoBean"/>
</beans>

阅读全文

spring源码之IOC - xml - 加载bean定义 1 加载资源文件

    上一章讲到refreshBeanFactory做了两件事情,一件是创建容器,一件是加载BeanDefinition,即loadBeanDefinitions()。加载BeanDefinition包含两个过程。本章讲第一点。

  1. 加载bean配置文件

阅读全文