zoukankan      html  css  js  c++  java
  • 【Java】SpringBoot 中从application.yml中获取自定义常量

      由于这里我想通过java连接linux,connection连接需要host、port、username、password及其他路径等等。不想每次修改的时候都去改源文件,所以想写在application.yml配置文件中,然后读取。

      首先需要在pom.xml中增加以下依赖,支持 @ConfigurationProperties 注解

    <!-- 支持 @ConfigurationProperties 注解 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <optional>true</optional>
    </dependency>

      然后再application.yml配置文件中增加我需要的ssh常量。

    ssh:
      host: 192.168.8.100
      port: 22
      username: root
      password: password

      创建一个bean接收常量,需要 @ConfigurationProperties 注解

      @Data为lombok注解省略setter和getter

      @Component 注册为bean

      @ConfigurationProperties 读取配置文件

    package com.easyci.ci.entity;
    
    import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    
    @Data
    @Component
    @ConfigurationProperties("ssh")   //接收配置文件中“ssh”下的属性值
    public class SshProperties {
        private String host;   
        private Integer port;
        private String username;
        private String password;
    }

    测试:

    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class CiApplicationTests {
    
        @Autowired
        private SshProperties sshProperties;
    
        @Test
        public void contextLoads() {
            Connection con = ConnectUtil.getConnect(sshProperties.getHost(),sshProperties.getUsername(),sshProperties.getPassword(),sshProperties.getPort());
            System.out.println(con);
        }
    
    }

    结果:

      .   ____          _            __ _ _
     /\ / ___'_ __ _ _(_)_ __  __ _    
    ( ( )\___ | '_ | '_| | '_ / _` |    
     \/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::        (v2.1.8.RELEASE)
    
    2019-09-26 09:58:12.540  INFO 7420 --- [           main] com.easyci.ci.CiApplicationTests         : Starting CiApplicationTests on DESKTOP-ANG78AB with PID 7420 (started by jxd in D:WorkSpaceeast-ci)
    2019-09-26 09:58:12.540  INFO 7420 --- [           main] com.easyci.ci.CiApplicationTests         : No active profile set, falling back to default profiles: default
    2019-09-26 09:58:13.448  INFO 7420 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
    2019-09-26 09:58:13.660  INFO 7420 --- [           main] com.easyci.ci.CiApplicationTests         : Started CiApplicationTests in 1.345 seconds (JVM running for 2.042)
    服务器连接成功.
    ch.ethz.ssh2.Connection@38ee7a9d
    2019-09-26 09:58:14.218  INFO 7420 --- [       Thread-3] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'
    Disconnected from the target VM, address: '127.0.0.1:54934', transport: 'socket'
  • 相关阅读:
    利用Python imaplib和email模块 读取邮件文本内容及附件内容
    sqlachemy 查询当日数据,
    【Flask】abort和errorhandler、app_errorhandler进行请求中断及自定义异常处理
    CentOS 7 安装与卸载MySQL 5.7
    解决python2.7 UnicodeDecodeError和UnicodeEncodeError问题
    python常用的十进制、16进制、字符串、字节串之间的转换
    Python任务调度模块 – APScheduler,Flask-APScheduler实现定时任务
    flask celery 使用方法
    Linux权限详解 命令之 chmod:修改权限
    MySQL中无GROUP BY直接HAVING的问题【转】
  • 原文地址:https://www.cnblogs.com/jxd283465/p/11589281.html
Copyright © 2011-2022 走看看