咱們在開發時,更願意使用速度更快,體積更小的H2數據庫,但有時候,咱們仍然想知道數據庫中到底發生了什麼。本文將闡述如何在開發時,使用spring-boot
內置的數據庫查看工具,來實現數據庫的查看。java
本文環境: spring-boot:2.0.3.RELEASE
+ spring-security
web
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.xml
的com.h2database
依賴一項中,去除scope
屬性。
啓動程序,咱們打開相應地址:數據庫
注意: 這裏須要將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
數據庫了。工具