FaustPipeDream / -

学习笔记
0 stars 0 forks source link

spring-boot下 hibernate的配置 #1

Open FaustPipeDream opened 6 years ago

FaustPipeDream commented 6 years ago

基于spring-boot的hibernate配置,使用druid数据源

步骤如下:

1.在pom文件中引入相应的依赖 2.配置application.properties文件 3.配置druid数据源

FaustPipeDream commented 6 years ago

在pom文件中引入相应的依赖

需要引入的依赖如下: 1.mysql-connector-java mysql-connector-java为官方mysql连接驱动,连接mysql数据库必备,若使用其他数据库请去maven仓库寻找相应连接驱动。

  1. spring-boot-starter-data-jpa spring-boot-starter-data-jpa是Spring基于Hibernate开发的一个JPA框架。 3.druid-spring-boot-starter Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。 4.spring-boot-starter-test spring-boot提供的基于junit的测试框架,可以便捷的实现spring框架下的测试工作。 5.spring-boot-starter-web spring-boot下实现web页面必须引入的依赖,此处引入是为了配置 Druid的一些过滤器。
FaustPipeDream commented 6 years ago

配置application.properties文件

完整配置如下: //数据库设置 spring.datasource.driver-class-name=com.mysql.jdbc.Driver //指定jdbc驱动,此处指定为mysql驱动 spring.datasource.url=jdbc:mysql://localhost:3306/forum?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=true//配置数据源连接 spring.datasource.username=username spring.datasource.password=password

//Druid 数据源配置,继承spring.datasource. 配置,相同则覆盖 数据源配置参考 spring.datasource.druid.initial-size=2 spring.datasource.druid.max-active=30 spring.datasource.druid.min-idle=2 spring.datasource.druid.max-wait=1234 spring.datasource.druid.pool-prepared-statements=true spring.datasource.druid.max-pool-prepared-statement-per-connection-size=5 spring.datasource.druid.validation-query=select 1 spring.datasource.druid.validation-query-timeout=1 spring.datasource.druid.test-on-borrow=true spring.datasource.druid.test-on-return=true spring.datasource.druid.test-while-idle=true spring.datasource.druid.time-between-eviction-runs-millis=10000 spring.datasource.druid.min-evictable-idle-time-millis=30001 spring.datasource.druid.async-close-connection-enable=true spring.datasource.druid.aop-patterns=com.alibaba.druid.spring.boot.demo.service.

// 自定义StatFilter 配置 其他 Filter 不再演示 spring.datasource.druid.filter.stat.db-type=h2 spring.datasource.druid.filter.stat.log-slow-sql=true spring.datasource.druid.filter.stat.slow-sql-millis=2000

//JPA spring.jpa.show-sql= true //在日志中显示sql语句 spring.jpa.hibernate.ddl-auto=update

validate 加载 Hibernate 时,验证创建数据库表结构 create 每次加载 Hibernate ,重新创建数据库表结构,这就是导致数据库表数据丢失的原因。 create-drop 加载 Hibernate 时创建,退出是删除表结构 update 加载 Hibernate 自动更新数据库结构

FaustPipeDream commented 6 years ago

配置Druid数据源

1.引入Durid在application.properties中的配置

@Configuration
public class DruidConfig {
  @Bean
  @ConfigurationProperties(prefix = "spring.datasource")
  public DataSource druidDataSource() {
    return new DruidDataSource();
  }
}

即可直接引入application.properties中的配置。 2.配置druid的filter

@WebFilter(filterName="druidWebStatFilter",urlPatterns="/*",
    initParams={
        @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源
    })
public class DruidStatFilter extends WebStatFilter {

}

这里忽略了静态资源加快访问速度,也可以自己添加相应的过滤规则。 3.druid管理页面配置

@WebServlet(urlPatterns = "/druid/*",
    initParams={
        @WebInitParam(name="allow",value=""),// IP白名单 (没有配置或者为空,则允许所有访问)
        @WebInitParam(name="deny",value=""),// IP黑名单 (存在共同时,deny优先于allow)
        //用户名和密码会被spring.security的账号密码覆盖
        @WebInitParam(name="loginUsername",value="admin"),// 用户名
        @WebInitParam(name="loginPassword",value="admin"),// 密码
        @WebInitParam(name="resetEnable",value="false")// 禁用HTML页面上的“Reset All”功能
    })
public class DruidStatViewServlet extends StatViewServlet {
}

默认配置下druid的管理页面为/druid/index.html

FaustPipeDream commented 6 years ago

示例代码请参考 https://github.com/FaustPipeDream/mainBlog/tree/spring-boot-jpa