Я искал способ добавления источников данных во время выполнения. Я хочу уйти от определения источников данных в классе @Configuration, а вместо этого, когда приложение загружается, я хочу динамически создавать компоненты источника данных и вводить их в контекст Spring. Я не совсем уверен, как я могу это сделать.Spring 4 Create Bean Programmatically
-1
A
ответ
0
Это то, с чем я закончил, не уверен, что это правильный подход или нет, если есть лучший способ поделиться им.
@Component
class SpringContextListener implements ApplicationListener<ContextRefreshedEvent> {
public void onApplicationEvent(ContextRefreshedEvent event) {
org.apache.tomcat.jdbc.pool.DataSource ds = new org.apache.tomcat.jdbc.pool.DataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUrl("jdbc:mysql://MySQL:3306/test?useUnicode=true&characterEncoding=utf8&maxAllowedPacket=512000");
ds.setUsername("MYUSERNAME");
ds.setPassword("MYPASSWORD");
ConfigurableApplicationContext ctx = (ConfigurableApplicationContext) event.getApplicationContext();
ConfigurableListableBeanFactory bf = ctx.getBeanFactory();
bf.registerSingleton("mysqlDSN", ds);
};
}
Это пример того, что я хочу сделать, но я хотел бы, чтобы в конечном итоге иметь возможность динамически создавать бобы и добавить их к ним весной, а не выписывая конфигурационные файлы.
Вы прочитали этот вопрос? [http://stackoverflow.com/questions/15328904/dynamically-declare-beans-at-runtime-in-spring](http://stackoverflow.com/questions/15328904/dynamically-declare-beans-at-runtime- весна) – Lukino
Я сделал, и я также видел другие примеры. Я начал использовать весну, когда она была весной 4.x, я ищу новый способ или лучший способ. –
Я отправил ответ, дайте мне знать, что вы думаете. –