【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:\WorkSpace\east-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'

 

posted @ 2019-09-26 10:23    阅读(4144)  评论(0编辑  收藏  举报