我正在尝试从属性文件中获取一个值,下面是我尝试注入URL的过程。不确定我这样做是否正确。
我已经在属性文件中为URL设置了一些东西,我非常确定我的注入方法是错误的,但我是一个java新手,所以我不能真正弄清楚解决方案。
public class DatabaseHelperClass {
static String URL;
@Value("${databaseURL}")
public void propertiesSetter(String URL) {
DatabaseHelperClass.URL = URL;
}
public static Connection getOracleConnection() throws SQLException{
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
}
catch(ClassNotFoundException ex) {
System.out.println("Error: unable to load driver class");
System.exit(1);
}
catch(IllegalAccessException ex) {
System.out.println("Error: access problem while loading");
System.exit(2);
}
catch(InstantiationException ex) {
System.out.println("Error: unable to instantiate driver");
System.exit(3);
}
System.out.print(URL);
Connection connection = null;
System.out.println();
try {
connection = DriverManager.getConnection(URL);
System.out.print(connection);
}
catch(SQLException e) {
System.out.println(e.getMessage());
}
return connection;
}发布于 2019-07-16 00:58:43
在applicationContext.xml,中,您必须添加要从类路径读取的属性文件:
<context:property-placeholder location="classpath:something.properties, classpath:demo.properties" />如果要添加多个属性文件,只需用逗号分隔即可
像这样更新你的类:
public class DatabaseHelperClass {
@Value("${databaseURL}")
static String URL;
public static Connection getOracleConnection() throws SQLException{
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
}
catch(ClassNotFoundException ex) {
System.out.println("Error: unable to load driver class");
System.exit(1);
}
catch(IllegalAccessException ex) {
System.out.println("Error: access problem while loading");
System.exit(2);
}
catch(InstantiationException ex) {
System.out.println("Error: unable to instantiate driver");
System.exit(3);
}
System.out.print(URL);
Connection connection = null;
System.out.println();
try {
connection = DriverManager.getConnection(URL);
System.out.print(connection);
}
catch(SQLException e) {
System.out.println(e.getMessage());
}
return connection;
}发布于 2019-07-16 01:01:17
如果你使用的是Spring框架,我想简单地写@Value注解是行不通的。您必须编写一个调用,它有助于识别属性文件名。我在下面提供了一个例子。
@Configuration
@PropertySources({
@PropertySource("file:config/credentials-config.properties"),
@PropertySource("file:config/app-config.properties")
})
public class ConfigReader {
@Bean
public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
return new PropertySourcesPlaceholderConfigurer();
}
}https://stackoverflow.com/questions/57044151
复制相似问题