java datasource 配置_Spring boot 基于注解方式配置datasource
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相关推荐
- java 数据源监控_spring boot基于DRUID实现数据源监控过程解析
这篇文章主要介绍了spring boot基于DRUID实现数据源监控过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 随着需求和技术的日益革新 ...
- ssm注解配置连接mysql_基于注解和配置类的SSM(Spring+SpringMVC+Mybatis)项目详细配置...
在上一篇文章中介绍了使用注解和xml配置文件对项目进行配置,在这篇文章中将xml配置文件中的配置信息都改成使用注解或者配置类的形式. 第一步.配置pom.xml 在一个ssm项目中,可能需要用到的依赖 ...
- Spring Boot基于注解方式处理接口数据脱敏
1.定义注解 创建Spring Boot项目添加以下依赖 <dependencies><dependency><groupId>org.springframewor ...
- spring基于注解的配置
转自:https://www.cnblogs.com/mesopotamia/p/4963659.html 基于XML的bean属性配置:bean的定义信息与bean的实现类是分离的. 基于注解的配置 ...
- (spring-第4回【IoC基础篇】)spring基于注解的配置
(spring-第4回[IoC基础篇])spring基于注解的配置 基于XML的bean属性配置:bean的定义信息与bean的实现类是分离的. 基于注解的配置:bean的定义信息是通过在bean实现 ...
- Spring IoC — 基于注解的配置
基于XML的配置,Bean定义信息和Bean实现类本身是分离的,而采用基于注解的配置方式时,Bean定义信息即通过在Bean实现类上标注注解实现. @Component:对类进行标注,Spring容器 ...
- SSH深度历险(十一) AOP原理及相关概念学习+xml配置实例(对照注解方式的优缺点)...
接上一篇 SSH深度历险(十) AOP原理及相关概念学习+AspectJ注解方式配置spring AOP,本篇我们主要是来学习使用配置XML实现AOP 本文採用强制的CGLB代理方式 Security ...
- Spring 基于注解的配置
转载自 Spring 基于注解的配置 基于注解的配置 从 Spring 2.5 开始就可以使用注解来配置依赖注入.而不是采用 XML 来描述一个 bean 连线,你可以使用相关类,方法或字段声明的注 ...
- Elasticsearch-mapper 基于注解方式生成mapping(2.0以上)
Elasticsearch生成mapping的方式上有多种方式,我们可以把mapping做成配置文件,也可以用spring-data-elasticsearch基于注解生成. 在基于注解生成这种方式上 ...
最新文章
- python训练模型函数参数_一步步亲手用python实现Logistic Regression
- TypeScript中的枚举类型
- Android --- 无法预览xml布局视图的解决办法
- 二叉树的先序线索化、中序线索化、后序线索化的对比
- 目标检测,目标识别的SAR数据集构建和标注
- [转]为什么软件开发,人多,事少,还会工作量大?
- 关于 UML 模型 Visio的说明
- 机器视觉:PCI和PCI-E总线简介
- 【UG NX MCD 机电一体化概念设计】UG NX MCD+PLCSIM Advanced联合仿真实例(二 )仿真序列
- 阵列天线方向图及其MATLAB仿真,阵列天线方向图及其MATLAB仿真
- JupyterNotebook关闭时报Python.exe应用程序错误
- python汇率兑换程序_Python中汇率兑换程序的实现,python
- 【虾神白话空间统计】笔记:置信度、零假设、PZ值、随机分布
- OO包设计原则遵循度自动分析检查工具JDM简介(原创)
- 主存/内存/外存 区分
- 高校BBS最HOT的100个笑话(不看保证后悔终身)
- 毕设帮(5188.help)开发日志2——我的构想有市场吗?
- Visulalize Boost Voronoi in OpenSceneGraph
- 大风吹乱了我的头发,就像吹一朵蒲公英
- 电脑网页压力测试软件,网站压力测试工具
热门文章
- 渲染百万网页,终于找到影响性能的原因了
- 华为在 Linux Kernel 5.10 中代码贡献排名第一,中国 AI 足球队夺冠 | 开发者周刊
- TiKV 正式从 CNCF 毕业,成为云原生时代构建分布式系统的基石
- Python 实现信息自动配对爬虫排版程序
- 美国确诊超46万!美国州长竟然抢起高龄程序员了,什么情况?
- 程序员的基本功:为什么非要用 Python 做数据分析?Excel 不好吗?
- Amazon 首席科学家李沐亲授「深度学习」,2019 AI ProCon震撼来袭!(日程出炉)...
- 进击的程序媛:毕业于斯坦福,Google 元老级员工,曾任雅虎 CEO | 人物志
- Python、Java、C#、Perl 创始人聚首,编程语言要变天?
- Wi-Fi 还是蜂窝?搞物联网怎么选择连接协议?