• 【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'
  • 相关阅读:
    底部导航栏
    判断手机是否连接网络
    瀑布流(圆角,卡片效果)
    列表卡片效果
    使用Glide改变图片的圆角
    条形码EAN-13码和EAN-8码的原理
    自定义底部弹窗
    【代码笔记】Java常识性基础补充(一)——赋值运算符、逻辑运算符、三元运算符、Scanner类、键盘输入、Random类、随机数
    【Android】9.0活动的生命周期(二)——实际代码演示
    【Android】8.0活动的生命周期(一)——理论知识、活动的启动方式
  • 原文地址:https://www.cnblogs.com/jxd283465/p/11589281.html
Copyright © 2020-2023  润新知