Fetching property values from the environment
@Configuration
public class DbConfig {
Environment env;
@Autowired
public DbConfig(Environment env) {
this.env = env;
}
@Bean
public JdbcTemplate dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(env.getProperty("db.driver"));
dataSource.setUrl(env.getProperty("db.url"));
dataSource.setUsername(env.getProperty("db.user"));
dataSource.setPassword(env.getProperty("db.password"));
JdbcTemplate jdbcTemplate = new JdbcTemplate();
jdbcTemplate.setDataSource(dataSource);
return jdbcTemplate;
}
}
app.properties file
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/cas
db.user=root
db.password=123
@PropertySource and @Value
@PropertySource annotation adds properties from other files in addition to environment variables and system properties. You can use classpath, file or http prefixes.
@Configuration
@PropertySource("classpath:/com/org/config/app.properties")
public class DbConfig {
@Bean
public JdbcTemplate dataSource(
@Value("${db.driver}") String driver,
@Value("${db.url}") String url,
@Value("${db.user}") String user,
@Value("${db.password}") String password) {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(driver);
dataSource.setUrl(url);
dataSource.setUsername(user);
dataSource.setPassword(password);
JdbcTemplate jdbcTemplate = new JdbcTemplate();
jdbcTemplate.setDataSource(dataSource);
return jdbcTemplate;
}
}
Top comments (0)