本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
paulwong - fantaxy025025
- johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- gengyun12
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- tanling8334
- arpenker
- gaojingsong
- xpenxpen
- kaizi1992
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- mengjichen
- lemonhandsome
- jbosscn
- zxq_2017
- nychen2000
- lzyfn123
- forestqqqq
- wjianwei666
- 龙儿筝
- ajinn
- siemens800
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
编程语言专栏最新文章
Spring(18)——使用Java类的形式定义bean(二)
18.2 @Configuration
@Configuration是标注在Class上的,当我们需要基于Java类的形式对Spring进行配置时,我们就需要在对应的配置类上使用@Configuration进行标注,这样Spring才会把对应的Class当做是一个配置用的Class。使用@Configuration进行标注的配置类默认也会被Spring作为一个bean进行注册。所以当我们的拥有多 ...
Spring(17)——对JSR330标准的支持
17 对JSR330标准注解的支持
除了使用Spring标准的注解来定义bean、定义bean之间的依赖关系外,Spring还支持使用JSR330标准的注解来进行相关的定义,主要是对@Inject和@Named两个注解的支持。
要使用JSR330标准的注解进行对应的bean定义,我们首先需要将JSR330标准对应的jar包加入我们的classpath。笔者习惯使用Maven来管理相应的依赖,所 ...
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 ...
Spring(13)——PropertyPlaceholderConfigurer(二)之namespace
13.6 指定加载顺序
有的时候我们可能需要或者是希望定义多个PropertyPlaceholderConfigurer,这个时候我们可以通过setOrder()方法来指定PropertyPlaceholderConfigurer的处理顺序,值越小的越先处理。这样就有两个问题要考虑,当一个属性变量可以被多个PropertyPlaceholderConfigurer进行替换时,先处理的将优先替换, ...
Spring(13)——PropertyPlaceholderConfigurer
13 PropertyPlaceholderConfigurer
PropertyPlaceholderConfigurer是对BeanFactoryPostProcessor接口的一种实现,其允许我们在定义bean的时候将bean的某些属性定义为变量形式,然后由PropertyPlaceholderConfigurer在这些bean被实例化之前利用外部定义的属性文件或者其内部定义的属性等将这些 ...
Spring(12)——BeanFactoryPostProcessor
12 BeanFactoryPostProcessor
在上一篇文章中介绍了BeanPostProcessor,我们可以通过自定义BeanPostProcessor实现对实例化以后的bean在调用其初始化方法前后加上特定的逻辑,即所谓的回调。在本文将要介绍的BeanFactoryPostProcessor和上一篇介绍的BeanPostProcessor接口类似,也是属于一个回调接口。所不同的是B ...
Spring(11)——可用来修改bean对象的BeanPostProcessor
11 BeanPostProcessor
11.1 简介
BeanPostProcessor是Spring中定义的一个接口,其与之前介绍的InitializingBean和DisposableBean接口类似,也是供Spring进行回调的。Spring将在初始化bean前后对BeanPostProcessor实现类进行回调,与InitializingBean和DisposableBean接口 ...
Spring(10)——bean作用范围(二)—自定义scope
10.7 自定义Scope
如果用户觉得Spring内置的几种Scope不能满足需求,则可以定制自己的Scope,即实现自己的org.springframework.beans.factory.config.Scope。Scope接口定义了如下几个方法,详情请参看Spring的API文档。
public interface Scope {
Object get(String nam ...
Spring(10)——bean作用范围
10 bean作用范围(scope)
在Spring中使用Scope来表示一个bean定义对应产生实例的类型,也可以说是对应实例的作用范围。Spring内置支持的scope严格来说默认是有五种,分别是:
singleton:这是默认Scope,表示在整个bean容器中或者说是整个应用中只会有一个实例。
prototype:多例类型,表示每次从bean容器中都会获取到一个对应bean定义全新 ...
Spring(09)——bean生命周期回调方法
9 生命周期回调方法
对于Spring bean来讲,我们默认可以指定两个生命周期回调方法。一个是在ApplicationContext将bean初始化,包括注入对应的依赖后的回调方法;另一个是在ApplicationContext准备销毁之前的回调方法。要实现这种回调主要有三种方式:实现特定的接口、在XML配置文件中指定回调方法和使用JSR-250标准的注解。
9.1 实现特定接口
针对 ...
Spring(08)——方法注入之替换方法实现
8方法注入之替换方法实现
Spring提供了一种替换方法实现的机制,可以让我们改变某个bean某方法的实现。打个比方我们有一个bean,其中拥有一个add()方法可以用来计算两个整数的和,但这个时候我们想把它的实现逻辑改为如果两个整数的值相同则把它们相乘,否则还是把它们相加,在不改变或者是不能改变源码的情况下我们就可以通过Spring提供的替换方法实现机制来实现这一要求。
替换方法实现机制的核 ...
Spring(07)——单例注入多例之lookup-method
7 单例注入多例之lookup-method
Spring有一种机制,可以动态的实现或重写bean容器中指定bean的指定方法,然后将返回值指定为bean容器中的另一个bean。现针对前文提到的单例bean需注入多例bean的应用场景来谈谈如何使用这种机制。先假设我们有一个单例beanA需注入一个多例BeanB类型的bean,那么我们可以这样来做。
1、在beanA对应的类中定义一个方法用来获 ...
Spring(06)——单例注入多例之ApplicationContext
6 单例注入多例之注入ApplicationContext
Spring bean容器中的bean有单例bean,也有多例bean。当我们需要给一个单例beanA注入一个单例beanB,或者给一个多例beanA注入一个多例或单例beanB时,都可以通过配置让Spring的bean容器帮我们完成。但如果我们需要给一个单例beanA注入一个多例beanB时,仅仅通过配置Spring是无法帮我们的单例 ...
Spring(05)——基于XML配置的自动注入(autowire)
5 基于XML配置的自动注入(autoWire)
5.1 autowire
通常如果我们需要给一个bean注入另一个bean时都是通过set方法或者构造方法进行注入,其实Spring也支持bean的自动注入。在定义bean时我们可以通过bean元素的autowire属性来指定是否需要给当前bean来自动注入其所关联的bean。autowire属性的可选值有四个。
no:默认值。表示不进行 ...
Spring(04)——p命名空间和c命名空间
4p命名空间和c命名空间
在通过构造方法或set方法给bean注入关联项时通常是通过constructor-arg元素和property元素来定义的。在有了p命名空间和c命名空间时我们可以简单的把它们当做bean的一个属性来进行定义。
4.1p命名空间
使用p命名空间时需要先声明使用对应的命名空间,即在beans元素上加入xmlns:p="http://www.springfra ...
编程语言热门文章
博客专栏评论
skran 写道大兄弟文章写的不错,排版有点问题,代码长了既没换行也没滚动条现在都是Markdown写 ...
234390216 评论了 Spring Boot(05)——SpringApplication ...
234390216 评论了 Spring Boot(05)——SpringApplication ...
iteye这个博客主体内容定义的宽度只有700,导致部分代码没有展示出来。iteye现在都没有人维护了 ...
234390216 评论了 Spring(25)——ClassPathBeanDefinitionS ...
234390216 评论了 Spring(25)——ClassPathBeanDefinitionS ...