我的编程空间,编程开发者的网络收藏夹
学习永远不晚

@profile注解如何在spring中使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

@profile注解如何在spring中使用

本篇文章给大家分享的是有关@profile注解如何在spring中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

首先是新建maven工程

mvn archetype:generate -DarchetypeCatalog=internal

下面是pom文件:

<properties>   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>   <springframework.version>4.3.7.RELEASE</springframework.version>  </properties>   <dependencies>   <dependency>    <groupId>junit</groupId>    <artifactId>junit</artifactId>    <version>4.12</version>    <scope>test</scope>   </dependency>   <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->   <dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-context</artifactId>    <version>${springframework.version}</version>   </dependency>   <!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->   <dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-test</artifactId>    <version>${springframework.version}</version>   </dependency>   </dependencies>  <build>   <plugins>    <plugin>     <groupId>org.apache.maven.plugins</groupId>     <artifactId>maven-compiler-plugin</artifactId>     <configuration>      <source>1.8</source>      <target>1.8</target>      <encoding>utf-8</encoding>     </configuration>    </plugin>    <plugin>     <artifactId>maven-assembly-plugin</artifactId>     <version>3.0.0</version>     <configuration>      <archive>       <manifest>        <mainClass>com.xueyou.demo</mainClass>       </manifest>      </archive>      <descriptorRefs>       <descriptorRef>jar-with-dependencies</descriptorRef>      </descriptorRefs>     </configuration>     <executions>      <execution>       <id>make-assembly</id> <!-- this is used for inheritance merges -->       <phase>package</phase> <!-- bind to the packaging phase -->       <goals>        <goal>single</goal>       </goals>      </execution>     </executions>    </plugin>   </plugins>  </build>

整体看一下工程中的类和接口:

@profile注解如何在spring中使用

首先是Person类中有一个speak的方法,这个方法是MoveFactor这个借口提供的。Chinese、English和German都实现了这个接口。但是这三个类的@profile中的值是不同的。通过SpringTest中分配不同的activeprofile就能够实现调用不同的speak方法。

下面看代码:
MoveFactor.interface

package com.xueyou.demo;   public interface MoveFactor {   void speak(); }

Person.java

package com.xueyou.demo;  import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;  @Component public class Person {    @Autowired   private MoveFactor moveFactor;    public void speak(){     moveFactor.speak();   } }

Chinese.java

package com.xueyou.demo;  import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Component;   @Configuration @Profile(value = "dev") @Component public class Chinese implements MoveFactor {   @Override   public void speak() {     System.out.println("我是中国人");   } }

English.java

package com.xueyou.demo;  import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Component;  @Component @Profile("qa") public class English implements MoveFactor{   @Override   public void speak() {     System.out.println("i am an English");   } }

German.java

package com.xueyou.demo;  import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Component;   @Component @Profile("prod") public class German implements MoveFactor{   @Override   public void speak() {     System.out.println("i am a German");   } }

使用springtest进行测试

package com.xueyou.demo;  import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;   @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = App.class) @ActiveProfiles("dev") public class SpringTest {    @Autowired   Person p;    @Test   public void testProfile(){     p.speak();   }  }

运行结果:

@profile注解如何在spring中使用

当修改@ActiveProfile中的值时,输出的内容也会随之改变。

如果使用的是main函数进行真正的开发、测试和上线时,我们需要设置一下运行参数:

@profile注解如何在spring中使用

-D 后面加上需要设置的spring的属性,就能够在main函数中使用了。

App.java

package com.xueyou.demo;  import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration;   @Configuration @ComponentScan(basePackages = {"com.xueyou.demo"}) public class App {   public static void main(String[] args) {     ConfigurableApplicationContext context = new AnnotationConfigApplicationContext(com.xueyou.demo.App.class);     Person p = context.getBean(Person.class);     p.speak();   } }

运行结果:

@profile注解如何在spring中使用

如果需要得到当前的activeprofile可以通过ConfigurableApplicationContext的实例来的到。

@profile注解如何在spring中使用

最后提一下,如果是在web的后台项目中如何进行设置。这个时候我们通过xml的方式进行设置:

<context-param>  <param-name>spring.profiles.active</param-name>  <param-value>DOUBLEUPMINT</param-value> </context-param>

以上就是@profile注解如何在spring中使用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

@profile注解如何在spring中使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

@profile注解如何在spring中使用

本篇文章给大家分享的是有关@profile注解如何在spring中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。首先是新建maven工程mvn archetype:gene
2023-05-30

Spring @Profile注解如何使用

这篇文章主要介绍“Spring @Profile注解如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Spring @Profile注解如何使用”文章能帮助大家解决问题。使用带有@Profile
2023-07-06

如何在Spring中使用@Transactional注解

这期内容当中小编将会给大家带来有关如何在Spring中使用@Transactional注解,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。@Transactionalservice A(){try{inse
2023-06-15

如何在Spring中使用@Override和@Autowired注解

如何在Spring中使用@Override和@Autowired注解?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、Override首先,@Override 注解是伪代码
2023-06-15

详解Spring @Profile注解的使用和源码解析

这篇文章主要将通过源码带大家深入了解一下Spring中@Profile注解的原理与使用,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
2023-05-15

Java中如何使用Spring注解

Java中如何使用Spring注解,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在Spring4之后,要使用注解开发,必须要保证aop的包导入了使用注解需要导入contex
2023-06-20

Spring中@ModelAttribute注解如何使用

这期内容当中小编将会给大家带来有关Spring中@ModelAttribute注解如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.@ModelAttribute注释方法   例子(1),(2),
2023-06-02

spring中如何使用@Service注解

本篇文章为大家展示了spring中如何使用@Service注解,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。@Service注解的使用要说明@Service注解的使用,就得说一下我们经常在sprin
2023-06-20

在Spring Boot中使用注解如何实现Redis 缓存

在Spring Boot中使用注解如何实现Redis 缓存?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、创建 Caching 配置类RedisKeys.Javapackag
2023-05-31

Spring @ComponentScan注解如何使用

今天小编给大家分享一下Spring @ComponentScan注解如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一
2023-07-05

Spring @InitBinder注解如何使用

这篇文章主要讲解了“Spring @InitBinder注解如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring @InitBinder注解如何使用”吧!一. @InitBin
2023-07-05

C++中profile如何使用

这篇文章将为大家详细讲解有关C++中profile如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。自从VC6以后,C++ profile功能便从Team Server Editions
2023-06-17

如何使用注解开发spring

本篇文章为大家展示了如何使用注解开发spring,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在Spring4之后,要使用注解开发,必须要保证aop的包导入了。使用注解需要导入context约束,增
2023-06-15

Spring Security中的权限注解如何使用

今天小编给大家分享一下Spring Security中的权限注解如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Spr
2023-06-30

注解如何在JAVA中使用

注解如何在JAVA中使用 ?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。何为注解注解(Annotation)又称为元数据,在JDK1.5后引入,它的作用是:生成
2023-05-31

PropertySource注解怎么在Spring boot中使用

本篇文章给大家分享的是有关PropertySource注解怎么在Spring boot中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.1. PropertySource
2023-05-30

@Around注解怎么在Spring AOP中使用

这期内容当中小编将会给大家带来有关@Around注解怎么在Spring AOP中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。@Around注解可以用来在调用一个具体方法前和调用后来完成一些具体的任务
2023-06-06

在Spring Boot项目中如何实现使用 Mybatis中的@ Annotation注解

在Spring Boot项目中如何实现使用 Mybatis中的@ Annotation注解?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、运行 springboot-myba
2023-05-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录