@Override public void configure(final Env env, final Config config, final Binder binder) { Key<DataSource> dskey = Key.get(DataSource.class, Names.named(name)); DataSource ds = env.get(dskey) .orElseThrow(() -> new NoSuchElementException("DataSource missing: " + dskey)); Database db = Database.fromDataSource(ds); env.serviceKey().generate(Database.class, name, k -> binder.bind(k).toInstance(db)); // close on shutdown env.onStop(db::close); } }
@Bean public Database db(DataSource ds){ return Database.fromDataSource(ds); } }