Я искал способ добавить источники данных во время выполнения. Я хочу отойти от определения источников данных в классе @Configuration и вместо этого, когда приложение загружается, я хочу динамически создавать bean-компоненты источника данных и вводить их в контекст Spring. Я не совсем уверен, как я могу это сделать.
Spring 4 Создание компонента программно
comment
Вы читали этот вопрос? http://stackoverflow.com/questions/15328904/dynamically-declare-beans-at-runtime-in-spring
- person Lukino   schedule 22.04.2015
comment
Я сделал, и я также видел и другие примеры. Я начал использовать Spring, когда это была Spring 4.x, я ищу новый способ или лучший способ.
- person Hatem Jaber   schedule 22.04.2015
comment
Я отправил ответ, дайте мне знать, что вы думаете.
- person Hatem Jaber   schedule 22.04.2015
Ответы (1)
Это то, с чем я столкнулся, не уверен, что это правильный подход или нет, если есть лучший способ, пожалуйста, поделитесь.
@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);
};
}
Это пример того, что я хочу сделать, но я хотел бы в конечном итоге иметь возможность динамически создавать bean-компоненты и добавлять их к ним в Spring, а не записывать файлы конфигурации.
person
Hatem Jaber
schedule
22.04.2015