关于application.yml数据库配置方式

 更新时间:2024年08月23日 09:32:16   作者:万变不离其宗_8  
这篇文章主要介绍了关于application.yml数据库配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

application.yml数据库配置

1.配置代码

server:
  port: 8001
#spring的配置
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource #数据源为druid
    driver-class-name: com.mysql.cj.jdbc.Driver #数据库驱动
    url: jdbc:mysql://localhost:3306/spring_cloud?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: root
    password: root
<!--Mysql驱动-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.24</version>
    <scope>runtime</scope>
</dependency>
<!--alibaba数据库数据源-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.10</version>
</dependency>

2.useSSL

  • SSL即为: Secure Sockets Layer 安全套接字协议。
  • useSSL=true: 就是一般通过证书或者令牌进行安全验证。
  • useSSL=false: 就是通过账号密码进行连接。

注意:

  • MySQL 5.7之后的版本必须要加上useSSL=false;
  • 之前不用,默认是false。

3.useUnicode=true&characterEncoding=UTF-8

设置之后,不管数据库是什么编码,读取的时候都会转换成UTF-8,存取的时候还是会按数据库编码存。

4.serverTimezone

时区配置,MySQL8.0以上版本,url需要添加时区。

如:

#北京东八区
serverTimezone=GMT%2B8
#上海时区
serverTimezone=Asia/Shanghai

application.yml基础配置以及读取

配置文件的格式

1.SpringBoot提供了3种配置文件的格式

  • properties(传统格式/默认格式)
  • yml(主流格式)
  • yaml

配置文件

1. SpringBoot中导入对应starter后,提供对应配置属性

2.书写SpringBoot配置采用关键字+提示形式书写

配置文件的加载顺序

properties优先级>yml优先级>yaml优先级

不同配置文件中相同配置按照加载优先级相互覆盖,不同配置文件中不同配置全部保留。

yml文件内容

#简单配置
server:
  port: 80

#对象配置
users:
  name: zhangsan
  id: 18

#简单列表配置,- 后跟1个空格
likes:
  - 游泳
  - 打球
  - 读书
  
#列表中是对象,key: value,不要忘记:后的空格 
books: [{name: 三国,id: 435},{name: 水壶,id: 6599}]

#在配置文件中可以使用属性名引用方式引用属性
baseDir: /usr/local/fire
center:
  dataDir: ${baseDir}/data
  logDir: ${baseDir}/log

#属性值中如果出现转义字符,需要使用双引号包裹
lesson: "Spring\tboot\nlesson"

读取yml配置

5.1 使用@Value读取单个数据,属性名引用方式:${一级属性名.二级属性名...}

@Value("${books[1].name}")
private String bookName;

5.2 使用Environment对象封装全部配置信息

  • 使用Environment对象封装全部配置信息
  • 使用@Autowired自动装配数据到Environment对象中
@Autowired
private Environment env;

System.out.println(env.getProperty("books[1].name"));

5.3 自定义对象封装指定数据

  • yml文件
datasource:
  driver-class-name: com.mysql.cj.jdbc.Driver
  url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
  username: root
  password: root
  • 自定义对象
@Component  //bean对象,由spring来管理
@ConfigurationProperties(prefix = "datasource") //获取yml文件中datasource的属性,需要get和set方法,此处省略
public class MyDataSource {
    private String driverClassName;
    private String url;
    private String userName;
    private String password;
}
  • 在使用的地方,使用@Autowired自动装配
@Autowired
private MyDataSource myDataSource;

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot使用@Scheduled实现定时任务的并行执行

    SpringBoot使用@Scheduled实现定时任务的并行执行

    在SpringBoot中,如果使用@Scheduled注解来定义多个定时任务,默认情况下这些任务将会被安排在一个单线程的调度器中执行,这意味着,这些任务将会串行执行,而不是并行执行,本文介绍了SpringBoot使用@Scheduled实现定时任务的并行执行,需要的朋友可以参考下
    2024-06-06
  • SpringSecurity中的Filter Chain(过滤器链)

    SpringSecurity中的Filter Chain(过滤器链)

    Spring Security的Filter Chain是由一系列过滤器组成的管道,每个过滤器执行特定的安全功能,Spring Security能够提供强大而灵活的安全控制机制,从而保护你的应用程序不受各种网络安全威胁的侵害,本文介绍SpringSecurity中的Filter Chain,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • 关于Java中Object类的几个方法示例

    关于Java中Object类的几个方法示例

    这篇文章主要给大家介绍了关于Java中Object类的几个方法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-05-05
  • 配置java环境变量(linux mac windows7)

    配置java环境变量(linux mac windows7)

    本文给大家详细总结介绍了Linux、MAC以及Windows下配置java环境变量的方法,非常的细致全面,有需要的小伙伴可以参考下
    2015-11-11
  • 面试官:Java中new Object()到底占用几个字节

    面试官:Java中new Object()到底占用几个字节

    这篇文章主要介绍了面试官:Java中new Object()到底占用几个字节,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • SpringSecurity中的EnableWebSecurity注解启用Web安全详解

    SpringSecurity中的EnableWebSecurity注解启用Web安全详解

    这篇文章主要介绍了SpringSecurity中的EnableWebSecurity注解启用Web安全详解,@EnableWebSecurity是Spring Security用于启用Web安全的注解,典型的用法是该注解用在某个Web安全配置类上,实现了接口,需要的朋友可以参考下
    2023-12-12
  • 详解java代码中init method和destroy method的三种使用方式

    详解java代码中init method和destroy method的三种使用方式

    这篇文章主要介绍了详解java代码中init method和destroy method的三种使用方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Tomcat 多端口 多应用

    Tomcat 多端口 多应用

    当你使用Tomcat作为Web Server的时候,是不是会想过这样的一个问题:如何利用Tomcat建立两个Web Server,同时侦听来自不同端口的请求呢?要实现这一点是很简单的。以下假设Tomcat安装在D:/Tomcat5.0目录下。
    2008-02-02
  • Spring启动流程源码解析

    Spring启动流程源码解析

    这篇文章主要介绍了Spring启动流程源码解析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 浅谈java.util.concurrent包中的线程池和消息队列

    浅谈java.util.concurrent包中的线程池和消息队列

    这篇文章主要介绍了浅谈java.util.concurrent包中的线程池和消息队列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08

最新评论