Profile

总有那么一些时候,我们希望Spring容器能够根据我们提供的条件决定哪些Bean需要创建,哪些Bean不需要创建。提供的条件不同,Spring容器创建的Bean也不同。创建的Bean不同,软件实现的功能自然也有所差别。也就是说,我们希望在某些应用场景下无需修改代码或重新构建项目,只需简单修改一下条件就能达到改变软件功能的目的。

于是,Profile出现了。能让我们向Spring容器提供一些配置信息,告诉Spring容器两件事情:
1.告诉Spring容器我们想要创建的Bean属于哪个Profile
2.告诉Spring容器只需创建属于某些Profile的Bean,无需创建属于其它Profile的Bean

如此一来,Spring容器就能按照指定的Profile创建指定的Bean。指定的Profile不同,创建的Bean也不同。创建的Bean不同,软件实现的功能自然也就不同。非常明显,Profile就是专门用来条件化Bean的创建的。

问题在于,我们应该怎样告诉Spring容器Bean是属于哪个Profile的呢?

这就涉及@Profile注解了。@Profile注解有个value属性,能够指定Bean所属的Profile。假如com.dream包现有这样一些类:

 1 public interface Music {
 2 }
 3 
 4 public class ClassicMusic implements Music {
 5 }
 6 
 7 public class CountryMusic implements Music {
 8 }
 9 
10 public class Player {
11     private Music playingMusic = null;
12 
13     public Player(Music playingMusic) {
14         this.playingMusic = playingMusic;
15     }
16 }
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Profile