【发布时间】:2017-01-15 10:59:01
【问题描述】:
我正在尝试一个简单的 spring 程序,它有一个名为 PersistenceConfig 的类,并用 @Configuration 注释
@Configuration
@PropertySource("classpath:application.properties")
public class PersistanceConfig {
@Value("${dbPassword}")
private String dbPassword;
// Set of Beans and Code
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
dataSource.setUrl("jdbc:sqlserver://localhost;databaseName=GovernmentPayment;integratedSecurity=false;");
dataSource.setUsername("sa");
dataSource.setPassword(dbPassword);
return dataSource;
}
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
}
当我运行我的程序时,值 dbPassword 始终为空,但如果我尝试在我的控制器中读取相同的值,它会毫无问题地读取该值。 我已经尝试自动装配环境变量并使用它而不是 @Value 但它也不起作用。 (Spring 没有向环境变量注入值)
我正在使用 Spring 4
基本上想要的是将数据库用户名和密码外部化到一个单独的属性文件中。
【问题讨论】:
-
您是否在控制台中遇到任何错误?发布堆栈跟踪
-
我得到的唯一错误是无法打开与数据库的连接,因为我的用户名和密码为空。 com.microsoft.sqlserver.jdbc.SQLServerException:用户“”登录失败。 ClientConnectionId:8cf68ac0-9c5c-4fa8-94df-ee64e5cb8319
-
任何警告?发布完整的堆栈跟踪,它有助于确定根本原因。
标签: java spring configuration