profile:
n. 侧面,半面; 外形,轮廓; [航]翼型; 人物简介;
vt. 描…的轮廓; 给…画侧面图; 为(某人)写传略; [机]铣出…的轮廓;
这个词具体是什么意思,参考:https://www.zhihu.com/question/28464897
我的理解,就是一个配置。
一、spring中的profile
profile 说白了就是利用一个变量来控制加载哪些bean。主要用在实现在不同的环境下加载不同的bean。
比如在测试环境下,加载根据这个数据库的配信息生成的bean,在生产环境下使用另一个bean。
简单用法:
将spring-profile-test.xml和spring-profile-dev.xml都import入主配置文件中,但是由于spring.profile.active的值不同,真正加载的bean也不同(不满足profile值的bean不会被加载,此时相当于import了一个空文件)
在运行的使用配置下面参数来激活test环境需要加载的bean,profile的值可以有多个,测试需要用“,”隔开。
-Dspring.profiles.active=tet
当然profile还有其他激活方法,如:
- DispatcherServlet的初始化参数传入
- web app上下文参数传入
- JNDI入口
- 环境变量
- JVM系统属性
- @ActiveProfiles
二、maven中的profile