DEV Community

eidher
eidher

Posted on • Edited on

2 1

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)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more