DEV Community

eidher
eidher

Posted on • Edited on

External Properties in Spring

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; } } 
Enter fullscreen mode Exit fullscreen mode

app.properties file

db.driver=com.mysql.jdbc.Driver db.url=jdbc:mysql://localhost:3306/cas db.user=root db.password=123 
Enter fullscreen mode Exit fullscreen mode

@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; } } 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)