springboot基础入门2(profile应用)

Profile应用

  • 一、何为Profile
  • 二、profile配置方式
    • 1.多profile文件方式
    • 2.yml多文档方式
  • 三、加载顺序
    • 1. file:./config/: 当前项目下的/config目录下
    • 2. file:./ :当前项目的根目录
    • 3. classpath:/config/:classpath的/config目录
    • 4. classpath:/ : classpath的根目录
  • 四、profile激活方式
    • 1. 配置文件
    • 2. 虚拟机参数
    • 3. 命令行参数
  • 五、测试类编写
    • 1. 不同目录下的编写
    • 2. 同目录下
  • 六.导入redis

一、何为Profile

在开发springboot应用时。通常一套程序会被安装在不同环境中(比如开发,测试,生产),其中数据库地址,服务器端口等等配置都不同,如果每次打包是,都要修改配置文件,就会非常麻烦,profile可以进行动态配置切换

二、profile配置方式

1.多profile文件方式

applicatio.yml

---server:port: 8081spring:profiles: dev
---server:port: 8082spring:profiles: test
---
server:port: 8083spring:profiles: pro

每一个框内都是一组配置
激活使用

---
spring:profiles:active: dev

在这里插入图片描述

2.yml多文档方式

三、加载顺序

1. file:./config/: 当前项目下的/config目录下

2. file:./ :当前项目的根目录

3. classpath:/config/:classpath的/config目录

4. classpath:/ : classpath的根目录

高优先级属性会生效,但是每个文件都会读取,只是生效与否

四、profile激活方式

1. 配置文件

2. 虚拟机参数

部署方法
在这里插入图片描述
在这里插入图片描述

3. 命令行参数

在这里插入图片描述

五、测试类编写

1. 不同目录下的编写

若目录com.itheima.springboottest.UserService方法

package com.itheima.springboottest;import org.springframework.stereotype.Service;@Service
public class UserService {public void add() {System.out.println("add...");}
}

测试类目录为com.itheima.test.UserServiceTest 与上面不一致,一个是applicationtest一个是test

package com.itheima.test;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;/*** userService的测试类*/@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootTestApplication.class)
# 不同目录,这里的classes不可以省略
public class UserServiceTest {@Autowiredprivate UserService userService;@Testpublic void testAdd() {userService.add();}
}
  1. RunWith通常是一个用于测试的编程概念,特别是在框架如JUnit(Java Unit Testing Framework)或.NET的Moq、NUnit等中。RunWith的作用是用来标记或装饰测试方法,告诉测试运行器如何执行这个特定的测试。例如,在JUnit中,@RunWith(Suite.class)表明该测试类应该作为一组测试用例的集合(suite)来运行,而不是独立的测试。

  2. 在Java中,@ RunWith注解通常放在测试类的定义上方,这样测试框架就能识别并按照指定的方式运行测试方法。如果你看到RunWith并且是编程相关的上下文,那可能是在讨论单元测试或行为驱动开发(BDD)中的测试组织方式。

  3. @Autowired 是Spring框架中的一个注解,用于依赖注入(Dependency Injection, DI)机制。它是一个懒加载注解,用于自动装配bean到其他bean中,简化了组件之间的依赖管理。当你在一个字段、方法参数或构造器上使用 @Autowired,Spring容器会尝试找到并注入合适的bean实例,满足该字段或方法的需求

  4. @Autowired 具体使用时,例如在控制器、服务类或DAO接口等地方,你不再需要显式地创建和管理这些对象,Spring会在运行时自动完成这个过程。这有助于降低代码的耦合度,使得组件更加松耦合,提高代码的可测试性和可用性

2. 同目录下

package com.itheima.springboottest;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;/*** userService的测试类*/@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootTestApplication.class)
public class UserServiceTest {@Autowiredprivate UserService userService;@Testpublic void testAdd() {userService.add();}
}

在这里插入图片描述

六.导入redis

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/37491.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【设计模式】【创建型5-2】【工厂方法模式】

文章目录 工厂方法模式工厂方法模式的结构示例产品接口具体产品工厂接口具体工厂客户端代码 实际的使用 工厂方法模式 工厂方法模式的结构 产品(Product):定义工厂方法所创建的对象的接口。 具体产品(ConcreteProduct&#xff0…

Redis 集群模式

一、集群模式概述 Redis 中哨兵模式虽然提高了系统的可用性,但是真正存储数据的还是主节点和从节点,并且每个节点都存储了全量的数据,此时,如果数据量过大,接近或超出了 主节点 / 从节点机器的物理内存,就…

个人网站制作 Part 28 添加用户活动跟踪功能 | Web开发项目添加页面缓存

文章目录 👩‍💻 基础Web开发练手项目系列:个人网站制作🚀 添加用户活动跟踪功能🔨使用分析工具🔧步骤 1: 选择分析工具🔧步骤 2: 注册Google Analytics账户🔧步骤 3: 获取Analytics…

Java面试题--JVM大厂篇之深入了解G1 GC:高并发、响应时间敏感应用的最佳选择

引言: 在现代Java应用的性能优化中,垃圾回收器(GC)的选择至关重要。对于高并发、响应时间敏感的应用而言,G1 GC(Garbage-First Garbage Collector)无疑是一个强大的工具。本文将深入探讨G1 GC适…

李一桐遭遇蜈蚣惊魂

李一桐遭遇“蜈蚣惊魂”!刘宇宁展现真男人本色在娱乐圈的幕后,总有一些心跳加速的惊险。近日,李一桐在拍戏时遭遇了一场“蜈蚣惊魂”,让无数粉丝和网友为她捏了一把冷汗。而在这场惊险的遭遇中,刘宇宁展现出了真男人的…

NOI大纲——普及组——二叉搜索树

二叉搜索树 二叉搜索树(Binary Search Tree,简称BST)是一种特殊的二叉树,它具有以下几个特点: 节点的左子树上的所有节点的值都小于或等于该节点的值。节点的右子树上的所有节点的值都大于或等于该节点的值。每个节点…

ActiveMq工具之管理页面说明

文章目录 安装ActiveMQ一: 访问管理页面二: 进入管理页面,主页三: Queues页说明四: Topics页说明五: Subscribers页说明 安装ActiveMQ wget https://archive.apache.org/dist//activemq/5.13.3/apache-activemq-5.13.3-bin.tar.gz wget https://mirrors.huaweiclou…

为什么越来越多的企业选择外包?赋能企业未来

软件开发过程包括设计需求、设计方案、产品研发、产品交付、后期维护,许多企业并沒有软件开发的专业能力与工作经验,将软件开发工作进行外包是比较节约成本的,企业能少走不少弯路。 YesPMP平台(一站式软件外包、项目外包服务-YesP…

UWA Pipeline 2.6.1版本更新

UWA Pipeline是专为游戏开发团队设计的本地协作平台,旨在帮助团队建立专业的DevOps研发交付流水线。本平台提供了可视化的CI/CD操作界面,高可用的自动化测试和无缝集成的UWA性能保障服务等核心功能。 在最新的Pipeline更新中,UWA引入了参数配…

protobufjs解析proto消息出错RangeError: index out of range: 2499 + 10 > 2499解决办法

使用websocket通讯传输protobuf消息的时候,decode的时候出错了: RangeError: index out of range: 2499 10 > 2499 Error: invalid wire type 4 at offset 1986 出现这种错误的时候,99%是因为proto里面的消息类型和服务端发送的消息类型不…

vue表头字段添加鼠标悬浮提示

<el-table-column prop"jfScore" align"center" min-width"100px"><template slot"header" slot-scope"scope"><div><span>信用积分</span><el-tooltip:aa"scope"class"it…

Java错题归纳(二)

1、若有如下接口A的定义&#xff0c;下列哪些类下确实现了该接口&#xff1a;C interface A { void method1(int i); void method2(int j); } A class B implements A{ void method1( ) { } void method2( ) { } } B class B implements A { void method1(int i ) { }…

关于windows,wifi图标显示不了的解决方法

解决方法一&#xff08;解决了我的问题的方法&#xff09;&#xff1a; winr -->输入 regedit 打开注册表 --> 删除HKEY-CLASSES_ROOT\CLSID\{3d09c1ca-2bcc-40b7-b9bb-3f3ec143a87b} CLSID在下面仔细找&#xff0c;然后找到09开头那个删掉重启就可以了&#xff0c;可能…

别小看ai智能语音机器人但也别神话它电销机器人部署语音识别‘次数活动

人类社会的发展不断在加速&#xff0c;现代人对新事物接纳的速度变得越来越快&#xff0c;进而对新事物、新模式的期待也越来越多、频率越来越高。 仅聚焦在电销领域&#xff0c;当将视线回拨&#xff0c;我们会发现作为新技术与新模式的代表&#xff0c;电销从20世纪中后期引进…

CAS服务端部署

部署CAS Cas服务端其实就是一个war包。 在资源\cas\source\cas-server-4.0.0-release\cas-server-4.0.0\modules目录下cas-server-webapp-4.0.0.war 将其改名为cas.war放入tomcat目录下的webapps下。启动tomcat自动解压war包。浏览器输入 登录页面 http://localhost:8080/ca…

nuxt3搭建和部署

Nuxt 3是一个基于Vue 3的静态网站生成框架&#xff0c;它提供了高性能、SEO友好的Web应用程序开发体验。Nuxt 3重写了许多核心代码&#xff0c;增加了新功能&#xff0c;如基于Vite的构建系统、改进的路由系统、数据获取和插件系统。它支持TypeScript和多种渲染模式&#xff08…

20240701 每日AI必读资讯

&#x1f3eb;AI真炼丹&#xff1a;整整14天&#xff0c;无需人类参与 - 英矽智能推出全球首个AI参与决策的生物学实验室&#xff0c;实现了14天内完成靶点发现和验证的全自动化闭环实验。 - 该实验室由PandaOmics平台驱动&#xff0c;集成多种预测模型和海量数据&#xff0…

conda安装d2l教程

前言 提前安装anaconda为什么直接安装d2l会出错&#xff1f;- 因为python版本问题&#xff0c;最好的解决办法就是利用conda来建立一个虚拟的环境 第一步 创建新的虚拟环境 打开conda命令行&#xff0c;也就是anaconda prompt输入下面的命令 conda create --name d2l pytho…

【Python】从基础到进阶(二):了解Python语言基础以及数据类型转换、基础输入输出

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、引言二、基本数据类型转换1. 隐式转换2. 显式转换 三、基本输入输出1. 输入&#xff08;input&#xff09;2. 输出&#xff08;print&#xff09;3. 案例&#xff1a;输入姓名、年龄、身高以及体重&#xff0c;计算BMI指…

《从零开始学习大语言模型》专栏来啦!

欢迎来到我的专栏LLM-from-scratch&#xff0c;这是一个致力于从零开始学习和掌握大语言模型的知识宝库。无论你是刚入门的新手&#xff0c;还是想要深入了解的高级用户&#xff0c;这里都有适合你的内容。以下是专栏的精彩章节&#xff1a; LLM-from-scratch-1.图解tokenizat…