使用@Profile进行环境搭建,读取配置文件的方式

2025-12-30 01:49:21

1、@Profile注解是Spring为我们提供的可以根据当前环境,动态的激活和切换一系列bean的功能。

我们以开发环境、测试环境、生产环境连接不同的数据源为例。

新建一个组件配置类:MainConfigOfProfile

使用@Profile进行环境搭建,读取配置文件的方式

2、在pom.xml文件中加入数据源和数据库的相关依赖包:

<!-- 数据库连接池,驱动 -->

        <dependency>

            <groupId>c3p0</groupId>

            <artifactId>c3p0</artifactId>

            <version>0.9.1</version>

        </dependency>

        

        <dependency>

            <groupId>mysql</groupId>

            <artifactId>mysql-connector-java</artifactId>

            <version>5.1.41</version>

        </dependency>

使用@Profile进行环境搭建,读取配置文件的方式

3、在组件配置类中配置上测试环境,生产环境,开发环境的数据源。

package com.gwolf.config;

import javax.sql.DataSource;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import com.mchange.v2.c3p0.ComboPooledDataSource;

@Configuration

public class MainConfigOfProfile {

        

        @Bean

        public DataSource dataSourceTest() throws Exception {

                ComboPooledDataSource dataSource = new ComboPooledDataSource();

                dataSource.setUser("root");

                dataSource.setPassword("root");

                dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/ssm_crud");

                dataSource.setDriverClass("com.mysql.jdbc.Driver");

                return dataSource;

        }

        

        @Bean

        public DataSource dataSourceDev() throws Exception {

                ComboPooledDataSource dataSource = new ComboPooledDataSource();

                dataSource.setUser("root");

                dataSource.setPassword("root");

                dataSource.setJdbcUrl("jdbc:mysql://localhost:3307/ssm_crud");

                dataSource.setDriverClass("com.mysql.jdbc.Driver");

                return dataSource;

        }

        

        @Bean

        public DataSource dataSourceProduct() throws Exception {

                ComboPooledDataSource dataSource = new ComboPooledDataSource();

                dataSource.setUser("root");

                dataSource.setPassword("root");

                dataSource.setJdbcUrl("jdbc:mysql://localhost:3308/ssm_crud");

                dataSource.setDriverClass("com.mysql.jdbc.Driver");

                return dataSource;

        }

}

使用@Profile进行环境搭建,读取配置文件的方式

4、接下来数据库的配置从配置文件中读取。

jdbc.jdbcUrl=jdbc:mysql://localhost:3306/ssm_crud

jdbc.driverClass=com.mysql.jdbc.Driver

jdbc.user=root

jdbc.password=root

使用@Profile进行环境搭建,读取配置文件的方式

5、读取配置文件中的值有很多中方式,首先使用注解@PropertySource在组件配置类中加载配置文件。

使用@Profile进行环境搭建,读取配置文件的方式

6、可以使用@Value注解得到属性资源文件中的值。

使用@Profile进行环境搭建,读取配置文件的方式

7、在方法上使用@Value注解得到属性资源文件中的值。

package com.gwolf.config;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.context.annotation.PropertySource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

@Configuration

@PropertySource("classpath:dbconfig.properties")

public class MainConfigOfProfile {

        

        @Value("${jdbc.user}")

        private String user;

        

        @Bean

        public DataSource dataSourceTest(@Value("${jdbc.password}") String password)  throws Exception {

                ComboPooledDataSource dataSource = new ComboPooledDataSource();

                dataSource.setUser(user);

                dataSource.setPassword(password);

                dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/ssm_crud");

                dataSource.setDriverClass("com.mysql.jdbc.Driver");

                return dataSource;

        }

        

        @Bean

        public DataSource dataSourceDev() throws Exception {

                ComboPooledDataSource dataSource = new ComboPooledDataSource();

                dataSource.setUser("root");

                dataSource.setPassword("root");

                dataSource.setJdbcUrl("jdbc:mysql://localhost:3307/ssm_crud");

                dataSource.setDriverClass("com.mysql.jdbc.Driver");

                return dataSource;

        }

        

        @Bean

        public DataSource dataSourceProduct() throws Exception {

                ComboPooledDataSource dataSource = new ComboPooledDataSource();

                dataSource.setUser("root");

                dataSource.setPassword("root");

                dataSource.setJdbcUrl("jdbc:mysql://localhost:3308/ssm_crud");

                dataSource.setDriverClass("com.mysql.jdbc.Driver");

                return dataSource;

        }

}

使用@Profile进行环境搭建,读取配置文件的方式

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢