飞道的博客

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

499人阅读  评论(0)
 

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赋值。

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


转载:https://blog.csdn.net/promsing/article/details/117399403
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场