`

Spring Boot进阶之DataSource

阅读更多

1、数据源配置

   在Spring Boot中默认配置了Tomcat, HikariCP、Commons DBCP三种数据源类型,如果在classpath中都能找到的话,则Tomcat优先加载(顺序加载)

  配置方式

 

@Bean(name="dataSource", initMethod="init", destroyMethod="close")
public DataSource dataSource() {
    return DataSourceBuilder.create().build();
}

 默认使用spring.datasource前缀的属性,也可以自定义属性,通过@Value读取

 

spring.datasource.url=jdbc:mysql://localhost:3306/db1
spring.datasource.username=root
spring.datasource.password=123456

 2、使用阿里开源的druid数据源配置

  引入pom依赖,引入后配置文件中自动提示druid配置属性

 

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

   配置单数据源时只需替换数据源的创建即可

 

return DruidDataSourceBuilder.create().build();

   基于druid的多数据源配置

 

@Bean(name="dataSource", initMethod="init", destroyMethod="close")//别名指定
@Primary //指定为主数据源
@ConfigurationProperties("spring.datasource.druid") //指定配置文件中的属性引用
public DataSource dataSource() {
	return DruidDataSourceBuilder.create().build();
}
/***配置其他数据源***/
@Bean(name="otherDataSource", initMethod="init", destroyMethod="close")
@ConfigurationProperties("other.datasource.druid") //指定配置文件中的属性引用
public DataSource otherDataSource() {
	return DruidDataSourceBuilder.create().build();
}

    定义配置文件

 

spring.datasource.druid.url=jdbc:mysql://localhost:3306/db1
spring.datasource.druid.username=root
spring.datasource.druid.password=123456
spring.datasource.druid.filters=stat,wall,slf4j //druid监控配置

#自定义数据源属性配置,druid-spring-boot-starter已引入druid的配置提示,根据提示只需重新定义
#属性前缀即可,实现不同数据源的个性化配置
other.datasource.druid.type=com.alibaba.druid.pool.DruidDataSource
other.datasource.druid.url=jdbc:mysql://localhost:3306/db2
other.datasource.druid.username=root
other.datasource.druid.password=123456
other.datasource.druid.filters=stat,wall,slf4j
  

    数据源在jdbctemple中的注入,通过@Qualifier注解区分数据源的使用

@Bean
public JdbcTemplate jdbcTemplate(@Qualifier("dataSource")DataSource dataSource) {
	return new JdbcTemplate(dataSource);
}
	
@Bean("otherJdbcTemplate")
public JdbcTemplate otherJdbcTemplate(@Qualifier("otherDataSource")DataSource dataSource) {
	return new JdbcTemplate(dataSource);
}

    控制台查看数据源初始化信息,可以看到两个都已初始化

 

--- [           main] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited
--- [           main] com.alibaba.druid.pool.DruidDataSource   : {dataSource-2} inited
 

 

   druid监控台查看

    http://localhost:8765/druid/datasource.html

 

数据源1,Basic Info For DataSource-1920147706
数据源2,Basic Info For DataSource-2034046523

 

分享到:
评论

相关推荐

    Spring boot 中文.pdf

    ### Spring Boot 中文文档知识点概览 #### 一、Spring Boot 概述 - **文档说明**:Spring Boot 是一...以上内容覆盖了 Spring Boot 中文文档的主要知识点,从入门到进阶,全面介绍了 Spring Boot 的特性和使用方法。

    spring-boot-mybatis-mysql.zip

    《Spring Boot整合MyBatis与MySQL的深度解析》 在当今的Java开发领域,Spring Boot以其简洁、快速的特性受到了广大开发者的喜爱。与此同时,MyBatis作为一款轻量级的持久层框架,以其灵活易用的特点在数据访问层面...

    spring Boot+mybatis-plus+Thymeleaf+MySql增删改查(含有分页+雪花Id)

    - 配置 `application.properties`,设置数据库连接信息,例如 `spring.datasource.url`、`spring.datasource.username`、`spring.datasource.password` 等。 2. **Mybatis-Plus 雪花Id** - 雪花Id是一种分布式ID...

    spring boot

    ### Spring Boot 基础与进阶知识点详解 #### 一、Spring Boot 概述 - **定义**:Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目标是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式...

    [咕泡学院] Spring Boot 系列课程大纲1

    【咕泡学院】的Spring ...通过这四节内容的学习,学员将全面掌握Spring Boot的基础和进阶知识,具备构建高效、稳定的Web应用和服务的能力。课程不仅注重理论,更强调实践,有助于开发者在实际项目中迅速应用所学知识。

    SpringBoot-jt-day01

    在本课程"SpringBoot-jt-day01"中,我们将深入学习Spring Boot的基础知识和核心概念,这是一门针对初学者和进阶开发者的重要课程。Spring Boot是Java生态系统中的一个热门框架,它简化了创建独立的、生产级别的基于...

    SpringBoot技巧、进阶、实用学习笔记

    ### Spring Boot 技巧、进阶、实用学习笔记 #### JPA简介与基本使用 - **JPA(Java Persistence API)概述**: - JPA 是一种 Java 规范,用于对象关系映射 (ORM) 的场景,允许将对象持久化到关系型数据库。 - 它...

    springboot教程.doc

    spring.datasource.url=jdbc:mysql://localhost:3306/mydb ``` #### 四、添加依赖 1. **在 Maven 项目中**:编辑 `pom.xml` 文件,添加所需的依赖。例如: ```xml &lt;groupId&gt;org.springframework.boot ...

    luckymoney.zip

    《Springboot入门实战:构建“luckymoney”项目》 Springboot作为一个轻量级的Java框架,因其简化了传统Spring应用的...通过这个项目,你可以深入理解Spring Boot的工作原理,并为进一步的进阶学习打下坚实的基础。

    jboss配置MySql的JNDI

    在IT领域,特别是Java应用服务器环境下,JBoss与MySQL数据库的集成是常见需求之一,而JNDI(Java Naming and Directory Interface)在此过程中扮演着关键角色。本文将深入解析如何在JBoss中配置MySQL的JNDI数据源,...

    SpringBoot2QuartzTest:Quartz测试

    在IT行业中,Spring Boot是一个非常流行的微服务框架,它简化了Spring应用的初始搭建以及开发过程。而Quartz是Java领域中的一个强大的任务调度库,它允许开发者安排任务执行,以实现定时或周期性的任务自动化。现在...

    JPA-6 整合Spring

    这里我们使用了Spring Boot的`spring-boot-starter-data-jpa`起步依赖,它包含了Spring Data JPA、Hibernate等必要的组件。同时,根据你的数据库类型,还需要添加对应的数据库驱动依赖。 ### 2. 配置数据源和JPA ...

    springboot-jpa-001

    本项目“springboot-jpa-001”旨在提供一个基础的Spring Boot集成JPA(Java Persistence API)的示例,后续还将进一步集成JSP(JavaServer Pages)作为前端展示层。 首先,Spring Boot简化了JPA的配置和使用。JPA是...

    spring-mybatis-spring-2.0.2.zip

    在实际项目中,Spring与MyBatis的整合还有许多进阶应用,例如使用MyBatis的缓存机制提高性能,利用Spring的AOP实现通用的拦截器,以及配合Spring Boot简化配置等。这些都为开发者提供了更广阔的发挥空间,让项目开发...

    Mybatis专栏代码

    这个项目会展示如何配置Spring的ApplicationContext,创建DataSource、SqlSessionFactoryBean以及SqlSessionTemplate。同时,我们也会看到如何在Spring中定义Mapper接口,使用@Autowired注解注入,并且通过...

    springboot02

    本项目"springboot02"显然是一个基于Spring Boot的进阶示例,重点在于实现多数据源管理和MyBatis的分页功能。下面将详细阐述这两个关键知识点。 1. **多数据源管理** - **多数据源配置**:在实际项目中,可能会有...

    Java进阶SpringBoot原理深入及源码剖析共18页

    接着,源码分析可能包括SpringApplication的启动流程,包括如何加载和执行配置,如何初始化ApplicationContext,以及Spring Boot Application Runner和CommandLineRunner接口的使用。 在数据访问层面,文档可能会...

    SpringBoot-ShowCase:SpringBoot ShowCase

    总结,SpringBoot-ShowCase是一个生动的实例,涵盖了Spring Boot的基础和进阶使用,包括自动配置、数据库集成、Web开发等方面。通过学习和实践这个项目,开发者可以更深入地理解Spring Boot的工作原理,提升Java开发...

    基于 Java+Mysql实现的智慧水产养殖系统,SpringBoot实践

    【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:相关技术 SpringBoot 2.0 SpringSecurity MyBatis-Plus 2 ActiveMQ ...

    SpringBoot整合资料

    8. **自动配置**: SpringBoot的核心特性之一就是自动配置,它根据引入的依赖自动配置Bean,如发现JDBC驱动就会自动配置DataSource。 9. **MVC配置**: SpringBoot的Web MVC提供了模型-视图-控制器架构,你可以自定义...

Global site tag (gtag.js) - Google Analytics