弹簧 个人资料注释示例
在本教程中,我们将看到有关Spring @Profile注释的信息。本教程是对 春季靴配置文件示例.
配置文件注释表示命名逻辑分组可以通过以下方式激活
- 通过使用
ConfigurableEnvironment.setActiveProfiles(java.lang.String...)
- By setting the
spring.profiles.active
property as a 虚拟机 系统属性,环境变量或web应用程序的web.xml中的Servlet上下文参数。 - 您也可以使用
@ActiveProfiles
< while doing 整型 egration 测试 ing
@Profile注释可以通过以下任何一种方式使用:
- 作为任何类的类型级别注释,直接或间接使用 @零件包括@Configuration类
- 作为元注释,出于组成自定义构造型注释的原因
- 可以在任何@Bean注释上使用方法级注释
让’借助示例进行查看。
步骤1: 去"//start.spring.io/"并按照以下屏幕截图创建spring 开机 项目。
第2步: 在Eclipse中导入Maven项目。
步骤3: 创建一个名为"org.arpit.java2blog.model"
创建一个名为的模型类 "Customer.java"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
包 组织 .Arpit. 爪哇 2blog.模型; 上市 类 顾客 { 整型 ID ; 串 名称 ; 串 电子邮件; 上市 顾客( 整型 ID , 串 名称 , 串 电子邮件) { 超(); 这个 . ID = ID ; 这个 .名称 = 名称 ; 这个 .电子邮件 = 电子邮件; } 上市 整型 getId() { 返回 ID ; } 上市 虚空 设置名称( 整型 ID ) { 这个 . ID = ID ; } 上市 串 getName() { 返回 名称 ; } 上市 虚空 setName(串 名称 ) { 这个 .名称 = 名称 ; } 上市 串 getEmail() { 返回 电子邮件; } 上市 虚空 setEmail(串 电子邮件) { 这个 .电子邮件 = 电子邮件; } } |
步骤4:创建一个名为“org.arpit.java2blog.config”
创建一个名为的配置类 “配置数据库.java”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
包 组织 .Arpit. 爪哇 2blog.配置; 进口 组织 .Arpit. 爪哇 2blog.模型.顾客; 进口 组织 .弹簧框架.语境.注解. 豆 ; 进口 组织 .弹簧框架.语境.注解.组态; 进口 组织 .弹簧框架.语境.注解.个人资料; @组态 上市 类 配置数据库 { @个人资料(“ dev”) @ 豆 (名称 =“顾客”) 上市 顾客 getDevCustomer() { 返回 新 顾客(1,"约翰","约翰@gmail.com"); } @个人资料(“产品”) @ 豆 (名称 =“顾客”) 上市 顾客 getProdCustomer() { 返回 新 顾客(1,“马丁”,“ martin@gmail.com”); } } |
步骤5: 创建名为的测试类“SpringProfileAnnotationDevTest” in src/test/java.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
包 组织 .Arpit. 爪哇 2blog.弹簧ProfileAnnotation; 进口 静态的 组织 .unit.断言.断言等于; 进口 静态的 组织 .unit.断言.assertNotNull; 进口 组织 .Arpit. 爪哇 2blog.配置.配置数据库; 进口 组织 .Arpit. 爪哇 2blog.模型.顾客; 进口 组织 .unit. 测试 ; 进口 组织 .unit.跑步者.运行方式; 进口 组织 .弹簧框架.豆子.厂.注解.自动接线; 进口 组织 .弹簧框架. 开机 . 测试 .语境.弹簧BootTest; 进口 组织 .弹簧框架.语境.ApplicationContext; 进口 组织 .弹簧框架. 测试 .语境.ActiveProfiles; 进口 组织 .弹簧框架. 测试 .语境.上下文配置; 进口 组织 .弹簧框架. 测试 .语境.unit4.奔跑者; 进口 组织 .弹簧框架. 测试 .语境.支持.AnnotationConfigContextLoader; @运行方式(奔跑者.类) @弹簧BootTest @ActiveProfiles(值=“ dev”) @上下文配置(类= {配置数据库.类},装载机=AnnotationConfigContextLoader.类) 上市 类 弹簧ProfileAnnotationDevTest { @自动接线 私人的 ApplicationContext applicationContext; @ 测试 上市 虚空 测试 DevDataSource() { 顾客 顾客 = (顾客)applicationContext.getBean(“顾客”); assertNotNull(顾客); 断言等于("约翰", 顾客.getName()); } } |
这里
@SpringBootTest 注解用于运行Spring Boot测试。
@ContextConfiguration 提供类级别的元数据来确定如何加载和配置用于集成测试的ApplicationContext。
@ActiveProfiles 用于提供将在运行集成测试时激活的配置文件的名称。
步骤6: 运行测试
在测试之上运行时,您将获得以下输出:
步骤7:创建另一个名为的测试类“SpringProfileAnnotationProdTest” in src/test/java.
创建一个名为 “SpringBootHelloWorldApplication.java”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
包 组织 .Arpit. 爪哇 2blog.弹簧ProfileAnnotation; 进口 静态的 组织 .unit.断言.断言等于; 进口 静态的 组织 .unit.断言.assertNotNull; 进口 组织 .Arpit. 爪哇 2blog.配置.配置数据库; 进口 组织 .Arpit. 爪哇 2blog.模型.顾客; 进口 组织 .unit. 测试 ; 进口 组织 .unit.跑步者.运行方式; 进口 组织 .弹簧框架.豆子.厂.注解.自动接线; 进口 组织 .弹簧框架. 开机 . 测试 .语境.弹簧BootTest; 进口 组织 .弹簧框架.语境.ApplicationContext; 进口 组织 .弹簧框架. 测试 .语境.ActiveProfiles; 进口 组织 .弹簧框架. 测试 .语境.上下文配置; 进口 组织 .弹簧框架. 测试 .语境.unit4.奔跑者; 进口 组织 .弹簧框架. 测试 .语境.支持.AnnotationConfigContextLoader; @运行方式(奔跑者.类) @弹簧BootTest @ActiveProfiles(值=“产品”) @上下文配置(类= {配置数据库.类},装载机=AnnotationConfigContextLoader.类) 上市 类 弹簧ProfileAnnotationProdTest { @自动接线 私人的 ApplicationContext applicationContext; @ 测试 上市 虚空 测试 DevDataSource() { 顾客 顾客 = (顾客)applicationContext.getBean(“顾客”); assertNotNull(顾客); 断言等于(“马丁”, 顾客.getName()); } } |
步骤8: 运行测试
在测试之上运行时,您将获得以下输出:
如您所见,我们基于活动概要文件获得了不同的bean。
如您所见,我们的名字是“John” with @ActiveProfiles(value="dev")
and “Martin in case of @ActiveProfiles(value="prod")
项目结构
源代码
那’所有的Spring配置文件注释。