您的位置:首页 > 编程语言 > Java开发

java加载properties配置文件的几种方法

2017-11-21 20:00 309 查看
在我们项目开发中经常的把一些属性以properties配置文件的形式进行配置,在项目中在从配置文件中读取。这样,可以方便的对属性进行修改,而不改变编译的代码。

1.以用流读取properties配置文件

Properties prop = new Properties();
InputStream inputStream = Class.class.getResourceAsStream("config.properties");
prop.load(inputStream); // 加载属性列表

2.注解读取properties配置文件(一)

@Controller
@RequestMapping("/mail")
public class ValuePropertyController extends ApplicationController{

@Value("#{configProperties['mail.hostl']}")  // @Value("${mail.host}")
private String host;

@RequestMapping
public String send(){
System.out.println(host);
return "";
}
}
applicationContext.xml
<bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath:config.properties</value>
</list>
</property>
</bean>

在xml配置文件加载.properties
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
<property name="properties" ref="configProperties" />
</bean>

config.properties
mail.host = ...

3.注解加载properties配置文件(二)

@Configuration
@PropertySource("classpath:config.properties")
public class  RequestProperties {

@Value("${demo.username}")
private String username;

@Value("${demo.password}")
private String password;
}

4.springboot加载配置文件

properties配置文件
connection.username=TP-home
connection.password=TH-home@126.com
定义一个实体类在装载配置文件信息

@Component
@ConfigurationProperties(prefix="connection")
public class ConfigProperties{
private String username;
private String password ;

public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

}
在xxxApplication类中配置bean的配置文件
@SpringBootApplication
public class DemoApplication{
//...
@Resource
private  ConfigProperties  configProperties;

@Bean
public JavaClass  javaclass (){

JavaClass  javaClass = new JavaClass();
javaClass.setxxx("",configProperties.getUsername());
javaClass.setxxx("",configProperties.getPassword() );

return javaClass;
}

public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
或在项目中,获取properties配置文件属性
@RestController
@RequestMapping("/user")
public class  UserController {

@Autowired
private ConfigProperties config;

@RequestMapping("getproper")
public String userInfo(){
String userName = config.getUsername();
return userName;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: