Запустить менеджер баз данных HSQLDB при запуске приложения? - PullRequest
0 голосов
/ 27 июня 2011

Можно ли каким-то образом автоматически запускать менеджер баз данных HSQLDB, когда я работаю в локальной среде разработчика? Я сейчас использую БД в памяти. Я нашел некоторый код для запуска менеджера баз данных при выполнении тестовых случаев. Можно ли это использовать и при запуске веб-приложения?

org.hsqldb.util.DatabaseManagerSwing.main(new String[] { "--url","jdbc:hsqldb:mem:moviecollection", "--noexit" });

Ответы [ 3 ]

3 голосов
/ 27 июня 2011

Я предполагаю, что вы используете Spring, потому что вы пометили свой вопрос им.Вы можете создать bean-компонент Spring с методом, аннотированным аннотацией JSR-250 @PostConstruct.Метод, помеченный @PostConstruct, указывает, что метод должен быть вызван после того, как компонент был создан, и внедрение зависимости завершено.

@Component
public class Initializer
{
    @PostConstruct
    public void init()
    {
       org.hsqldb.util.DatabaseManagerSwing.main(new String[] { "--url","jdbc:hsqldb:mem:moviecollection", "--noexit" }); 
    }
}

Если вы запустите DatabaseManagerSwing с веб-приложением, оно будет создано и отображено на сервере, на котором выполняется WAR, на котором вы, вероятно, не хотите.

0 голосов
/ 27 июня 2011

если вы используете maven try exec java-программу , привяжите ее к deploy goal

я уверен, что есть похожие решения для проектов на основе муравьев

0 голосов
/ 27 июня 2011

Вам не нужно было начинать его эксплицитно.Достаточно, если вы настроите URL-адрес соединения и добавите баночки.

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
  <property name="url" value="jdbc:hsqldb:mem:demo"/>
  <property name="username" value="sa"/>
  <property name="password" value=""/>      <
</bean>
...