开发者

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

开发者 https://www.devze.com 2024-08-23 10:37 出处:网络 作者: 万变不离其宗_8
目录application.yml数据库配置1.配置代码2.useSSL3.useUnicode=true&characterEncoding=UTF-84.serverTimezoneapplication.yml基础配置以及读取配置文件的格式配置文件配置文件的加载顺序yml文件内容读取yml配置
目录
  • application.yml数据库配置
    • 1.配置代码
    • 2.useSSL
    • 3.useUnicode=true&characterEncoding=UTF-8
    • 4.serverTimezone
  • application.yml基础配置以及读取
    • 配置文件的格式
    • 配置文件
    • 配置文件的加载顺序
    • yml文件内容
    • 读取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需要添加时区。

    如:

    #北京东八区
    seandroidrverTimezone=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读取单个数据,属性名引用方式:${一级属性名.二级js属性名...}

    @Value("${books[1].name}")编程
    private Stri编程ng 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;

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消