spring-boot 使用自帶的管理界面查看H2數據庫內容

咱們在開發時,更願意使用速度更快,體積更小的H2數據庫,但有時候,咱們仍然想知道數據庫中到底發生了什麼。本文將闡述如何在開發時,使用spring-boot內置的數據庫查看工具,來實現數據庫的查看。java

本文環境: spring-boot:2.0.3.RELEASE + spring-securityweb

增長映射

spring-boot的數據庫管理控制檯的默認地址爲:h2-console。但該地址默認狀況,並無添加路由映射。也就是說,雖然org.h2.server.web.WebServlet這個包爲咱們提供了web管理界面,可是因爲spring-boot默認並無暴露它,因此咱們經過URL找不到。解決的方法,固然是爲其添加映射了。spring

package com.mengyunzhi.check_apply_online.config;

import org.h2.server.web.WebServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class WebConfig {
    /**
     * 添加h2控制檯的映射地址
     * @return
     * @author 河北工業大學夢雲智開發團隊 panjie
     */
    @Bean
    ServletRegistrationBean h2servletRegistration(){
        ServletRegistrationBean registrationBean = new ServletRegistrationBean( new WebServlet());
        registrationBean.addUrlMappings("/h2-console/*");
        return registrationBean;
    }
}
若是出現找不到 WebServlet提示,請在 pom.xmlcom.h2database依賴一項中,去除 scope屬性。

啓動程序,咱們打開相應地址:數據庫

clipboard.png

注意: 這裏須要將 jdbc url更改成 spring-boot爲咱們默認建立的數據庫 jdbc:h2:mem:testdb,而後點擊 connect。不然,是看不到咱們的數據表的。

此時,若是你也使用了spring-security,將會獲得一個空白界面,若是你沒有使用,應該已經正常訪問了。app

添加frame支持

空白界面是因爲H2的控制檯,使用的是frame結構,而spring-security默認是關閉了該選項。ide

此時,咱們應該來到spring-security配置下,增長對frame的支持:spring-boot

package com.mengyunzhi.check_apply_online.config;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.http.HttpMethod;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.builders.WebSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.csrf.CookieCsrfTokenRepository;

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    static final Logger logger = LoggerFactory.getLogger(SecurityConfig.class);

 
    @Override
    protected void configure(HttpSecurity httpSecurity) throws Exception {
        logger.info("設置httpSecurity:認證方式,除註冊地址之外,其它受權請求.");
        ...
    
        // to enable h2 web console
        httpSecurity.csrf().disable();
        httpSecurity.headers().frameOptions().disable();
    }

}

此時,咱們再次打開 h2控制檯,選擇好鏈接的數據庫後,點擊鏈接,便可以查看和編輯H2數據庫了。工具

相關文章
相關標籤/搜索