`

Spring boot 基于注解方式配置datasource

阅读更多

Spring boot 基于注解方式配置datasource

本文来源:【凯哥Java(kaigejava) www.kaigejava.com】

编辑

Xml配置

我们先来回顾下,使用xml配置数据源。

步骤:

先加载数据库相关配置文件;

配置数据源;

配置sqlSessionFactory,注入数据源

具体如下:

一:设置数据配置信息文件

先在spring的配置文件中,加载数据库配置文件

编辑

<!-- 读取参数配置 -->

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property name="locations">

<list>

<value>classpath:dbconfig.properties</value>

<value>classpath:redis.properties</value>

</list>

</property>

</bean>

二:配置datasorce相关信息

2.1:数据库信息配置

编辑

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">

<!-- 数据库基本信息配置 -->

<property name="url" value="${url}" />

<property name="username" value="${username}" />

<property name="password" value="${password}" />

<property name="driverClassName" value="${driverClassName}" />

<property name="filters" value="${filters}" />

<!-- 最大并发连接数 -->

<property name="maxActive" value="${maxActive}" />

<!-- 初始化连接数量 -->

<property name="initialSize" value="${initialSize}" />

<!-- 配置获取连接等待超时的时间 -->

<property name="maxWait" value="${maxWait}" />

<!-- 最小空闲连接数 -->

<property name="minIdle" value="${minIdle}" />

</bean>

2.2:sqlsessionFactroy配置:

编辑

有了大致的思路后,我们再来看看spring boot基于注解方式怎么配置数据源。

注解配置

先要知道几个注解:

@Configuration:此注解看用理解为spring的一个xml文件

@PropertySource:对应原xml中设置配置文件的

@MapperScan:就是xml中扫描的基包;

sqlSessionFactoryRef:就是注入sqlSessionFactory的

@Bean:这个注解就是原xml中bean标签的。

先了解这几个注解之后,我们就可以开始写代码了(在文章最后,凯哥会把xml和注解的对应关系列出来,方便大家理解)。

一:加载数据库配置文件

编辑

二:配置datasorce相关信息

2.1:数据库信息配置

我们先来看看数据库配置文件怎么配置的:

编辑

在看看代码中怎么获取到这些值的:

编辑

说明:

通过上面注解之后,启动服务后,属性:jdbcUrl这个属性的值就会在classpath下的mysql-core-jdbc.properties文件中查找前缀为mysql.core的后面为:jdbc-url这个可以。从而就可以获取到数据库连接的url了。

数据库连接信息获取到了,接下来,我们来配置datasource信息:

编辑

说明:

通过这个bean注解之后,就可以获取到dataSource对象了。

2.2:sqlsessionFactroy配置:

编辑

这样就可以获取到sqlSessionFactory对象了。

XML配置和注解配置比较:

编辑

1:Spring配置文件:

xml配置:一个xml文件

注解配置:@Configuration

xml配置示例:springApplication.xml

注解配置示例:

@Configuration

public class MysqlCoreConfig {}

2:一个bean:

xml配置:<bean></bean>

注解配置:@Bean

xml配置示例:

<bean id="propertyConfigurer"

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> </bean>

注解配置示例:

@Bean

public DataSource mysqlCoreDataSource() {}

3:加载配置文件

Xml配置:<property name="locations"> </property>

注解配置:@PropertySource

Xml配置示例:

<property name="locations">

<list>

<value>classpath:dbconfig.properties</value>

</list>

</property>

注解配置示例:@PropertySource("classpath:mysql-core-jdbc.properties")

完整代码:

import lombok.Data;

import org.mybatis.spring.SqlSessionFactoryBean;

import org.mybatis.spring.annotation.MapperScan;

import org.springframework.beans.factory.annotation.Qualifier;

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.context.annotation.PropertySource;

import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

import javax.sql.DataSource;

/**

* 通过注解方式配置数据库连接配置

*/

@Data

@Configuration

@ConfigurationProperties(prefix = "mysql.core")

@PropertySource("classpath:mysql-core-jdbc.properties")

@MapperScan(basePackages ="com.kaigejava.model.mappers" ,sqlSessionFactoryRef = "kaigeMysqlDataSource")

public class KaigeMySqlCoreConfig {

private String jdbcUrl;

private String jdbcUserName;

private String jdbcPassword;

private String jdbcDriver;

private String rootMapper; //mapper文件在classpath下存放的根路径

private String aliasesPackage; //别名包

/**

* 配置连接池信息

* @return

*/

@Bean

public DataSource kaigeMysqlCreateDataSource(){

HikariDataSource dataSource = new HikariDataSource();

//添加数据库访问url

dataSource.setJdbcUrl(getJdbcUrl());

dataSource.setUsername(getJdbcUserName());

dataSource.setPassword(getJdbcPassword());

dataSource.setDriverClassName(getJdbcDriver());

//配置最大 最小连接数量

dataSource.setMinimumIdle(50);

dataSource.setMinimumIdle(10);

return dataSource;

}

/**

* 获取sqlSessionFactory

* @return

*/

public SqlSessionFactoryBean kaigeMysqlCoreSqlSessionFactory(@Qualifier("kaigeMysqlDataSource") DataSource kaigeMysqlDataSource)

throws Exception{

SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();

sqlSessionFactoryBean.setDataSource(kaigeMysqlDataSource);

//处理mapper位置的

PathMatchingResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();

sqlSessionFactoryBean.setMapperLocations(resourcePatternResolver.getResources(getMapperFileRealPath()));

sqlSessionFactoryBean.setTypeAliasesPackage(getAliasesPackage());

org.apache.ibatis.session.Configuration mybatisConfig = new org.apache.ibatis.session.Configuration();

mybatisConfig.setMapUnderscoreToCamelCase(true);

sqlSessionFactoryBean.setConfiguration(mybatisConfig);

return sqlSessionFactoryBean;

}

/**

* 拼接mapper文件地址的

* @return

*/

public String getMapperFileRealPath(){

return new StringBuffer().append("classpath:").append(getRootMapper()).append("/**/*.xml").toString();

}

}

 

分享到:
评论

相关推荐

    spring famework 基于注解配置示例

    然而,随着注解(Annotation)技术的发展,Spring框架引入了基于注解的配置,使得代码更加简洁、直观。本示例将详细介绍如何使用注解配置实现Spring框架的注入。 首先,我们需要了解几个关键的注解: 1. `@...

    spring boot AOP注解方式实现多数据源

    本文将深入探讨如何使用Spring Boot的AOP注解方式来实现多数据源的集成。 首先,我们要了解Spring Boot的基础概念。Spring Boot简化了Spring应用程序的创建,它提供了自动配置、起步依赖等特性,使得开发者可以快速...

    spring boot多数据源配置

    在Spring Boot应用中,多数据源配置是一项关键的技术,它允许我们同时管理多个数据库,比如主库和从库,或者不同类型的数据库。本教程将详细阐述如何在Spring Boot项目中实现这一功能,从数据源配置、实体管理到...

    Spring Boot集成Mybatis(注解)

    在本文中,我们将深入探讨如何将Mybatis框架与Spring Boot应用程序进行集成,特别是利用注解的方式来进行配置。Spring Boot以其简化Spring应用的初始搭建以及运行过程而受到广泛欢迎,而Mybatis作为轻量级的持久层...

    SpringBoot框架Datasource注入

    总的来说,Spring Boot通过自动配置和`@Bean`注解使得`DataSource`的注入变得简单易用。开发者只需要关注数据库连接的相关配置,就可以让Spring Boot自动创建并管理`DataSource`,从而专注于业务逻辑的实现。在项目...

    Spring Boot多数据源(JdbcTemplate)配置与使用

    在本教程中,我们将深入探讨如何在Spring Boot项目中配置和使用多数据源以及JdbcTemplate。 首先,让我们了解什么是`JdbcTemplate`。它是Spring提供的一种模板类,用于执行SQL语句,通过回调机制将结果转换为Java...

    dynamic-datasource-spring-boot-starter_多数据源_

    `dynamic-datasource-spring-boot-starter`项目正致力于解决这个问题,它是一个基于Spring Boot的启动器,用于实现动态数据源切换,提供灵活的数据源管理功能。 **动态数据源**指的是在一个应用中可以动态地选择...

    spring boot 整合mybatis,基于@Select注解方式

    通过这种方式,你可以轻松地在Spring Boot应用中实现数据访问,无需编写大量的模板代码,提高了开发效率。对于新手来说,这是一个很好的实践案例,可以深入理解Spring Boot和MyBatis的集成原理,为后续的微服务开发...

    SpringBoot使用编程方式配置DataSource的方法

    使用编程方式配置SpringBoot的DataSource SpringBoot框架提供了多种方式来配置DataSource,本文主要介绍使用编程方式配置DataSource的方法。这种方法可以让开发者拥有更高级别的控制权,忽略自动配置过程,从而实现...

    spring boot多数据源(AOP注解动态切换)

    Spring Boot简化了传统Spring应用的配置,通过`@EnableAutoConfiguration`注解,它能自动识别并配置相应的bean。在多数据源场景下,我们需要自定义数据源配置。 1. **集成Druid连接池** Druid是一个强大的Java...

    spring boot入门

    Spring 4.x 和 Spring Boot 都推荐使用 Java 配置的方式。 #### 二、Spring 的 Java 配置方式详解 Spring 的 Java 配置方式主要依赖于两个关键注解:`@Configuration` 和 `@Bean`。 - **@Configuration**:这个...

    Spring Boot+Jpa多数据源配置Demo(支持不同数据库)

    Spring Boot通过`@EnableAutoConfiguration`注解,可以自动配置大量的依赖项,包括数据源。但是,当我们需要连接到多个数据库时,就需要手动进行一些配置。 **1. 多数据源配置** 在Spring Boot中,我们可以通过...

    spring中dataSource的配置以及配合IOC的使用

    Spring支持多种方式配置`DataSource`,包括XML配置、Java配置以及基于`@Configuration`和`@Bean`注解的配置。这里我们主要讨论后两种方式。 **1.1 Java配置** 在Java配置中,我们可以通过`@Configuration`注解标记...

    基于注解和Spring的多数据源配置和使用

    在Spring Boot中,可以通过配置文件(如application.properties或application.yml)指定当前环境,然后在数据源配置类上使用`@Profile`注解,使其在特定环境中生效。 3. **使用`@Configuration`和`@Bean`注解**:在...

    spring-boot-dynamic-datasource-started-master.rar

    2. `@Profile`:Spring Boot的环境配置注解,用于在不同环境中加载不同的配置。例如,我们可以设置一个开发环境数据源和生产环境数据源。 3. `application.properties`或`application.yml`:配置文件中,我们需要...

    JavaEE颠覆者spring-boot实战源码.zip

    例如,如果你的项目包含了JDBC的依赖,Spring Boot就会自动配置DataSource和JdbcTemplate。 3. **起步依赖(Starters)**: Starters是一系列的Maven或Gradle模块,用于简化构建过程。例如,`spring-boot-starter-...

    从零开始学Spring Boot

    1.8 Spring Boot datasource - mysql 1.9 JPA - Hibernate 1.10 使用JPA保存数据 1.11 使用JdbcTemplate 1.12 Spring Boot修改端口号 1.13 Spring Boot配置ContextPath 1.14 Spring Boot改变JDK编译版本 1.15 处理...

    spring-boot-demo

    例如,如果类路径下存在JDBC驱动,Spring Boot就会自动配置DataSource,使得我们可以直接使用JdbcTemplate或JPA进行数据库操作。 总的来说,"spring-boot-demo"项目是一个很好的学习平台,它让我们能亲身体验Spring...

    spring boot + mybatis 简单配置

    Spring Boot基于Spring框架,旨在简化Spring应用的初始搭建以及开发过程。它默认配置了许多常见的功能,如嵌入式Tomcat服务器、日志处理、健康检查等,使得开发者无需繁琐的XML配置即可快速启动项目。 接下来,我们...

    Spring Boot读取配置文件常用方式

    例如,如果`application.properties`中包含`spring.datasource.url`等JDBC属性,Spring Boot将自动配置数据源。 10. **自定义配置源** 如果需要从非标准来源(如数据库、远程服务器)加载配置,可以通过实现`...

Global site tag (gtag.js) - Google Analytics