Spring boot 基于注解方式配置datasource

Xml配置

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

步骤:

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

配置数据源;

配置sqlSessionFactory,注入数据源

具体如下:

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

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

classpath:dbconfig.properties

classpath:redis.properties

二:配置datasorce相关信息

2.1:数据库信息配置

二:配置datasorce相关信息

2.1:数据库信息配置

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

xml配置示例:

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

注解配置示例:

@Bean

public DataSource mysqlCoreDataSource() {}

3:加载配置文件

Xml配置:

注解配置:@PropertySource

Xml配置示例:

classpath:dbconfig.properties

注解配置示例:@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();

}

}

java datasource 配置_Spring boot 基于注解方式配置datasource相关推荐

  1. java 数据源监控_spring boot基于DRUID实现数据源监控过程解析

    这篇文章主要介绍了spring boot基于DRUID实现数据源监控过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 随着需求和技术的日益革新 ...

  2. ssm注解配置连接mysql_基于注解和配置类的SSM(Spring+SpringMVC+Mybatis)项目详细配置...

    在上一篇文章中介绍了使用注解和xml配置文件对项目进行配置,在这篇文章中将xml配置文件中的配置信息都改成使用注解或者配置类的形式. 第一步.配置pom.xml 在一个ssm项目中,可能需要用到的依赖 ...

  3. Spring Boot基于注解方式处理接口数据脱敏

    1.定义注解 创建Spring Boot项目添加以下依赖 <dependencies><dependency><groupId>org.springframewor ...

  4. spring基于注解的配置

    转自:https://www.cnblogs.com/mesopotamia/p/4963659.html 基于XML的bean属性配置:bean的定义信息与bean的实现类是分离的. 基于注解的配置 ...

  5. (spring-第4回【IoC基础篇】)spring基于注解的配置

    (spring-第4回[IoC基础篇])spring基于注解的配置 基于XML的bean属性配置:bean的定义信息与bean的实现类是分离的. 基于注解的配置:bean的定义信息是通过在bean实现 ...

  6. Spring IoC — 基于注解的配置

    基于XML的配置,Bean定义信息和Bean实现类本身是分离的,而采用基于注解的配置方式时,Bean定义信息即通过在Bean实现类上标注注解实现. @Component:对类进行标注,Spring容器 ...

  7. SSH深度历险(十一) AOP原理及相关概念学习+xml配置实例(对照注解方式的优缺点)...

    接上一篇 SSH深度历险(十) AOP原理及相关概念学习+AspectJ注解方式配置spring AOP,本篇我们主要是来学习使用配置XML实现AOP 本文採用强制的CGLB代理方式 Security ...

  8. Spring 基于注解的配置

    转载自  Spring 基于注解的配置 基于注解的配置 从 Spring 2.5 开始就可以使用注解来配置依赖注入.而不是采用 XML 来描述一个 bean 连线,你可以使用相关类,方法或字段声明的注 ...

  9. Elasticsearch-mapper 基于注解方式生成mapping(2.0以上)

    Elasticsearch生成mapping的方式上有多种方式,我们可以把mapping做成配置文件,也可以用spring-data-elasticsearch基于注解生成. 在基于注解生成这种方式上 ...

最新文章

  1. python训练模型函数参数_一步步亲手用python实现Logistic Regression
  2. TypeScript中的枚举类型
  3. Android --- 无法预览xml布局视图的解决办法
  4. 二叉树的先序线索化、中序线索化、后序线索化的对比
  5. 目标检测,目标识别的SAR数据集构建和标注
  6. [转]为什么软件开发,人多,事少,还会工作量大?
  7. 关于 UML 模型 Visio的说明
  8. 机器视觉:PCI和PCI-E总线简介
  9. 【UG NX MCD 机电一体化概念设计】UG NX MCD+PLCSIM Advanced联合仿真实例(二 )仿真序列
  10. 阵列天线方向图及其MATLAB仿真,阵列天线方向图及其MATLAB仿真
  11. JupyterNotebook关闭时报Python.exe应用程序错误
  12. python汇率兑换程序_Python中汇率兑换程序的实现,python
  13. 【虾神白话空间统计】笔记:置信度、零假设、PZ值、随机分布
  14. OO包设计原则遵循度自动分析检查工具JDM简介(原创)
  15. 主存/内存/外存 区分
  16. 高校BBS最HOT的100个笑话(不看保证后悔终身)
  17. 毕设帮(5188.help)开发日志2——我的构想有市场吗?
  18. Visulalize Boost Voronoi in OpenSceneGraph
  19. 大风吹乱了我的头发,就像吹一朵蒲公英
  20. 电脑网页压力测试软件,网站压力测试工具

热门文章

  1. 渲染百万网页,终于找到影响性能的原因了
  2. 华为在 Linux Kernel 5.10 中代码贡献排名第一,中国 AI 足球队夺冠 | 开发者周刊
  3. TiKV 正式从 CNCF 毕业,成为云原生时代构建分布式系统的基石
  4. Python 实现信息自动配对爬虫排版程序
  5. 美国确诊超46万!美国州长竟然抢起高龄程序员了,什么情况?
  6. 程序员的基本功:为什么非要用 Python 做数据分析?Excel 不好吗?
  7. Amazon 首席科学家李沐亲授「深度学习」,2019 AI ProCon震撼来袭!(日程出炉)...
  8. 进击的程序媛:毕业于斯坦福,Google 元老级员工,曾任雅虎 CEO | 人物志
  9. Python、Java、C#、Perl 创始人聚首,编程语言要变天?
  10. Wi-Fi 还是蜂窝?搞物联网怎么选择连接协议?