Java开发小知识-获取配置文件的值(转为Java对象)
创建项目:
引入依赖:
<!--spring boot 项目集成消息中间件基础依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-integration</artifactId><version>3.0.5</version></dependency><!--spring boot 项目和mqtt客户端集成起步依赖--><dependency><groupId>org.springframework.integration</groupId><artifactId>spring-integration-mqtt</artifactId><version>5.4.3</version></dependency><!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--fastjson--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.83</version></dependency>
配置application.yml文件做需要的属性
spring:mqtt:username: lisipassword: 123456url: 123123subClientId: 456subTopic: hellopubClientId: hello
创建配置属性类
在配置属性类上加注解
@Data
@ConfigurationProperties(prefix = “spring.mqtt”)
package mqtt;import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;@Data
@ConfigurationProperties(prefix = "spring.mqtt")
public class MqttProperties {private String username;private String password;private String url;private String subClientId;private String subTopic;private String pubClientId;
}
在启动类上加注解 @EnableConfigurationProperties(value = MqttProperties.class)
package mqtt;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.ConfigurableApplicationContext;@SpringBootApplication
@EnableConfigurationProperties(value = MqttProperties.class)
public class MqttApplicaiton {public static void main(String[] args) {ConfigurableApplicationContext context = SpringApplication.run(MqttApplicaiton.class, args);MqttProperties properties = context.getBean(MqttProperties.class);System.out.println("MQTT Username: " + properties.getUsername());System.out.println("MQTT Password: " + properties.getPassword());System.out.println("MQTT URL: " + properties.getUrl());System.out.println("SubClientId: " + properties.getSubClientId());}
}
测试结果: