Spring配置HikariCP连接池HikariCP连接池

   在spring框架中,经常将连接池的设置参数独立成一个.properties文件,它可以根据客户需求,自定义一些相关的参数。而参数的读取一般写到applicationContext.xml的文件中(后文将会详细介绍该文件的作用)。然后通过org.springframework.beans.factory.config.PropertyPlaceholderConfigurer类将.properties(key/value形式)文件中设定的值在xml中替换为占位该键($key)的值,这样的设计可以灵活些。

       上图为.properties文件,用来配置连接池的一些参数。其中jdbc.driver是一个数据库驱动类,根据你的数据库来决定。MySQL的jdbc驱动一般有两种:一种是org.gjt.mm.mysql.Driver,这种是git组织提供的,现在基本很少用;另一种就是图片中的com.mysql.jdbc.Driver,这是mysql官方提供的驱动。

        jdbc.url是数据库地址,它的格式如下:jdbc:mysql://【host:port】/【database】【?参数名1=参数值1&参数名2=参数值2】...,下图是几个比较重要的参数:

        jdbc.minCon和jdbc.maxCon的设置需要考虑以下因素:最小连接数如果设置过大,而应用程序对数据库连接的使用量不大时,将会有大量的数据库连接资源被浪费。最大连接数如果设置过小,而应用程序对数据库连接的使用量过大时,将会有请求被加入到等待队列中,影响以后的数据库操作。

       连接池的数量大致可以通过以下公式来计算:pool size=Tn*(Cm-1)+1,其中Tn为最大线程数量,Cm为单个线程上最大并发量。

       配置好.properties文件后,接着了解applicationContext.xml文件的设置。说到该文件就不得不提spring的思想依赖注入。在开发中,有时某个类需要依赖其他类的方法,通常的做法是new一个依赖类,在调用类实例的方法。这种方法存在的问题是new出来的实例不好管理。因此为了解决这个问题,spring提出了一种依赖注入的思想。即依赖类不需要程序员来实例化,而是通过spring容器来帮我们new指定实例并且将该实例注入到需要的对象类中。spring提供了两种注入方式:构造函数注入和方法注入。下图所示为setter方法注入。整个applicationContext.xml(配置文件)的作用是把类放入到spring容器中,在<bean></bean>这个里面就相当于是整个spring的bean的大包,需要将什么类纳入到spring容器中,就在这个里面进行说明。

       第一行代码,定义一个id是propertyConfigurer的bean。每个bean的id属性是该bean的唯一标识,程序通过id属性访问bean,bean与bean的依赖关系也通过id属性完成。class指定该bean实例的实现类。在spring中,使用PropertyPlaceholderConfigurer可以在xml配置文件中加入外部属性文件,当然也可以指定外部文件的编码,也可以引入多个属性文件。上图中的classpath是引用src目录下的文件写法,当存在多个properties文件时,配置就需要使用locations了。

扫描二维码关注公众号,回复: 3638803 查看本文章

       假设注入的类的属性包括各自的setter和getter方法,还有一个包含这些属性的构造方法,如果用spring来管理这个对象,那么有两种方式为该对象设置属性:设值注入和构造注入。两种方式各有优点,设值注入需要该bean包含这些属性的setter方法,与传统的javabean的写法更相似,程序开发人员也更容易理解,接受。而构造注入需要该bean包含带有这些属性的构造器,构造注入可以在构造器中决定依赖关系的注入顺序,优先依赖的优先注入。上图为设值注入。Destroy-method=“shutdown”的作用是当数据库连接不使用的时候,就把该连接重新放到数据池中。方便下次使用

猜你喜欢

转载自blog.csdn.net/yhblog/article/details/82799701