HikariCP连接池是最快速的连接池

如何获取一个与数据库连接的变量,细节

1.在配置数据库连接的时候我们通过DataSource类型变量依赖注入
2.当第一次我们调用方法获取一个Connection的时候并没有这个池,
所以第一次会通过配置信息获取与数据库的连接并创建一个连接放到池中,并且底层在判断是否有池中采用了单例双检验编程式,即达到了线程安全又提升了性能。
3.当我们多次获取Connection的时候,底层每次都会创建一个备用链接以便我们下次调用并且每一个对象都指向的是不同的链接(地址)
4.当我们释放掉变量资源时,当我们再次调用时会获取到之前的数据库链接(调用之前已经创建好的链接,通过释放将连接返回并在池中保存)

HikariCP连接池连接过程分析

通过测试或者项目通过@Autowired描述类型变量依赖注入去获取一个连接,底层调用DataSource接口的子类实现类HikariDataSource去获取连接,发现是第一次创建连接,这时候会通过配置信息获取(Driver以及相关数据等)一个连接,并将通过依赖注入放入连接池中,在需要的时候进行注入,释放的时候会放回连接池中

注:这就也是第一次获取连接的较慢的原因

整合MyBatis框架

MyBatis是一个优秀的持久层框架(数据层),底层基于JDBC实现与数据库的交互,并在JDBC的基础上对其进行的封装和优化

MyBatis框架连接过程分析

@Autowired描述获取业务Dao层被@Controller描述的接口并在底层创建子类接口实现($Proxy35)通过相关注解描述(@Select,@Delete)的方法或相关配置的Mapper文件向Session接口的子类实现类SqlSession数据库进行数据交互,并返回结果

注:MyBatis应用在数据层

Spring Boot整合SpringMVC应用

MAC是软件设计的一种架构模式,分为三部分:模型(Model),视图(View),和控制器(Controller)通过这种设计是程序结构更加分明,简洁,减低问题复杂性并提高维护性
视图(View):UI人员进行设计的界面设计,实现与用户交互
控制器(Controller):负责获取请求,处理请求,响应结果
模型(Model):实现业务逻辑,数据逻辑实现
个对象实行高内聚,低耦合的设计思想进行对象之间的交互,以便提高程序的可维护性和可扩展性
Servlet充当了MVC中的V,负责调用Model处理业务,负责转发和重定向等响应,在页面上呈现数据

业务流程实现

首先通过前端控制器,处理请求的入口进入由HandlerMapper映射器管理url与对应controller的映射关系,接着通过拦截器,实现请求响应的共性处理,通过后端控制器Handler来处理对应的业务请求将响应结果发给视图解析器ViewResolver,解析对应视图关系

注:在添加依赖的时候,内部嵌入一个Tomcat服务器