`
jin8000608172
  • 浏览: 140109 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JAVA根据环境变量初始化系统配置

 
阅读更多
import java.util.Properties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.MutablePropertySources;
import org.springframework.core.env.PropertiesPropertySource;

@Configuration
public class InitProperties
  implements ApplicationListener<ApplicationEnvironmentPreparedEvent>
{
  private static final Logger log = LoggerFactory.getLogger(InitProperties.class);
  private static final String nacos_fat = "139.155.27.221:8848";
  private static final String nacos_prod = "119.27.187.243:8848";
  private static final String nacos_dev = "118.24.108.222:8848";
  private static final String zipkin_fat = "http://118.24.108.222:9411";
  
  public void onApplicationEvent(ApplicationEnvironmentPreparedEvent event)
  {
    ConfigurableEnvironment environment = event.getEnvironment();
    
    String[] actives = environment.getActiveProfiles();
    
    String active = "fat";
    if ((actives != null) && (actives.length > 0)) {
      active = actives[0];
    }
    Properties props = new Properties();
    
    props.put("management.endpoints.web.exposure.include", "*");
    
    props.put("nacos.config.server-addr", "139.155.27.221:8848");
    props.put("management.endpoint.health.show-details", "always");
    
    props.put("spring.jackson.time-zone", "GMT+8");
    props.put("spring.jackson.serialization.write-dates-as-timestamps", Boolean.valueOf(true));
    if ("fat".equals(active))
    {
      props.put("spring.cloud.nacos.discovery.server-addr", "139.155.27.221:8848");
      
      props.put("spring.cloud.nacos.discovery.namespace", "fat");
      
      props.put("spring.zipkin.baseUrl", "http://118.24.108.222:9411");
      
      props.put("spring.redis.host", "118.24.108.222");
      props.put("spring.redis.port", "6379");
      props.put("spring.redis.password", "lgl250??");
      props.put("spring.redis.lettuce.pool.max-active", "8");
      props.put("spring.redis.lettuce.pool.max-idle", "8");
      props.put("spring.redis.lettuce.pool.max-wait", "8");
      props.put("spring.redis.lettuce.pool.min-idle", "8");
      
      
    }
    else if ("prod".equals(active))
    {
      props.put("spring.cloud.nacos.discovery.server-addr", "119.27.187.243:8848");
      props.put("spring.cloud.nacos.discovery.namespace", "prod");
      
      props.put("swagger.production", Boolean.valueOf(true));
      
      props.put("spring.redis.host", "10.0.0.2");
      props.put("spring.redis.port", "6379");
      props.put("spring.redis.password", "oLM0Bh!zn450");
      props.put("spring.redis.lettuce.pool.max-active", "8");
      props.put("spring.redis.lettuce.pool.max-idle", "8");
      props.put("spring.redis.lettuce.pool.max-wait", "8");
      props.put("spring.redis.lettuce.pool.min-idle", "8");
      
      
    }
    else if ("dev".equals(active))
    {
      props.put("spring.cloud.nacos.discovery.server-addr", "118.24.108.222:8848");
      props.put("spring.cloud.nacos.discovery.namespace", "dev");
      
      props.put("spring.redis.host", "118.24.108.222");
      props.put("spring.redis.port", "6379");
      props.put("spring.redis.password", "lgl250??");
      props.put("spring.redis.lettuce.pool.max-active", "8");
      props.put("spring.redis.lettuce.pool.max-idle", "8");
      props.put("spring.redis.lettuce.pool.max-wait", "8");
      props.put("spring.redis.lettuce.pool.min-idle", "8");
      
      
    }
    environment.getPropertySources().addFirst(new PropertiesPropertySource("nacos-config", props));
  }
}


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.sleuth.zipkin2.ZipkinProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Profile;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;

@Service
@Order(-100)
public class ZipkinConfigService
{
  private static final Logger log = LoggerFactory.getLogger(ZipkinConfigService.class);
  @Autowired
  ZipkinProperties zipkinProperties;
  
  @Profile({"fat"})
  @Bean
  public void initDev()
  {
    
    this.zipkinProperties.setBaseUrl("http://118.24.108.222:9411");
  }
  
  @Profile({"prod"})
  @Bean
  public void initProd()
  {
    
    this.zipkinProperties.setBaseUrl("http://118.24.108.222:9411");
  }
}



<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath/>
</parent>
<groupId>com.xxx.business</groupId>
<artifactId>business-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>business-parent</name>
<inceptionYear>2012-Now</inceptionYear>
<properties>
<!--  Environment Settings  -->
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR8</spring-cloud.version>
<zipkin.version>2.10.1</zipkin.version>
<nacos.version>0.2.7</nacos.version>
<nacos.cloud.version>2.2.1.RELEASE</nacos.cloud.version>
</properties>
<dependencies>
<!--  BOM Begin  -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.6</version>
</dependency>
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-discovery-spring-boot-starter</artifactId>
<version>${nacos.version}</version>
</dependency>
<!--  nacos config  -->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>${nacos.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-actuator</artifactId>
<version>${nacos.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${nacos.cloud.version}</version>
</dependency>
<!--  ZipKin Begin  -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
<!--  ZipKin End  -->
<!--  Spring Boot Admin Begin  -->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--  Spring Boot Admin End  -->
<!--  spring cloud  -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!--  基础配置  -->
<dependency>
<groupId>com.xxx.business</groupId>
<artifactId>base-config</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<!--  Compiler 插件, 设定 JDK 版本  -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
<!--  打包 jar 文件时,配置 manifest 文件,加入 lib 包的 jar 依赖  -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
</configuration>
<executions>
<execution>
<configuration>
<archive>
<manifest>
<!--  Add directory entries  -->
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
</execution>
</executions>
</plugin>
<!--  resource  -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
</plugin>
<!--  install  -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
</plugin>
<!--  clean  -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
</plugin>
<!--  ant  -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
</plugin>
<!--  dependency  -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<!--  Java Document Generate  -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<show>private</show>
<additionalOptions>-Xdoclint:none</additionalOptions>
</configuration>
</plugin>
<!--  YUI Compressor ((CSS/JS压缩)  -->
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.5.1</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>compress</goal>
</goals>
</execution>
</executions>
<configuration>
<encoding>UTF-8</encoding>
<jswarn>false</jswarn>
<nosuffix>true</nosuffix>
<linebreakpos>30000</linebreakpos>
<force>true</force>
<includes>
<include>**/*.js</include>
<include>**/*.css</include>
</includes>
<excludes>
<exclude>**/*.min.js</exclude>
<exclude>**/*.min.css</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<!--  资源文件配置  -->
<resources>
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
<repositories>
<repository>
<id>aliyun-repos</id>
<name>Aliyun Repository</name>
<url>
http://maven.aliyun.com/nexus/content/groups/public
</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>nexus-private</id>
<name>nexus-private</name>
<url>
http://139.155.27.221:8081/repository/maven-snapshots
</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>maven-releases</id>
<name>Nexus Release Repository</name>
<url>
http://139.155.27.221:8081/repository/maven-releases/
</url>
</repository>
<snapshotRepository>
<id>maven-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>
http://139.155.27.221:8081/repository/maven-snapshots/
</url>
</snapshotRepository>
</distributionManagement>
<pluginRepositories>
<pluginRepository>
<id>aliyun-repos</id>
<name>Aliyun Repository</name>
<url>
http://maven.aliyun.com/nexus/content/groups/public
</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>

分享到:
评论

相关推荐

    JAVA读取环境变量

    这些环境变量包含了操作系统配置的重要信息,比如路径设置、用户信息等。本文将详细介绍如何在Java程序中实现跨平台地读取环境变量,并给出一个具体的示例代码进行解析。 #### 获取环境变量的重要性 在开发过程中...

    java环境变量设置

    本文将详细介绍如何在Windows操作系统中设置Java环境变量。 #### 二、Java环境变量设置步骤 ##### 1. 设置JAVA_HOME `JAVA_HOME`是JDK安装路径的环境变量。这一步至关重要,因为它指向了JDK的主目录,使得系统...

    java运行时环境初始化时出现错误您可能需要重新安装Flash文.pdf

    ### Java 运行时环境初始化错误及解决方案 #### 问题背景 在使用Adobe Flash CS5等Adobe产品时,用户可能会遇到“Java运行时环境初始化错误”的提示。这通常发生在使用了精简版或某些特定版本的Adobe软件时,因为...

    Linux环境变量-在linux系统下.doc

    `/etc/bashrc`通常用于设置用户级别的配置,而`/etc/profile`用于全局系统配置。 设置环境变量有三种常见方法: 1. **在/etc/profile中添加变量** - 这种方法将变量设置为对所有用户永久生效。例如,为了设置`...

    jdk环境变量总结

    在Java编程中,JDK环境变量的正确配置是运行和开发Java程序的基础。这些环境变量指示操作系统如何找到Java的安装位置,以及如何执行相关的Java工具。以下是几个关键的JDK环境变量及其详细解释: 1. **JAVA_HOME**: ...

    安装oracle数据库的环境变量设置

    本文将根据提供的部分内容,详细介绍与解释相关的环境变量设置。 #### 一、环境变量概览 首先,我们来看一下部分核心环境变量及其作用: 1. **`ORACLE_HOME`**: 指定Oracle产品的安装目录。 2. **`ORACLE_SID`**:...

    中海油.LW3-1气田Maximo系统.搭建与初始化配置手册

    手册可能详述了如何下载并安装Maximo安装程序,如何配置系统环境变量,以及如何处理可能出现的依赖问题。 2. **Weblogic11g应用服务器**:Weblogic11g是Oracle公司的一个中间件产品,常作为Java应用服务器使用。在...

    accp5.0java第二章变量(二)

    环境变量通常指的是系统级别的变量,它们对Java应用程序的运行环境产生影响。例如,JAVA_HOME环境变量指定了JDK安装的位置,PATH环境变量包含执行Java命令的路径。在编程过程中,我们较少直接操作环境变量,但在配置...

    linux-oracle环境变量及自启动脚本

    在Linux系统中,Oracle数据库的运行依赖于一系列的环境变量设置和自启动脚本的配置。这些要素确保了数据库服务的稳定性和可管理性。本文将深入探讨与"linux-oracle环境变量及自启动脚本"相关的知识点。 一、Oracle...

    Centos 7环境开发者环境初始化脚本

    初始化脚本将负责下载和安装JDK,并设置相应的环境变量,如`JAVA_HOME`,以便其他依赖Java的应用可以正常工作。 2. **Maven**:Maven是Apache软件基金会开发的一个项目管理和综合工具,主要用于Java项目。它通过...

    CentOS7 安装JDK8 + MySQL8 + Tomcat9并配置环境变量.pdf

    为了使Java环境可用,需要配置环境变量。打开/etc/profile文件,使用vi编辑器添加JAVA_HOME、CLASSPATH和PATH变量,确保它们指向正确的JDK路径。编辑完成后,执行source /etc/profile命令使配置生效,最后通过java -...

    JAVA的配置

    1. **Java环境变量配置**: - **JAVA_HOME**:这个环境变量用于设置Java开发工具集(JDK)的安装路径。确保程序能找到Java的二进制文件,如`java.exe`和`javac.exe`。 - **PATH**:添加%JAVA_HOME%\bin到PATH变量...

    java环境配置快捷脚本

    1. **Java环境配置**:`java环境变量.bat`是用于设置Java开发环境的关键脚本。它会帮助用户配置JAVA_HOME、JRE_HOME、PATH等系统环境变量,确保Java可执行文件能在命令行中被正确调用。安装Java时,需要下载适合操作...

    java虚拟机环境配置.pdf

    配置JDK通常需要设置JAVA_HOME环境变量,使其指向JDK安装目录,并将%JAVA_HOME%\bin路径添加到系统path环境变量中,以便在命令行中直接使用java和javac命令。 2. Tomcat服务器配置:Tomcat是一个开源的Servlet容器...

    java-dotenv,dotenv是一个从.env文件加载环境变量的模块.zip

    开发者可以通过调用`Dotenv.load()`或`Dotenv.config()`方法来初始化环境变量。此外,该库还支持自定义`.env`文件路径、处理缺失环境变量的策略以及忽略特定变量等功能,使得环境变量管理更加灵活。 在实际项目中,...

    自然语言处理java开发环境配置.docx

    在安装过程中,可能需要设置环境变量,具体操作步骤是控制面板-&gt;系统和安全-&gt;系统-&gt;高级系统设置-&gt;高级-&gt;环境变量。 二、Eclipse 开发工具安装 Eclipse 是一个流行的集成开发环境(IDE),它提供了一个功能强大...

    图解1-安装JDK和配置环境变量

    在安装过程中,系统会进行一些初始化设置,可能需要一段时间。耐心等待,直到出现下一步的提示。 3. **选择安装路径** 在安装路径选择环节,你可以选择默认路径或者自定义路径来保存JDK文件。如果你选择自定义,...

    Android游戏开发-02初始化环境.WMV

    9. **环境变量配置**: 包括设置`ANDROID_HOME`指向SDK的安装路径,以及确保`PATH`变量包含了JDK和SDK的可执行文件。 10. **版本控制**: Git通常用于版本控制,确保代码的安全和团队协作的效率。 11. **插件和扩展*...

    java运行环境搭建

    - 在“控制面板”-&gt;“系统”-&gt;“高级系统设置”-&gt;“环境变量”中添加或编辑环境变量。 - 添加`JAVA_HOME`变量:值为JDK的安装路径,例如:`F:\java\jdk1.8.0_05`。 - 修改`Path`变量:在`Path`的末尾加上`%JAVA_...

Global site tag (gtag.js) - Google Analytics