Spring配置连接数据库与SpringBoot配置连接数据库(四种属性注入方式)

简介: Spring配置连接数据库与SpringBoot配置连接数据库(四种属性注入方式)

Spring配置连接数据库

设置jdbc.properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/SSM
jdbc.username=root
jdbc.password=root

创建配置类

/**
 * @Author: Promsing
 * @Date: 2021/5/30 - 14:52
 * @Description:连接数据库的配置类
 * @version: 1.0
 */
@Configuration//声明该类是一个java配置类,相当于一个xml配置文件
@PropertySource("classpath:jdbc.properties") //读取资源文件
public class JdbcConfiguration {
    @Value("${jdbc.driverClassName}")
    private String driverClassName;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;
    @Bean //将返回值注入到IOC容器中
    public DataSource dataSource(){
        DruidDataSource dataSource=new DruidDataSource();
        //设置连接数据库的四大参数
        dataSource.setDriverClassName(this.driverClassName);
        dataSource.setUrl(this.url);
        dataSource.setUsername(this.username);
        dataSource.setPassword(this.password);
        return dataSource;
    }
}

SpringBoot配置连接数据库

设置application.properties

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/SSM
jdbc.username=root
jdbc.password=root

创建配置类-JdbcProperties

/**
 * @Author: Promsing
 * @Date: 2021/5/30 - 15:41
 * @Description: 封装了读取出来的配置文件
 * @version: 1.0
 */
@ConfigurationProperties(prefix = "jdbc")
public class JdbcProperties {
    private String driverClassName;
    private String url;
    private String username;
    private String password;
   public void setDriverClassName(String driverClassName) {
        this.driverClassName = driverClassName;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getDriverClassName() {
        return driverClassName;
    }
    public String getUrl() {
        return url;
    }
    public String getUsername() {
        return username;
    }
    public String getPassword() {
        return password;
    }
}

创建配置类-JdbcConfiguration

/**
 * @Author: Promsing
 * @Date: 2021/5/30 - 14:52
 * @Description: 连接数据库的Java配置类
 * @version: 1.0
 */
@Configuration//声明该类是一个java配置类,相当于一个西xml配置文件
@EnableConfigurationProperties(JdbcProperties.class) //加载JDBC的配置类
public class JdbcConfiguration {
    @Autowired
    private JdbcProperties jdbcProperties;
    //方式一
    @Bean //将返回值注入到IOC容器中
    public DataSource dataSource(){
        DruidDataSource dataSource=new DruidDataSource();
        //设置连接数据库的四大参数
        dataSource.setDriverClassName(this.jdbcProperties.getDriverClassName());
        dataSource.setUrl(this.jdbcProperties.getUrl());
        dataSource.setUsername(this.jdbcProperties.getUsername());
        dataSource.setPassword(this.jdbcProperties.getPassword());
        return dataSource;
    }
      /*
        //方式二:最优雅最简单--直接换掉方式一
        @Bean //将返回值注入到IOC容器中
        @ConfigurationProperties(prefix = "jdbc")
        public DataSource dataSource(){
            DruidDataSource dataSource=new DruidDataSource();
        return dataSource;
        }
    * */
    /*
        //方式三通过构造函数注入--在方式一上的方式修改
        public JdbcConfiguration(JdbcProperties jdbcProperties) {
            this.jdbcProperties = jdbcProperties;
        }
    * */
    /*
        //方式四通过方法的参数注入--直接换掉方式一
        public DataSource dataSource(dbcProperties jdbcProperties){
             DruidDataSource dataSource=new DruidDataSource();
            //设置连接数据库的四大参数
            dataSource.setDriverClassName(jdbcProperties.getDriverClassName());
            dataSource.setUrl(jdbcProperties.getUrl());
            dataSource.setUsername(jdbcProperties.getUsername());
            dataSource.setPassword(jdbcProperties.getPassword());
            return dataSource;
//    }
    * */
}

SpringBoot的四种属性注入方式

1. Autowired注入


2.直接在@Bean方法中使用@ConfigurationProperties(prefix = "jdbc")


3.构造函数主语


4.@Bean方法形参注入


需要注意的是配置文件中的名称要与 JdbcProperties中的属性名称要一致。项目开发过程中第二种最优雅最简洁,但是我们最常用的还是第一种,这一种更符合我们的开发习惯,书写习惯。


Debug方式启动,以上几种方式都能给 DruidDataSource赋值。

image.png

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
12月前
|
前端开发 Java 应用服务中间件
《深入理解Spring》 Spring Boot——约定优于配置的革命者
Spring Boot基于“约定优于配置”理念,通过自动配置、起步依赖、嵌入式容器和Actuator四大特性,简化Spring应用的开发与部署,提升效率,降低门槛,成为现代Java开发的事实标准。
|
12月前
|
前端开发 Java 微服务
《深入理解Spring》:Spring、Spring MVC与Spring Boot的深度解析
Spring Framework是Java生态的基石,提供IoC、AOP等核心功能;Spring MVC基于其构建,实现Web层MVC架构;Spring Boot则通过自动配置和内嵌服务器,极大简化了开发与部署。三者层层演进,Spring Boot并非替代,而是对前者的高效封装与增强,适用于微服务与快速开发,而深入理解Spring Framework有助于更好驾驭整体技术栈。
|
JavaScript Java Maven
【SpringBoot(二)】带你认识Yaml配置文件类型、SpringMVC的资源访问路径 和 静态资源配置的原理!
SpringBoot专栏第二章,从本章开始正式进入SpringBoot的WEB阶段开发,本章先带你认识yaml配置文件和资源的路径配置原理,以方便在后面的文章中打下基础
743 4
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
913 2
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
7736 2
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
2014 5
存储 JSON Java
1087 0
|
人工智能 Java 开发者
【Spring】原理解析:Spring Boot 自动配置
Spring Boot通过“约定优于配置”的设计理念,自动检测项目依赖并根据这些依赖自动装配相应的Bean,从而解放开发者从繁琐的配置工作中解脱出来,专注于业务逻辑实现。
3118 0
|
传感器 Java 数据库
探索Spring Boot的@Conditional注解的上下文配置
Spring Boot 的 `@Conditional` 注解可根据不同条件动态控制 Bean 的加载,提升应用的灵活性与可配置性。本文深入解析其用法与优势,并结合实例展示如何通过自定义条件类实现环境适配的智能配置。
740 0
探索Spring Boot的@Conditional注解的上下文配置