Мне нужно настроить пул подключений в веб-приложении.Используя common-dbcp, я написал:
@Configuration
public class SpringConfig {
@Bean
@Singleton
public DataSource getDataSource() {
BasicDataSource basicDataSource = new BasicDataSource();
basicDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
basicDataSource.setUrl("jdbc:mysql://localhost:3306/db?serverTimezone=UTC");
basicDataSource.setUsername("name");
basicDataSource.setPassword("password");
basicDataSource.setInitialSize(5);
basicDataSource.setMinIdle(3);
basicDataSource.setMaxIdle(15);
basicDataSource.setMaxWait(10000);
basicDataSource.setMaxActive(100);
return basicDataSource;
}
}
Я пытаюсь настроить его с помощью файла database.properties.
@Configuration
@PropertySource("classpath:database.properties")
public class SpringConfig {
private @Value("${propertyName}") String propertyField;
@Bean
@Singleton
public DataSource getDataSource() {
BasicDataSource basicDataSource = new BasicDataSource();
basicDataSource.setConnectionProperties(propertyField);
return basicDataSource;
}
}
Я создал database.properties и поместил его в каталог src / main / resources .Содержание следующее:
driverClassName = "com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://localhost:3306/db"
username="user"
password="password"
Но оно говорит мне: " свойство не используется" .Что я делаю не так?
ОБНОВЛЕНИЕ
Решение :
@Configuration
@PropertySource("classpath:/database.properties")
public class SpringConfig {
@Autowired
Environment environment;
@Bean
@Singleton
public DataSource getDataSource() {
BasicDataSource basicDataSource = new BasicDataSource();
basicDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
basicDataSource.setUrl("jdbc:mysql://localhost:3306/dbname?serverTimezone=UTC");
basicDataSource.setUsername(environment.getProperty("username"));
basicDataSource.setPassword(environment.getProperty("password"));
..other actions is here
}
}
Важно:
Вы должны setUserName()
и setPassword()
в следующем порядке перед другими настройками.