zoukankan      html  css  js  c++  java
  • Spring Boot学习日志------连接数据库三方法之Springboot yml注入

    目录

    基础调用操作

    不同的配置文件的调用

    基础调用操作

    目录

     application.yml文件

    #数据库连接配置
    jdbc:
      url: jdbc:mysql://127.0.0.1:3306/ssm
      username: root
      password: root
      driver-class-namr: com.mysql.jdbc.Driver

    HelloController 文件

    package com.example.ycrk.controller;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.sql.DataSource;
    
    @RestController
    public class HelloController {
        @Autowired
        private DataSource dataSource;
    
        @GetMapping("hello")
        public String hello(){
            System.out.println("dataSource="+dataSource);
            return "Hello,Spring Boot!";
        }
    }

    JdbcProperties文件

    package com.example.ycrk.config;
    
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    
    /**
     * ConfigurationProperties从application配置文件中读取配置
     * prefix配置项前缀
     * 配置项前缀的类变量名必须与前缀之后的配置项名称保持 松散绑定
     */
    @Component
    @ConfigurationProperties(prefix="jdbc")
    public class JdbcProperties {
        private String driverClassNamr;
        private String url;
        private String username;
        private String password;
    
        public String getDriverClassNamr() {
            return driverClassNamr;
        }
    
        public void setDriverClassNamr(String driverClassNamr) {
            this.driverClassNamr = driverClassNamr;
        }
    
        public String getUrl() {
            return url;
        }
    
        public void setUrl(String url) {
            this.url = url;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    }

    JdbcConfig文件

    package com.example.ycrk.config;
    
    import com.alibaba.druid.pool.DruidDataSource;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.boot.context.properties.EnableConfigurationProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.PropertySource;
    
    import javax.sql.DataSource;
    
    @Configuration
    @EnableConfigurationProperties(JdbcProperties.class)
    public class JdbcConfig {
        @Bean
        public DataSource dataSource(JdbcProperties jdbcProperties){
            DruidDataSource druidDataSource=new DruidDataSource();
            druidDataSource.setDriverClassName(jdbcProperties.getDriverClassNamr());
            druidDataSource.setUrl(jdbcProperties.getUrl());
            druidDataSource.setUsername(jdbcProperties.getUsername());
            druidDataSource.setPassword(jdbcProperties.getPassword());
            return druidDataSource;
        }
    }

    操作结果

    不同的配置文件的调用

    文件格式:application-XXX.yml

    调用在application.yml文件中使用

    添加文件application-test.yml

    baidu:
      url: http://www.baidu.com

     修改application.yml,在active后面添加参数横线后面的名字

    #数据库连接配置
    jdbc:
      url: jdbc:mysql://127.0.0.1:3306/ssm
      username: root
      password: root
      driver-class-namr: com.mysql.jdbc.Driver
    
    spring:
      profiles:
        active: test

    输出,修改HelloController.java

    package com.example.ycrk.controller;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.sql.DataSource;
    
    @RestController
    public class HelloController {
        @Autowired
        private DataSource dataSource;
    
        @Value("${baidu.url}")
        private String baidu;
    
        @GetMapping("hello")
        public String hello(){
            System.out.println("baidu="+baidu);
            System.out.println("dataSource="+dataSource);
            return "Hello,Spring Boot!";
        }
    }

    文件目录

  • 相关阅读:
    go资料
    typescript 装饰器 decorator
    【转】typescript class decorator装饰器
    【转】Best way to get result count before LIMIT was applied
    DirectX11 采样状态对象
    React通过redux-persist持久化数据存储
    禁止网页查看源代码
    css3 动画 -- 加载动画 Loader
    css3 动画 -- 旋转线条 rotate_line
    读书打卡:《微信互联网平民创业》
  • 原文地址:https://www.cnblogs.com/hahayixiao/p/13236531.html
Copyright © 2011-2022 走看看