Spring配置连接数据库与SpringBoot配置连接数据库(四种属性注入方式)
Debug方式启动,以上几种方式都能给 DruidDataSource赋值。
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赋值。
如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哦。
转载:https://blog.csdn.net/promsing/article/details/117399403
查看评论