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

举报
小小张自由--张有博 发表于 2021/11/22 23:53:42 2021/11/22
【摘要】   Spring配置连接数据库与SpringBoot配置连接数据库(四种属性注入方式) Spring配置连接数据库 设置jdbc.properties 创建配置类 SpringBoot配置连接数据库 设置application.properties 创建配置类-JdbcProperties 创建配置类-J...
 

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

Spring配置连接数据库

设置jdbc.properties

创建配置类

SpringBoot配置连接数据库

设置application.properties

创建配置类-JdbcProperties

创建配置类-JdbcConfiguration

SpringBoot的四种属性注入方式

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


Spring配置连接数据库

设置jdbc.properties


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

创建配置类


  
  1. /**
  2. * @Author: Promsing
  3. * @Date: 2021/5/30 - 14:52
  4. * @Description:连接数据库的配置类
  5. * @version: 1.0
  6. */
  7. @Configuration//声明该类是一个java配置类,相当于一个xml配置文件
  8. @PropertySource("classpath:jdbc.properties") //读取资源文件
  9. public class JdbcConfiguration {
  10. @Value("${jdbc.driverClassName}")
  11. private String driverClassName;
  12. @Value("${jdbc.url}")
  13. private String url;
  14. @Value("${jdbc.username}")
  15. private String username;
  16. @Value("${jdbc.password}")
  17. private String password;
  18. @Bean //将返回值注入到IOC容器中
  19. public DataSource dataSource(){
  20. DruidDataSource dataSource=new DruidDataSource();
  21. //设置连接数据库的四大参数
  22. dataSource.setDriverClassName(this.driverClassName);
  23. dataSource.setUrl(this.url);
  24. dataSource.setUsername(this.username);
  25. dataSource.setPassword(this.password);
  26. return dataSource;
  27. }
  28. }

SpringBoot配置连接数据库

设置application.properties


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

创建配置类-JdbcProperties


  
  1. /**
  2. * @Author: Promsing
  3. * @Date: 2021/5/30 - 15:41
  4. * @Description: 封装了读取出来的配置文件
  5. * @version: 1.0
  6. */
  7. @ConfigurationProperties(prefix = "jdbc")
  8. public class JdbcProperties {
  9. private String driverClassName;
  10. private String url;
  11. private String username;
  12. private String password;
  13. public void setDriverClassName(String driverClassName) {
  14. this.driverClassName = driverClassName;
  15. }
  16. public void setUrl(String url) {
  17. this.url = url;
  18. }
  19. public void setUsername(String username) {
  20. this.username = username;
  21. }
  22. public void setPassword(String password) {
  23. this.password = password;
  24. }
  25. public String getDriverClassName() {
  26. return driverClassName;
  27. }
  28. public String getUrl() {
  29. return url;
  30. }
  31. public String getUsername() {
  32. return username;
  33. }
  34. public String getPassword() {
  35. return password;
  36. }
  37. }

创建配置类-JdbcConfiguration


  
  1. /**
  2. * @Author: Promsing
  3. * @Date: 2021/5/30 - 14:52
  4. * @Description: 连接数据库的Java配置类
  5. * @version: 1.0
  6. */
  7. @Configuration//声明该类是一个java配置类,相当于一个西xml配置文件
  8. @EnableConfigurationProperties(JdbcProperties.class) //加载JDBC的配置类
  9. public class JdbcConfiguration {
  10. @Autowired
  11. private JdbcProperties jdbcProperties;
  12. //方式一
  13. @Bean //将返回值注入到IOC容器中
  14. public DataSource dataSource(){
  15. DruidDataSource dataSource=new DruidDataSource();
  16. //设置连接数据库的四大参数
  17. dataSource.setDriverClassName(this.jdbcProperties.getDriverClassName());
  18. dataSource.setUrl(this.jdbcProperties.getUrl());
  19. dataSource.setUsername(this.jdbcProperties.getUsername());
  20. dataSource.setPassword(this.jdbcProperties.getPassword());
  21. return dataSource;
  22. }
  23. /*
  24. //方式二:最优雅最简单--直接换掉方式一
  25. @Bean //将返回值注入到IOC容器中
  26. @ConfigurationProperties(prefix = "jdbc")
  27. public DataSource dataSource(){
  28. DruidDataSource dataSource=new DruidDataSource();
  29. return dataSource;
  30. }
  31. * */
  32. /*
  33. //方式三通过构造函数注入--在方式一上的方式修改
  34. public JdbcConfiguration(JdbcProperties jdbcProperties) {
  35. this.jdbcProperties = jdbcProperties;
  36. }
  37. * */
  38. /*
  39. //方式四通过方法的参数注入--直接换掉方式一
  40. public DataSource dataSource(dbcProperties jdbcProperties){
  41. DruidDataSource dataSource=new DruidDataSource();
  42. //设置连接数据库的四大参数
  43. dataSource.setDriverClassName(jdbcProperties.getDriverClassName());
  44. dataSource.setUrl(jdbcProperties.getUrl());
  45. dataSource.setUsername(jdbcProperties.getUsername());
  46. dataSource.setPassword(jdbcProperties.getPassword());
  47. return dataSource;
  48. // }
  49. * */
  50. }

SpringBoot的四种属性注入方式

1. Autowired注入

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

3.构造函数主语

4.@Bean方法形参注入

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

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

如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哦。

文章来源: blog.csdn.net,作者:小小张自由—>张有博,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/promsing/article/details/117399403

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。