前言
八月第一天,趁这个假期时间充裕一些,加油!
一、数据库连接池
之前有提过,如果频繁的创建和释放数据库连接是相当耗费资源的(包括建立网络通信所带来的资源消耗,每次建立连接时数据库服务需要进行资源分配以及后续连接管理等工作所带来的消耗等),而采用数据库连接池技术就可以很好的规避这些问题。
1.简介
数据库连接池其实是一个容器,用于负责分配、管理数据库连接(connection)。
- 程序在启动的时候,会在数据库连接池中,创建一定数量的Connection对象。
- 当客户端执行sql时,会先从数据库连接池中获取一个连接对象,然后正常执行sql语句,在sql语句执行结束后,会将使用的数据库连接对象归还给数据库连接池,从而实现池中连接对象的复用。
2.优点
- 使用数据库连接池可以实现资源的重用,程序不需要再每次执行sql语句时都创建Connection对象,而是直接从数据库连接池中取出一个数据库连接对象,用完归还数据库连接池即可。
- 提升系统响应速度,因为使用数据库连接池可以避免因为建立连接而带来的一系列网络通信和身份认证等计算工作,可以进一步的提高系统响应速度。
- 避免数据库连接漏洞,数据库连接池会监测连接,如果某个连接的空闲时间超过最大空闲时间阈值,则数据库连接池会自动的释放掉该数据库连接对象,避免出现数据库连接对象数量不足使用的情况。
3.主流数据库连接池
Sun公司制定了一种数据库连接池的规范(javax.sql.DataSource接口),第三方需要按照接口要求进行数据库连接池的实现。
常见数据库连接池:
- HiKari(追光者)
springboot框架默认使用的数据库连接池
- Druid(德鲁伊)
阿里的数据库连接池开源项目,功能强大,性能优越
如果希望更改SpringBoot项目中的数据库连接池,需要在pom文件中导入对应的依赖(同时记得在properties配置文件中引入数据库配置连接)
二、Lombok
1.常用注解
lombok是一个使用的java类库,可以通过简单的注解来简化和消除一些必须有但是显得有些臃肿得java代码。
注解 | 作用 |
---|---|
@Getter/@Setter | 为所有的属性提供get/set方法 |
@ToString | 会给类自动生成易阅读的 toString 方法 |
@EqualsAndHashCode | 根据类所拥有的非静态字段自动重写 equals 方法和 hashCode 方法 |
@Data | 提供了更综合的生成代码功能(@Getter + @Setter + @ToString + @EqualsAndHashCode) |
@NoArgsConstructor | 为实体类生成无参的构造器方法 |
@AllArgsConstructor | 为实体类生成除了static修饰的字段之外带有各参数的构造器方法。 |
tips:@Data注解包含了对get、set、toString、equals、hash方法的自动生成,但是并没有有参构造和无参构造的自动生成,所以还需要手动的给入@NoArgsConstructor和@AllargsConstrunctor注解来自动生成构造方法。(lombok会在编译时自动生成对应的java代码)
2.使用
如果希望使用lombok,需要首先导入lombok的依赖,由于在springboot的父工程中已经集成了lombok并指定了版本号,所以在引入依赖时不需要指定version。除了导入由依赖外,Idea中还需要安装lombok的插件才能使用lombok,否则注解是可以使用的,但是方法并不会自动生成。(版本较新的idea会自动下载,具体可以到File->setting->plugins->installed中搜索Lombok查看是否已经下载)
总结
简单小叙,下一篇是MyBatis的正式学习,就不写在这一篇里面了。