(新人职场必学的开发经验)IDEA启动企业项目的配置梳理与经验总结

news/2024/6/18 21:37:53 标签: intellij-idea, java, spring boot, 项目启动, profile

在新入职公司的前期阶段,每次拉取新的项目代码就需要请教同事如何启动,期间采了很多坑,现总结记录如下,方便日后回顾和大家借鉴

如图,我们拉取一个项目代码后,会发现有多个模块构成,本案例就有三个模块构成,这些模块共同配合实现一个产品的功能。此时我负责的是server模块的代码开发,经过询问同事得知,若要启动这个项目,只需要启动server模块即可,不需要启动其他模块。当大家启动自己的项目时候,需要提前问清楚这一点。

在这里插入图片描述
再来看看server模块如何启动。我们都清楚,一个springboot的项目,启动的配置信息都在yml文件里面,此图展示了多个配置文件。这些文件有什么区别呢,我们又需要使用哪个呢?

我们在开发SpringBoot应用时,通常同一套程序会被应用和安装到几个不同的环境,比如:开发、测试、生产等。其中每个环境的数据库地址、服务器端口等等配置都会不同,如果在为不同环境打包时都要频繁修改配置文件的话,那必将是个非常繁琐且容易发生错误的事。


对于多环境的配置,各种项目构建工具或是框架的基本思路是一致的,通过配置多份不同环境的配置文件,再通过打包命令指定需要打包的内容之后进行区分打包,SpringBoot也不例外,或者说更加简单。
【参考文章一,点击查看】
【参考文章二,点击查看】

  • application.yml:默认配置
  • application-dev.yml:开发环境
  • application-test.yml:测试环境
  • application-prod.yml:生产环境
  • application-local.yml:本地环境 -------这是我修改的新的本地运行的环境,为何操作这一步,因为我需要在本地环境上启动测试,后面细说

我们可以看看具体的内容

# application.yml具体内容
spring:
  profiles:
    active: local

这地方是什么意思呢,就是告诉springboot,启动的时候选择 application-local.yml 配置文件去执行。

# application-local.yml具体内容
1. 首先是修改数据库,需要哪个环境下的数据库供你测试(因为公司会有很多很多的数据库,里面的数据也是不一样的)
2. 修改涉及到的服务连接环境(本项目涉及到了kafka,elasticsearch,consul,redis等等技术栈,这些技术栈都需要连接到指定的环境,比如公司的某台服务器上,人家的服务器是启动这些的,不需要我们本地启动)

启动方式一

  1. 修改application.yml
  2. 修改application-local.yml
  3. 启动

启动方式二

  1. 我们公司的大佬嫌弃每次需要修改application.yml 太麻烦,就写了一个工具类,使得我们以后不需要修改application.yml 文件,而是在idea启动设置中修改
    在这里插入图片描述

在这里插入图片描述

  1. 启动即可

既然如此我们就顺带介绍一个这个面板的功能,简单看一下含义就行,用到了再去查
在这里插入图片描述
【参考文章,点击查看】


http://www.niftyadmin.cn/n/4943651.html

相关文章

关于如何创建一个windows窗口的exe文件

如何创建一个windows窗口exe文件,具体参照这个博主: http://t.csdn.cn/pfQK5 以下是实现代码,注意用vs打开: #pragma comment( linker, "/subsystem:\"windows\" /entry:\"WinMainCRTStartup\"" …

STM32CubeMx之esp8266的at指令使用

AT //返回ok则为正常 ATCWMODE1//设置为设备模式 ATCWLAP//搜索附近可用wifi ATCWJAP"CMCC-5-7","chb513029"//连接热点 ATCIPMUX0//设置wifi为单连接 ATCIPSTART"TCP","192.168.37.1",1001//连接tcp 这里遇到了重重问题 这里我…

java面试题:HashMap和HashTable的区别、HashMap底层实现原理和扩容机制

一 HashMap和HashTable的区别 HashMap 和 HashTable 都是 Java 中用于存储键值对的数据结构,但它们有一些重要的区别。以下是 HashMap 和 HashTable 的主要区别: 线程安全性: HashMap 是非线程安全的。多个线程可以同时访问和修改 HashMap&a…

C++学习笔记总结练习:复数类complex的实现

C中的复数类是一种用于表示和操作复数的自定义数据类型。复数由实部和虚部组成&#xff0c;可以表示为a bi的形式&#xff0c;其中a是实部&#xff0c;b是虚部&#xff0c;i是虚数单位。 下面是一个简单的复数类的实现示例&#xff1a; #include <iostream>class Comp…

信息与通信工程面试准备——信号与系统|10:23

8月16日 23:21 目录 ​编辑 1. 调制的作用 2. 放大器与振荡器的作用和区别 工作原理 输出信号 应用 反馈方式 设计复杂度 装置性质 3. 信号与系统&#xff1a;三大变换之间的关系&#xff1f; 4. 无码间串扰的条件 5. 冲激函数的作用&#xff1f; 研究的意义&…

1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零

1049. 最后一块石头的重量 II class Solution { public:int lastStoneWeightII(vector<int>& stones) {vector<int>dp(15001,0);int sum0;for(int i0;i<stones.size();i)sumstones[i];int targetsum/2;for(int i0;i<stones.size();i){for(int jtarget;j…

开发测试框架一 - 创建springboot工程及基础操作

一、创建及运行方式 1. 从官网导入&#xff1a; 注意&#xff1a;由于我的java版本是1.8&#xff1b;所以选中了spring2.7.14&#xff1b;如果你的java版本是9及以上&#xff0c;选中spring3相关的同时Java 版本也要对应起来 2. 创建第一个get请求 创建Controller package及…

强化学习A3C算法

强化学习A3C算法 效果&#xff1a; a3c.py import matplotlib from matplotlib import pyplot as plt matplotlib.rcParams[font.size] 18 matplotlib.rcParams[figure.titlesize] 18 matplotlib.rcParams[figure.figsize] [9, 7] matplotlib.rcParams[font.family]…