-
Spring基础知识
收藏介绍Spring的bean配置、初始化等基础知识,初期文章主要基于Spring4进行介绍。
最近更新文章
Spring(25)——ClassPathBeanDefinitionScanner
ClassPathBeanDefinitionScanner继承自ClassPathScanningCandidateComponentProvider,构造时要求指定一个BeanDefinitionRegistry对象,其扩展了一个scan方法,可以同时指定多个要扫描的包。底层在扫描bean定义时还是使用的父类的findCandidateComponents方法,但是扫描后会自动利用持有的Bea ...
Spring(24)——自定义BeanDefinitionRegistryPostProcessor
24 自定义BeanDefinitionRegistryPostProcessor
BeanDefinitionRegistryPostProcessor继承自BeanFactoryPostProcessor,是一种比较特殊的BeanFactoryPostProcessor。BeanDefinitionRegistryPostProcessor中定义的postProcessBeanDefinit ...
Spring(22)——ApplicationEvent
22 ApplicationEvent
Spring允许我们在ApplicationContext中发布ApplicationEvent事件,然后对应的ApplicationListener可以用来监听对应的事件。当发布了一个ApplicationEvent后,在对应bean容器中实现了ApplicationListener接口的bean实例都会接收到对应的通知,即对应的ApplicationL ...
Spring(21)——国际化MessageSource
21 国际化MessageSource
Spring中定义了一个MessageSource接口,以用于支持信息的国际化和包含参数的信息的替换。MessageSource接口的定义如下,对应的方法说明已经在方法上注释了。
public interface MessageSource {
/**
* 解析code对应的信息进行返回,如果对应的code不能被解析则返回默认信息def ...
Spring(20)——@PropertySource
20 @PropertySource
在之前介绍<context:property-placeholder/>时提到过其默认会使用PropertySourcesPlaceholderConfigurer来进行对应的属性替换,其底层有使用PropertySource。@PropertySource是用来注册一个PropertySource的。PropertySource是用来表示一个n ...
Spring(19)——Profile(二)
19.2 指定启用的profile
前面已经介绍了profile的指定,我们知道指定了profile后则表示对应的内容只有在特定的profile下才会生效。当前应用究竟使用的是哪个profile,或者是哪些profile,这是需要我们来指定的。说的专业一点就叫激活,即只有处于激活状态的profile对应的定义才会生效,当然也包括那些没有指定profile的定义。
在Spring中激活哪个pro ...
Spring(18)——使用Java类的形式定义bean(三)
18.4 组合多个配置
通常在使用基于Java类的配置时我们可能不是单独使用一个Java类进行配置,有的时候可能会建立多个Java类进行配置,也可能是基于Java类的配置和基于XML的配置一起使用,这就需要我们将多个配置整合在一起了。
18.4.1 多个Java类配置组合
对于多个Java配置类的情况,我们可以通过将@Import标注在对应的配置类上以引入另外一个配置类,这样我们在使用的时 ...
Spring(18)——使用Java类的形式定义bean(二)
18.2 @Configuration
@Configuration是标注在Class上的,当我们需要基于Java类的形式对Spring进行配置时,我们就需要在对应的配置类上使用@Configuration进行标注,这样Spring才会把对应的Class当做是一个配置用的Class。使用@Configuration进行标注的配置类默认也会被Spring作为一个bean进行注册。所以当我们的拥有多 ...
Spring(18)——使用Java类的形式配置bean
18 使用Java类的形式配置bean定义
除了传统的使用XML来配置底层的bean容器定义,Spring还支持使用大家熟悉的Java类的形式来进行配置。使用Java类的形式来 ...
Spring(16)——使用注解进行bean定义(二)
16.5 过滤器
默认情况下,Spring将扫描所有@Component、@Controller、@Service和@Repository标注的类,以及这几个注解所派生出来的注解所标注的类,如之前介绍的自定义的@MyComponent注解,并将它们作为一个bean定义在对应的bean容器中。Spring提供了两个filter定义可以让我们对需要扫描的类进行进一步的过滤,一个是<contex ...
Spring(16)——使用注解进行bean定义
16 使用注解进行bean定义
除了在Spring配置文件中通过bean元素定义一个bean外。我们还可以通过在Class上使用特定的注解进行标注,然后让Spring去扫描这些特定的注解,并把它们当做一个bean进行定义。
16.1 @Component
@Component是Spring中用来定义bean最基本的注解,通过在Class类上标注对应的注解就可以让Spring扫描到对应的定义 ...
Spring(15)——基于注解的配置(二)
15.4 @Qualifier
15.4.1 简介
@Qualifier通常是配合@Autowired的一起使用的。我们知道使用@Autowired进行注入时默认是按照类型进行注入的。打个比方当我们使用@Autowired的定义beanA需要自动注入一个类型为BeanB的bean时,如果在bean容器中存在多个类型为BeanB的bean,那么Spring就会抛出异常。这个时候我们就可以使用@ ...
Spring(15)——基于注解的配置
15 基于注解的配置
除了单独使用XML对Spring进行配置外,我们还可以使用注解的方式来配置对应的bean定义。如哪些class要被定义为bean,对应的bean需要注入哪些内容等。在Spring的配置中XML定义与注解定义是可以同时存在的。
15.1 启用对注解的支持
如果需要使用注解来配置bean定义,首先我们需要启用Spring对注解的支持。最简单的方式就是在Spring的配置文 ...
Spring(14)——PropertyOverrideConfigurer
14 PropertyOverrideConfigurer
14.1 简介
打个比方我们在bean容器中定义了一个beanA,其中有一个属性propB,对应值为valueB,但是我又希望在不更改bean定义的情况下希望Spring在实例化beanA时将对应的属性propB的值改为valueC,那么这个时候我们就可以使用PropertyOverrideConfigurer来实现这个效果了。Pr ...
- 专栏创建者:234390216
- 创建时间:2017-06-28 08:40:30
- 专栏文章数:75篇
- 专栏被浏览:467802 次
本专栏热门文章
最新评论
skran 写道大兄弟文章写的不错,排版有点问题,代码长了既没换行也没滚动条现在都是Markdown写 ...
234390216 评论了 Spring Boot(05)——SpringApplication ...
234390216 评论了 Spring Boot(05)——SpringApplication ...
iteye这个博客主体内容定义的宽度只有700,导致部分代码没有展示出来。iteye现在都没有人维护了 ...
234390216 评论了 Spring(25)——ClassPathBeanDefinitionS ...
234390216 评论了 Spring(25)——ClassPathBeanDefinitionS ...