Настройка базы данных H2 в памяти без Spring Boot

Я работаю в проекте Spring 5 (Not Sprig Boot). Мне нужно протестировать свое приложение с базой данных H2 в памяти. Я использую Spring с Java Config в инструменте сборки maven. Есть ли способ настроить H2 DB в памяти?

2
0
2 285
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Обычно я использую это в своем классе @Config:

@Bean
public DataSource h2TestDataSource(){
   return new EmbeddedDatabaseBuilder().setType(EmbeddedDatabaseType.H2).build();
}

Поэтому я использую Spring Embedded DB в своих весенних проектах (я не использую весеннюю загрузку)

Надеюсь, это будет полезно.

Вы можете добавить bean-компонент DataSource с помощью EmbeddedDatabaseBuilder следующим образом:

@Bean
public DataSource dataSource(
        @Value("${datasource.dbname}") String dbname,
        @Value("${datasource.script}") String script) {

    return new EmbeddedDatabaseBuilder()
            .setType(EmbeddedDatabaseType.H2)
            .setName(dbname)
            .addScript(script)
            .build();
}

application.properties

datasource.dbname=users
datasource.script=classpath:resources/users.sql

Также вы можете зарегистрировать сервлет h2-console в классе конфигурации приложения следующим образом:

@Configuration
public class WebAppConfig implements WebApplicationInitializer {
    @Override
    public void onStartup(ServletContext servletContext) {
        . . .

        servletContext
                .addServlet("H2Console", WebServlet.class)
                .addMapping("/console/*");

        . . .
    }
}

Затем вы можете открыть http://localhost:8080/console и подключиться к базе данных jdbc:h2:mem:users следующим образом:

login.jsp


See also How to enable h2-console in spring-webmvc without spring-boot?

Другие вопросы по теме