SpringBoot快速配置數據源的方法
SpringBoot如何快速配置數據源;有如下兩種方式:
通過spring-boot-starter-jdbc快速配置數據源 自定義數據源DataSource首先我們需要明確數據源DataSource有什么作用:
通過DataSource可以獲取數據庫連接Connection 通過DataSource創建JdbcTemplate操作數據庫實際項目中,我們在配置數據源的時候會指定數據庫連接池,比如流行的Hikari(spring默認的數據庫連接池)、C3p0、Dbcp2以及阿里巴巴的Druid。
一、使用數據庫連接池
應用在操作數據庫的時候,直接從數據庫連接池獲取連接,而不需要每次創建新的連接。
至于數據庫連接池的好處,總結就是: 應用創建和銷毀連接的代價是很大的,使用數據庫連接池可以很好的復用連接,節省開銷,方便管理,簡化開發。
可能有些場景我們不想使用SpringBoot JDBC默認的數據源,我需要引入數據庫連接池,然后自定義數據源,指定數據源類型。
下面以Dbcp2數據庫連接池配置數據源為例。
二、配置依賴
引入dbcp2的數據庫連接池已經相關依賴。
<!-- dbcp2數據庫連接池 --><dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-dbcp2</artifactId> <version>2.7.0</version></dependency><!--數據庫驅動--><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.18</version></dependency><!-- 提供操作數據庫的標準口徑 --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.2.2.RELEASE</version> <scope>compile</scope></dependency>
三、編寫配置項
在application.properties文件中配置數據庫連接屬性。
customize.datasource.url=jdbc:mysql://localhost:3306/blue?serverTimezone=UTCcustomize.datasource.username=rootcustomize.datasource.password=wan4380797customize.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
四、自定義DataSource
import org.apache.commons.dbcp2.BasicDataSource;@Configurationpublic class Dbcp2DataSource { @Bean('myDbcp2DataSource') @ConfigurationProperties(prefix = 'customize.datasource') public DataSource getDataSource(){ return DataSourceBuilder.create().type(BasicDataSource.class).build(); }}
這邊我們可以看到我們創建的DataSource類型為BasicDataSource類型的。并且BasicDataSource來源于之前配置的dbcp2依賴的jar包中。
五、調用驗證
下面我們使用junit來驗證以下數據源配置的正確與否:
@SpringBootTest@RunWith(SpringRunner.class)public class JdbcCustomizeDatasourceApplicationTests { @Autowired @Qualifier('myDbcp2DataSource') private DataSource dataSource; @Test public void springJdbcTemplateTest(){ try{ JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); String queryStr = 'select * from student'; List<Student> resultList = new ArrayList<>(); jdbcTemplate.query(queryStr, (ResultSet resultSet)->{Student student = new Student();student.setId(resultSet.getString('id'));student.setStudentId(resultSet.getString('student_id'));student.setStudentName(resultSet.getString('student_name'));student.setAge(resultSet.getInt('age'));resultList.add(student); }); resultList.forEach((Student student) -> System.out.println(student)); }catch (Exception exception){ exception.printStackTrace(); } }}
以上就是SpringBoot快速配置數據源的方法的詳細內容,更多關于SpringBoot 配置數據源的資料請關注好吧啦網其它相關文章!
相關文章:
1. vue實現web在線聊天功能2. 完美解決vue 中多個echarts圖表自適應的問題3. JavaScript實現頁面動態驗證碼的實現示例4. 解決Android Studio 格式化 Format代碼快捷鍵問題5. JavaEE SpringMyBatis是什么? 它和Hibernate的區別及如何配置MyBatis6. Java使用Tesseract-Ocr識別數字7. Python使用urlretrieve實現直接遠程下載圖片的示例代碼8. 在Chrome DevTools中調試JavaScript的實現9. Springboot 全局日期格式化處理的實現10. SpringBoot+TestNG單元測試的實現
