java从入门到精通二十七(Spring框架篇章二)
IOC和 DI管理第三方bean
我们要用到的是控制反转和依赖注入这种理念来进行管理第三方bean。对的这是Spring里面非常典型的思想。
我们回顾一下他们两个的定义。
DI全程Dependency Injection,当某个java 实例需要另一个java实例时,创建被调用者的工作不是由调用者实现,而是由spring容器来完成,然后注入调用者,因此称为依赖注入。
Ioc全称Inversion of Control,把创建对象的权利交给容器,对象的实例不再由调用者来创建,而是由容器来创建,容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。这样,控制权由应用代码转移带了容器,控制权发生了反转,这就是控制反转。它是spring框架的核心思想之一。
其实说的是一个概念,只是侧重点不一样。控制反转是原理,是一种思想,依赖注入呢,其实侧重于程序的具体实现。
现在我们去管理第三方的bean,而不是我们自己创建程序的bean。
我们还是从开始做起。先创建一个简单的模块。
然后呢。开始我们的准备工作。
首先我们在pom.xml添加Spring的依赖。
然后这样我们就可以创建到Spring的配置文件。
记得点这里。这样可以加载一下你导入的东西。
我们将它创建出来。 然后我们简单创建一个运行测试类。现在我们的代码还是比较少,所以我们不需要创建太多包结构。
这是我们目前的准备。
如果要对第三方bean管理,那么我们需要在pom文件导入第三方的东西。
管理Druid
这是阿里巴巴开发的一个开源的优秀的管理工具。更多情况我们把它叫做数据库连接池。首先我们来回顾数据库连接池做了那些事情。
数据库连接池是个容器,负责分配、管理数据库连接 (Connection) 它允许应用程序重复使用一个现有的数据库连接,而不是再 重新建立一个; 释放空闲时间超过最大空闲时间的数据库连接来避免因为没 有释放数据库连接而引起的数据库连接遗漏
我们如果不适用数据库链接池的话,之前我们代码中使用连接是没有使用都创建一个Connection对象, 使用完毕就会将其销毁。这样重复创建销毁的过程是特别耗费计算 机的性能的及消耗时间的。
如果我们使用了数据库连接池
连接池是在一开始就创建好了一些连接(Connection)对象存储起 来。用户需要连接数据库时,不需要自己创建连接,而只需要从连 接池中获取一个连接进行使用,使用完毕后再将连接对象归还给连 接池;这样就可以起到资源重用,也节省了频繁创建连接销毁连接 所花费的时间,从而提升了系统响应的速度。
所以数据库连接池扮演这样的角色。之前我们都在代码中用过。
我们之前是这样获取到连接的。然后我们可以和后面的操作对比下。
Properties prop = new Properties(); prop.load(new FileInputStream(“jdbc- demo/src/druid.properties”)); 获取连接池对象 DataSource dataSource = DruidDataSourceFactory.createDataSource(prop); 获取数据库连接 Connection Connection connection = dataSource.getConnection();
回顾完之后,然后我们开始去整合它吧
那么我们先添加依赖 然后我们在xml配置上它的bean,这样我们还是配置文件配置。这种配置模式我们在后面可以用注解取代。我们后面再说。
然后我们在代码中看看能否获取到IOC容器的bean对象。 我们可以成功获取到。
管理c3p0
添加依赖
pom坐标查询网站
然后我们去配置文件当中添加配置
然后我们尝试去获取到管理的bean
但是这样会报错。
这个连接池没有自带驱动啊!所以我们需要自己去导入依赖。 添加以后记得刷新加载
然后这样就可以了。
后面我们将按照注解简化开发的方式进行说明。更文较慢,学业繁忙。 未完续更。
|