方案1
使用PropertiesLoaderUtils
import java.util.Properties; import org.springframework.core.io.Resource; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.support.PropertiesLoaderUtils; public static Properties readPropertiesFile(String fileName) { try { Resource resource = new ClassPathResource(fileName); Properties props = PropertiesLoaderUtils.loadProperties(resource); return props; } catch (Exception e) { System.out.println("读取配置文件:" + fileName + "异常,读取失败"); e.printStackTrace(); } return null; }
Properties properties = readPropertiesFile("application.properties"); System.out.println(properties.getProperty("spring.rabbitmq.host"));
方案2
使用Environment
import org.springframework.core.env.Environment; @Autowired private Environment environment; System.out.println(environment.getProperty("spring.rabbitmq.host"));
方案3
使用@Value
import org.springframework.beans.factory.annotation.Value; @Value("${spring.rabbitmq.host}") private String rabbitmqHost; System.out.println(rabbitmqHost);
方案4
使用@ConfigurationProperties
属性类
import lombok.Getter; import lombok.Setter; import org.springframework.boot.context.properties.ConfigurationProperties; @Getter @Setter @ConfigurationProperties(prefix = "spring.rabbitmq") public class TestProperties { private String host; private String port; private String username; private String password; }
注册属性配置类
import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; @EnableConfigurationProperties(TestProperties.class) @SpringBootConfiguration public class TestConfiguration { }
使用配置类
@Autowired private TestProperties testProperties; System.out.println(testProperties.getHost());
static静态方法读取配置
@Component public class UserUtil { // 使用@Value注解读取配置 @Value("${user.name}") private String name; // 设置静态成员变量用来接收@Value注入的值 private static String userName; // 使用@PostConstruct注解用于静态变量赋值 @PostConstruct public void getUserName() { userName = this.name; } // 测试方法静态变量是否被赋值 public static String test() { return userName; } }
调用示例:
String name = UserUtil.test();
使用 @Component 属性注解说明是需要在启动类 Application 启动的时候加载。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。