【Spring篇】IOC/DI配置管理第三方bean

慈云数据 8个月前 (03-12) 技术支持 63 0

🍓系列专栏:Spring系列专栏

🍉个人主页:个人主页

目录

一、案例:数据源对象管理

1.环境准备

2.实现Druid管理

3.实现C3P0管理

二、加载properties文件

1.第三方bean属性优化

2.读取单个属性

3.注意事项  

三、核心容器

1.环境准备

2.容器  

1.容器的创建方式

2.Bean的三种获取方式

3.容器类层次结构

4.BeanFactory的使用

3.核心容器总结

1.容器相关

2.bean相关

3.依赖注入相关

四、图书推荐


一、案例:数据源对象管理

在这一节中,我们将通过一个案例来学习下对于第三方bean该如何进行配置管理。 以后我们会用到很多第三方的bean,本次案例将使用咱们前面提到过的数据源Druid(德鲁伊)和C3P0来配置学习下。

1.环境准备

  • 创建一个Maven项目

    • pom.xml添加依赖
      
          4.0.0
          com.itheima
          spring_09_datasource
          1.0-SNAPSHOT
          
              
                  org.springframework
                  spring-context
                  5.2.10.RELEASE
              
              
                  com.alibaba
                  druid
                  1.1.16
              
              
                  c3p0
                  c3p0
                  0.9.1.2
              
              
                  mysql
                  mysql-connector-java
                  5.1.47
              
          
      
      •  resources下添加spring的配置文件applicationContext.xml
        
        
        • 编写一个运行类App
          public class App {
          public static void main(String[] args) {
          ApplicationContext ctx = new
          ClassPathXmlApplicationContext("applicationContext.xml");
          }
          }

          2.实现Druid管理

          思路分析

          需求 : 使用 Spring 的 IOC 容器来管理 Druid 连接池对象 1. 使用第三方的技术,需要在 pom.xml 添加依赖【前面已导入】 2. 在配置文件中将【第三方的类】制作成一个 bean ,让 IOC 容器进行管理 3. 数据库连接需要基础的四要素 驱动 、 连接 、 用户名 和 密码 ,【如何注入】到对应的 bean 中 4. 从 IOC 容器中获取对应的 bean 对象,将其打印到控制台查看结果

          步骤1:配置第三方bean

          在applicationContext.xml配置文件中添加DruidDataSource的配置

           
                  
                  
                  
                  
              
          说明 : driverClassName: 数据库驱动 url: 数据库连接地址 username: 数据库连接用户名 password: 数据库连接密码 数据库连接的四要素要和自己使用的数据库信息一致。 步骤2 : 从 IOC 容器中获取对应的 bean 对象
          public class App {
              public static void main(String[] args) {
                  ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
                  DataSource dataSource = (DataSource) ctx.getBean("dataSource");
                  System.out.println(dataSource);
              }
          }
          

          做完案例后,我们可以将刚才思考的两个问题答案说下 :
          • 第三方的类指的是什么?
            DruidDataSource
            • 如何注入数据库连接四要素?
              setter注入

              3.实现C3P0管理

              完成了 DruidDataSource 的管理,接下来我们再来加深下练习,这次我们来管理 C3P0 数据源,具体的实现步骤是什么呢? 步骤1 : 配置第三方 bean 在 applicationContext.xml 配置文件中添加配置
               
                      
                      
                      
                      
                      
                  
              注意 :
              • ComboPooledDataSource的属性是通过setter方式进行注入
              • 想注入属性就需要在ComboPooledDataSource类或其上层类中有提供属性对应的setter方法
              • C3P0的四个属性和Druid的四个属性是不一样的

                运行程序

                二、加载properties文件

                上节中我们已经完成两个数据源 druid 和 C3P0 的配置,但是其中包含了一些问题,我们来分析下 :
                • 这两个数据源中都使用到了一些固定的常量如数据库连接四要素,把这些值写在Spring的配置文件中不利于后期维护
                • 需要将这些值提取到一个外部的properties配置文件中
                • Spring框架如何从配置文件中读取属性值来配置就是接下来要解决的问题。

                  1.第三方bean属性优化

                  实现思路

                  需求 : 将数据库连接四要素提取到 properties 配置文件, spring 来加载配置信息并使用这些信息 来完成属性注入。 1. 在 resources 下创建一个 jdbc.properties( 文件的名称可以任意 ) 5 2. 将数据库连接四要素配置到配置文件中 3. 在 Spring 的配置文件中加载 properties 文件 4. 使用加载到的值实现属性注入 其中第 3 , 4 步骤是需要大家重点关注,具体是如何实现。

                  实现步骤  

                  步骤 1: 准备 properties 配置文件 resources 下创建一个 jdbc.properties 文件 , 并添加对应的属性键值对
                  jdbc.driver=com.mysql.jdbc.Driver
                  jdbc.url=jdbc:mysql://127.0.0.1:3306/spring_db
                  jdbc.username=root
                  jdbc.password=root
                  步骤 2: 开启 context 命名空间 在 applicationContext.xml 中开 context 命名空间
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon