今天写个简单boot小程序时,自动注入类写成了javax.activation.DataSource,困扰了好久。
突然发现自己对这块比较陌生,能有人解释下区别吗?
今天写个简单boot小程序时,自动注入类写成了javax.activation.DataSource,困扰了好久。
突然发现自己对这块比较陌生,能有人解释下区别吗?
8 回答6.4k 阅读
3 回答3.7k 阅读✓ 已解决
1 回答4.2k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答3.3k 阅读
2 回答3.9k 阅读
看代码发现,
javax.activation.DataSource
中定义的接口都跟I/O有关,其实现类 也打多与 网络、文件I/O相关,可以判断出,javax.activation.DataSource
是对资源文件的抽象,类似Reader、Writer等。而javax.sql.DataSource
是JDBC2.0标准中的规范,其目的是针对1.0标准中通过DriverManager.getConnection()
方式获取到的数据库链接,消耗大、不可复用等缺点而推出的新一代规范。javax.sql.DataSource
接口方法也只有两个:有参和无参的getConnection()方法。具体的实现有DruidDataSource
(阿里)和BasicDataSource
(apache)等。这些数据源能提供可复用方式的数据库链接,大多采用连接池实现,好处就是:资源可以服用