Java之SpringBoot自定义配置与整合Druid

Java之SpringBoot自定义配置与整合Druid攻略

SpringBoot自定义配置

SpringBoot提供了优美的配置方式,采用约定大于配置的思想,通过强大的基础设施提供一种无须编写过多配置代码的方式。但在一些特殊情况下,我们还需要自定义配置。

配置方式

SpringBoot提供了多种方式进行自定义配置,包括:

  • properties文件配置
  • yml文件配置
  • 通过@Configuration注解定义一个Java类
  • 通过@Import注解引入其他配置类
  • 使用外部化配置

示例

我们来看一个示例,假设我们需要在SpringBoot项目中自定义一个MyConfig类,该类需要配置一个属性myProperty,以及一个使用这个属性的方法printConfig。

  1. 新建MyConfig类,配置myProperty属性:
@Configuration
public class MyConfig {
    @Value("${myproperty.value}")
    private String myProperty;

    @Bean(name = "myproperties")
    public Properties myProperties() {
        Properties props = new Properties();
        props.setProperty("myProperty", myProperty);
        return props;
    }
}

在这个配置类里面,我们使用了@Value注解来注入配置项myproperty.value的值,然后通过@Bean注解将属性封装到Properties中返回。

  1. 在application.properties或application.yml文件中设置配置项:

properties方式

在application.properties文件中添加:

myproperty.value=my custom property

yml方式

在application.yml文件中添加:

myproperty:
  value: my custom property
  1. 使用这个自定义的配置类

在任何需要使用这个自定义配置类的地方使用@Autowired注解即可。

@RestController
public class MyController {
    @Autowired
    @Qualifier("myproperties")
    private Properties myProperties;

    @GetMapping("/config")
    public String getConfig() {
        return myProperties.getProperty("myProperty");
    }
}

整合Druid

在实际项目中,数据库连接池是非常必要的,Druid是当前JavaWeb领域最好的数据库连接池之一,在SpringBoot中使用非常简单。

引入依赖

在pom.xml中添加以下依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.4</version>
</dependency>

配置Druid连接池

在application.yml或application.properties文件中添加以下配置:

properties方式

# mysql
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

# druid
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.initial-size=5
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-active=20
spring.datasource.druid.test-on-borrow=true
spring.datasource.druid.filters=stat,wall
spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

yml方式

# mysql
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver

# druid
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      initial-size: 5
      min-idle: 5
      max-active: 20
      test-on-borrow: true
      filters: stat,wall
      connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

测试Druid连接池

在Controller中使用JdbcTemplate调用数据库即可测试连接池是否正常工作。

@RestController
public class MyController {
    @Autowired
    private JdbcTemplate jdbcTemplate;

    @GetMapping("/test")
    public int test() {
        return jdbcTemplate.queryForObject("select count(*) from user", Integer.class);
    }
}

以上就是Java之SpringBoot自定义配置与整合Druid的攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java之SpringBoot自定义配置与整合Druid - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • GTA5 PC版全错误代码及解决方法

    GTA5 PC版全错误代码及解决方法 如果您在玩GTA5 PC版时遇到任何错误代码,不要惊慌,本文将为您提供详细的解决方案。 错误代码:ERR_NO_LAUNCHER 这个错误代码表示您的GTA5游戏启动器没有被正确安装或丢失了。解决方法如下: 确保您已经安装了最新版本的游戏启动器,可以从官方网站下载安装。 检查您的游戏目录是否存在“GTAVLauncher…

    Java 2023年6月15日
    00
  • Java从零编写汽车租赁系统全程分析

    Java从零编写汽车租赁系统全程分析 简介 本文讲解如何使用Java从零编写汽车租赁系统。主要包括以下内容: 项目需求分析 搭建开发环境 编写实体类 编写DAO层 编写Service层 编写Controller层 实现前端界面 项目需求分析 汽车租赁系统需要实现以下功能: 用户可以在系统中注册账号,并登录系统。 用户可以浏览车辆信息,并根据条件筛选车辆。 用…

    Java 2023年5月24日
    00
  • Uploadify上传文件方法

    关于“Uploadify上传文件方法”,以下是完整的攻略: Uploadify上传文件方法 简介 Uploadify 是一个基于jQuery的文件上传组件,可以方便地实现文件的异步上传,支持多文件上传、队列顺序控制、进度条等功能。使用 Uploadify,可以很方便地在网页中实现文件上传功能。 使用步骤 1. 引入相关文件 在 HTML 页面中引入相关的文件…

    Java 2023年5月20日
    00
  • Spring oxm入门实例

    Spring OXM 简介 Spring OXM 是 Spring Framework 中的一个模块,主要用于支持对象到 XML 和 XML 到对象的互相转换。OXM 是 Object/XML Mapping 的缩写,常用于系统之间的数据传输或存储,例如将 Java 对象序列化为 XML 格式存入数据库或者网络传输,另一方也可以将 XML 格式还原为 Jav…

    Java 2023年5月20日
    00
  • 如何解决java获取时间相差8小时的问题

    当使用Java中的Date类或者Calendar类获取当前时间时,由于Java默认使用的是UTC(Coordinated Universal Time,协调世界时)时间,可能会导致本地获取的时间与实际时间相差8小时。解决这一问题的方法有以下两种: 1.使用DateFormat进行格式化输出 可以使用SimpleDateFormat类将获取到的Date对象按照…

    Java 2023年5月20日
    00
  • Java之Spring简单的读取和存储对象

    Java之Spring简单的读取和存储对象 在Java开发中,Spring框架是一个非常优秀的框架,其提供了丰富的功能,其中包括对象的读取和存储。本文将详细讲解Spring框架中简单的读取和存储对象的攻略。 存储对象 Spring框架中存储对象的方式主要有两种,分别是JdbcTemplate和HibernateTemplate。 使用JdbcTemplate…

    Java 2023年5月19日
    00
  • Spring Security认证器实现过程详解

    Spring Security认证器实现过程详解 Spring Security是用于保护Web应用程序的开放源代码框架。它可以提供基于角色的安全性,对用户进行身份验证和访问控制来保护应用程序。本文将详细介绍Spring Security认证器实现的过程。 一. Spring Security认证器 Spring Security提供了一个框架来处理所有We…

    Java 2023年6月3日
    00
  • Java8 Instant 时间戳实例讲解

    Java8 Instant 时间戳实例讲解 在 Java8 中,引入了 java.time 包,包含了一系列新的日期时间 API,其中 Instant 类可以用来表示时间戳。本文将详细讲解 Instant 类的使用。 Instant 类概述 Instant 类是不可变且线程安全的,它以 Unix 时间戳的形式存储时间,精确到纳秒。Unix 时间戳是指从 19…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部