iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SpringBoot2的profile功能是什么与怎么自定义starter
  • 868
分享到

SpringBoot2的profile功能是什么与怎么自定义starter

2023-06-29 15:06:55 868人浏览 安东尼
摘要

本篇内容主要讲解“SpringBoot2的profile功能是什么与怎么自定义starter”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springBoot2的profile功能是什么与怎么自

本篇内容主要讲解“SpringBoot2的profile功能是什么与怎么自定义starter”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习springBoot2的profile功能是什么与怎么自定义starter”吧!

    1 profile功能

    1.1 profile的生效规则

    为了方便多环境适配,SpringBoot简化了profile功能,具体的使用规则如下: ①在resources文件夹下可以一次创建多个application-xxx.yaml配置文件,分别对应着不同的生产、测试等环境,但是只有命名为application.yaml(或者后缀.properties的文件)文件会默认加载,所以说其他环境的配置文件中的配置信息都不会生效。

    SpringBoot2的profile功能是什么与怎么自定义starter

      ②如果是想切换配置文件环境的话,就可以在默认配置文件中配置

    spring:
    profiles:
    active: test

    SpringBoot2的profile功能是什么与怎么自定义starter

      ③当不同配置文件的配置项产生冲突的时候,首先若是其他环境都没有激活的话使用默认配置文件的配置,若是在默认配置文件中激活了其他环境的配置就按激活的配置

    SpringBoot2的profile功能是什么与怎么自定义starter

      ④使用命令行运行jar包期间可以不用重新修改配置文件再次打包,可以通过命令行参数配置进行修改激活的环境。首先需要对项目进行打包并打开jar包的存储位置

    SpringBoot2的profile功能是什么与怎么自定义starter

    进入dos窗口输入命令修改环境并运行jar包

    SpringBoot2的profile功能是什么与怎么自定义starter

    java -jar test-profile-0.0.1-SNAPSHOT.jar --spring.profiles.active=test

    SpringBoot2的profile功能是什么与怎么自定义starter

    ⑤我们该可以使用@Profile(“xxx”)注解标注在类、方法或参数绑定上,表示在指定环境下才会执行该类、方法或者进行配置文件与POJO类的绑定

    SpringBoot2的profile功能是什么与怎么自定义starter

    1.2 外部配置源

      常用可以作为外部配置源的有:Java属性文件、YAML文件、环境变量、命令行参数。其中配置文件的默认扫描位置也不只单单一个,以下五个位置都能被SpringBoot默认扫到,加载顺序由高到低但是优先级相反(也就是说配置项相同的时候后面的可以覆盖前面的):(1) classpath 根路径(2) classpath 根路径下config目录(3) 项目jar包同层级(4) 项目jar包同层级的config目录(5) config目录的直接子目录

    2 自定义starter

      SpringBoot的starter场景启动器想必大家都不陌生,在SpringBoot开发的时候不管进行什么开发只要用到哪种技术第一都是引入它的starter场景启动器,接下来让我们根据SpringBoot中的源码自定义一个场景启动器。

    使用Spring Initializr创建一个SpringBoot项目作为autoconfiguration,构建项目目录如下:

    SpringBoot2的profile功能是什么与怎么自定义starter

    封装自定义starter业务的HelloService

    public class HelloService {    @Autowired    HelloProperties helloProperties;    public String sayHello(String userName) {        return helloProperties.getPrefix() + ":" + userName + "》" + helloProperties.getSuffix();    }}

    封装配置文件属性的HelloProperties

    @ConfigurationProperties("com.xiaochen")public class HelloProperties {    private String prefix;    private String suffix;    public String getPrefix() {        return prefix;    }    public void setPrefix(String prefix) {        this.prefix = prefix;    }    public String getSuffix() {        return suffix;    }    public void setSuffix(String suffix) {        this.suffix = suffix;    }}

    决定是否注册组件的自动配置类HelloServiceAutoConfiguration

    // 表明这是一个配置类@Configuration// 配置文件绑定@EnableConfigurationProperties(HelloProperties.class)public class HelloServiceAutoConfiguration {// 如果容器中没有这个组件就是用下面的方法进行容器的helloService组件注入,如果有的话就用容器中的@ConditionalOnMissingBean(HelloService.class)    // 容器注入组件    @Bean    public HelloService helloService() {        HelloService helloService = new HelloService();        return helloService;    }}

    resources文件夹下创建MATE-INF目录下spring.factories文件,这样才能加载到指定的自动配置类

    # Auto Configure
    org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
    com.xiaochen.auto.HelloServiceAutoConfiguration

    创建一个Maven项目作为自定义starter,只需要在它的pom文件中导入autoconfiguration的项目依赖

    <dependencies>    <dependency>        <groupId>com.xiaochen</groupId>        <artifactId>test-autoconfigure</artifactId>        <version>0.0.1-SNAPSHOT</version>    </dependency></dependencies>

    分别对两个项目模块在生命周期中选择clean和install,将两个模块打成jar包

    创建测试项目,目录结构如下

    SpringBoot2的profile功能是什么与怎么自定义starter

    pom文件中导入自定义的starter

    <dependency>    <groupId>com.xiaochen</groupId>    <artifactId>test-starter</artifactId>    <version>1.0-SNAPSHOT</version></dependency>

    创建一个测试使用的controller

    @RestControllerpublic class HelloController {    @Autowired    HelloService helloService;    @GetMapping("/hel")    public String sayHello() {        return helloService.sayHello("张三");    }}

    配置测试项目的配置文件

    com.xiaochen.prefix=jaka
    com.xiaochen.suffix=hafd

    启动测试项目访问controller的请求映射

    到此,相信大家对“SpringBoot2的profile功能是什么与怎么自定义starter”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    --结束END--

    本文标题: SpringBoot2的profile功能是什么与怎么自定义starter

    本文链接: https://www.lsjlt.com/news/325423.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

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

    下载Word文档
    猜你喜欢
    • SpringBoot2的profile功能是什么与怎么自定义starter
      本篇内容主要讲解“SpringBoot2的profile功能是什么与怎么自定义starter”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot2的profile功能是什么与怎么自...
      99+
      2023-06-29
    • SpringBoot2零基础到精通之profile功能与自定义starter
      目录1 profile功能1.1 profile的生效规则1.2 外部配置源2 自定义starter1 profile功能 1.1 profile的生效规则 为了方便多环境适配,Sp...
      99+
      2024-04-02
    • SpringBoot怎么自定义Starter
      这篇文章给大家分享的是有关SpringBoot怎么自定义Starter的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。什么是StarterStarter是Spring Boot中的一个非常重要的概念,Starter...
      99+
      2023-06-22
    • PHP自定义扩展的钩子功能是什么
      本篇内容主要讲解“PHP自定义扩展的钩子功能是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP自定义扩展的钩子功能是什么”吧!php生命周期大概5个阶段,模块初始化阶段php_modul...
      99+
      2023-06-22
    • springboot2怎么禁用自带tomcat的session功能
      这篇文章主要介绍“springboot2怎么禁用自带tomcat的session功能”,在日常操作中,相信很多人在springboot2怎么禁用自带tomcat的session功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法...
      99+
      2023-06-25
    • linux etc profile的含义是什么
      今天小编给大家分享一下linux etc profile的含义是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下...
      99+
      2023-04-20
      linux
    • win11录屏功能怎么自定义使用
      这篇文章主要介绍了win11录屏功能怎么自定义使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win11录屏功能怎么自定义使用文章都会有所收获,下面我们一起来看看吧。win11自带录屏只能录游戏吗:答:win...
      99+
      2023-07-02
    • 什么是Discuz?Discuz的定义和功能介绍
      《探索Discuz:定义、功能及代码示例》 随着互联网的迅猛发展,社区论坛已经成为人们获取信息、交流观点的重要平台。在众多的社区论坛系统中,Discuz作为国内较为知名的一种开源论坛软...
      99+
      2024-03-03
      功能 定义 discuz
    • sql server 中怎么自定义分割月功能
      sql server 中怎么自定义分割月功能,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、为何出现自定义分割月的需求今天梳理一个平台的所有...
      99+
      2024-04-02
    • 怎么用javascript实现自定义事件功能
      这篇文章主要介绍“怎么用javascript实现自定义事件功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用javascript实现自定义事件功能”文章能帮助大家解决问题。概述自定义事件很难派...
      99+
      2023-06-17
    • Hilt自定义与跨壁垒的方法是什么
      本篇内容介绍了“Hilt自定义与跨壁垒的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!跨越 IOC容器的壁垒使用依赖注入(DI)时...
      99+
      2023-07-06
    • MySQL索引是什么及怎么自定义
      本篇内容主要讲解“MySQL索引是什么及怎么自定义”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL索引是什么及怎么自定义”吧!索引是什么MySQL官方对...
      99+
      2022-12-02
      mysql
    • javascript的自定义函数是什么
      这篇文章主要讲解了“javascript的自定义函数是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript的自定义函数是什么”吧! ...
      99+
      2024-04-02
    • activity的自定义流程是什么
      自定义流程是指根据特定需求,用户可以自行定义和配置的活动流程。以下是一般的自定义流程的步骤:1. 确定目标:确定活动的目标和预期结果...
      99+
      2023-09-16
      activity
    • 自然语言的定义是什么
      自然语言是人类用来进行沟通和交流的语言系统。它是一种通过声音、文字或手势等方式传达意义和信息的工具。自然语言可以包括各种语言,如英语...
      99+
      2023-10-09
      自然语言
    • 使用canvas怎么自定义一个头像功能
      使用canvas怎么自定义一个头像功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实现细节:因为你要对图片所在的区域进行截图,所以你得制作一张canvas,盖...
      99+
      2023-06-09
    • Java怎么实现视频自定义裁剪功能
      今天就跟大家聊聊有关Java怎么实现视频自定义裁剪功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前言下面提供将视频按照自定义尺寸进行裁剪的Java工具类,一如既往的实用主义。Ma...
      99+
      2023-06-28
    • Android怎么自定义Camera实现拍照小功能
      这篇文章主要介绍“Android怎么自定义Camera实现拍照小功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Android怎么自定义Camera实现拍照小功能”文章能帮助大家解决问题。首先实现...
      99+
      2023-06-30
    • Navicat怎么自定义SQL编辑器的外观和功能
      Navicat是一个强大的数据库管理工具,它提供了许多自定义选项来调整SQL编辑器的外观和功能。下面是一些常见的自定义选项: 外...
      99+
      2024-05-10
      Navicat
    • android自定义seekbar的方法是什么
      要自定义SeekBar,你可以使用xml布局文件和自定义的Style来实现。以下是一个简单的示例: 创建一个名为custom_se...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作