最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot開發(fā)中的數(shù)據(jù)源詳解

 更新時間:2023年09月01日 09:59:02   作者:韓_師兄  
這篇文章主要介紹了SpringBoot開發(fā)中的數(shù)據(jù)源詳解,數(shù)據(jù)源(Data Source)顧名思義,數(shù)據(jù)的來源,是提供某種所需要數(shù)據(jù)的器件或原始媒體,在數(shù)據(jù)源中存儲了所有建立數(shù)據(jù)庫連接的信息,需要的朋友可以參考下

1 數(shù)據(jù)源的自動配置-HikariDataSource

1 導入JDBC

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jdbc</artifactId>
        </dependency>

數(shù)據(jù)庫驅動, 導入JDBC場景,官方?jīng)]有導入驅動, 因其不知道我們接下要操作什么數(shù)據(jù)庫。

默認版本:<mysql.version>8.0.22</mysql.version>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
<!--            <version>5.1.49</version>-->
        </dependency>
想要修改版本
1、直接依賴引入具體版本(maven的就近依賴原則)
2、重新聲明版本(maven的屬性的就近優(yōu)先原則)
    <properties>
        <java.version>1.8</java.version>
        <mysql.version>5.1.49</mysql.version>
    </properties>

2 自動配置

自動配置的類

  • DataSourceAutoConfiguration : 數(shù)據(jù)源的自動配置
    • 修改數(shù)據(jù)源相關的配置:spring.datasource
    • 數(shù)據(jù)庫連接池的配置,是自己容器中沒有DataSource才自動配置的
    • 底層配置好的連接池是:HikariDataSource
@Configuration(proxyBeanMethods = false)
	@Conditional(PooledDataSourceCondition.class)
	@ConditionalOnMissingBean({ DataSource.class, XADataSource.class })
	@Import({ DataSourceConfiguration.Hikari.class, DataSourceConfiguration.Tomcat.class,
			DataSourceConfiguration.Dbcp2.class, DataSourceConfiguration.OracleUcp.class,
			DataSourceConfiguration.Generic.class, DataSourceJmxConfiguration.class })
	protected static class PooledDataSourceConfiguration{
    }

說明:

  • DataSourceTransactionManagerAutoConfiguration: 事務管理器的自動配置
  • JdbcTemplateAutoConfiguration: JdbcTemplate的自動配置,可以來對數(shù)據(jù)庫進行crud
    • 可以修改這個配置項@ConfigurationProperties(prefix = “spring.jdbc”) 來修改JdbcTemplate
    • @Bean@Primary JdbcTemplate;容器中有這個組件
  • JndiDataSourceAutoConfiguration: jndi的自動配置
  • XADataSourceAutoConfiguration: 分布式事務相關的

3 修改默認配置

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver

4 測試

@Slf4j
@SpringBootTest
class Boot05WebAdminApplicationTests {
    @Autowired
    JdbcTemplate jdbcTemplate;
    @Test
    void contextLoads() {
//        jdbcTemplate.queryForObject("select * from t_user")
//        jdbcTemplate.queryForList("select * from t_user",)
        Long aLong = jdbcTemplate.queryForObject("select count(*) from t_user", Long.class);
        log.info("記錄總數(shù):{}",aLong);
    }
}

2 Druid數(shù)據(jù)源

1 druid的使用

創(chuàng)建數(shù)據(jù)源

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.17</version>
        </dependency>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
		destroy-method="close">
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
		<property name="maxActive" value="20" />
		<property name="initialSize" value="1" />
		<property name="maxWait" value="60000" />
		<property name="minIdle" value="1" />
		<property name="timeBetweenEvictionRunsMillis" value="60000" />
		<property name="minEvictableIdleTimeMillis" value="300000" />
		<property name="testWhileIdle" value="true" />
		<property name="testOnBorrow" value="false" />
		<property name="testOnReturn" value="false" />
		<property name="poolPreparedStatements" value="true" />
		<property name="maxOpenPreparedStatements" value="20" />
</bean>

2 使用官方starter

引入依賴

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.17</version>
        </dependency>

自動配置

  • 擴展配置項 spring.datasource.druid
  • DruidSpringAopConfiguration.class, 監(jiān)控SpringBean的;配置項:spring.datasource.druid.aop-patterns
  • DruidStatViewServletConfiguration.class, 監(jiān)控頁的配置:spring.datasource.druid.stat-view-servlet;默認開啟
  • DruidWebStatFilterConfiguration.class, web監(jiān)控配置;spring.datasource.druid.web-stat-filter;默認開啟
  • DruidFilterConfiguration.class}) 所有Druid自己filter的配置
    private static final String FILTER_STAT_PREFIX = "spring.datasource.druid.filter.stat";
    private static final String FILTER_CONFIG_PREFIX = "spring.datasource.druid.filter.config";
    private static final String FILTER_ENCODING_PREFIX = "spring.datasource.druid.filter.encoding";
    private static final String FILTER_SLF4J_PREFIX = "spring.datasource.druid.filter.slf4j";
    private static final String FILTER_LOG4J_PREFIX = "spring.datasource.druid.filter.log4j";
    private static final String FILTER_LOG4J2_PREFIX = "spring.datasource.druid.filter.log4j2";
    private static final String FILTER_COMMONS_LOG_PREFIX = "spring.datasource.druid.filter.commons-log";
    private static final String FILTER_WALL_PREFIX = "spring.datasource.druid.filter.wall";

常見配置案例

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
    druid:
      aop-patterns: com.atguigu.admin.*  #監(jiān)控SpringBean
      filters: stat,wall     # 底層開啟功能,stat(sql監(jiān)控),wall(防火墻)
      stat-view-servlet:   # 配置監(jiān)控頁功能
        enabled: true
        login-username: admin
        login-password: admin
        resetEnable: false
      web-stat-filter:  # 監(jiān)控web
        enabled: true
        urlPattern: /*
        exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'
      filter:
        stat:    # 對上面filters里面的stat的詳細配置
          slow-sql-millis: 1000
          logSlowSql: true
          enabled: true
        wall:
          enabled: true
          config:
            drop-table-allow: false

到此這篇關于SpringBoot開發(fā)中的數(shù)據(jù)源詳解的文章就介紹到這了,更多相關SpringBoot數(shù)據(jù)源內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 部署springboot項目到云服務器的兩種方式(jar+war)

    部署springboot項目到云服務器的兩種方式(jar+war)

    本文主要介紹了部署springboot項目到云服務器的兩種方式,主要介紹了jar和war兩種方式,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Java中定時器Timer和TimerTask使用方法全解析

    Java中定時器Timer和TimerTask使用方法全解析

    這篇文章主要介紹了Java中定時器Timer和TimerTask使用方法的相關資料,如何創(chuàng)建定時任務、安排任務執(zhí)行、取消任務以及實現(xiàn)任務的暫停和恢復功能,通過這些功能,可以靈活地控制任務的執(zhí)行,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-04-04
  • java面向對象編程類的內(nèi)聚性分析

    java面向對象編程類的內(nèi)聚性分析

    高內(nèi)聚、低耦合是軟件設計中非常關鍵的概念。在面向對象程序設計中類的劃分時,類的內(nèi)聚性越高,其封裝性越好,越容易復用
    2021-10-10
  • idea2020.1.3 手把手教你創(chuàng)建web項目的方法步驟

    idea2020.1.3 手把手教你創(chuàng)建web項目的方法步驟

    這篇文章主要介紹了idea 2020.1.3 手把手教你創(chuàng)建web項目的方法步驟,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • Java設置Excel數(shù)據(jù)驗證的示例代碼

    Java設置Excel數(shù)據(jù)驗證的示例代碼

    數(shù)據(jù)驗證是Excel 2013版本中,數(shù)據(jù)功能組下面的一個功能。本文將通過Java程序代碼演示數(shù)據(jù)驗證的設置方法及結果,感興趣的可以了解一下
    2022-05-05
  • SpringBoot項目啟動時就加載數(shù)據(jù)到內(nèi)存實現(xiàn)

    SpringBoot項目啟動時就加載數(shù)據(jù)到內(nèi)存實現(xiàn)

    文章主要討論了在SpringBoot項目中,對于不經(jīng)常變動的配置型數(shù)據(jù),可以在項目啟動時直接加載到內(nèi)存中,以減少不必要的IO消耗,使用Maven管理后端依賴,并實現(xiàn)了服務層和控制器層
    2026-04-04
  • mybatis plus的3種查詢方式(小結)

    mybatis plus的3種查詢方式(小結)

    這篇文章主要介紹了mybatis plus的3種查詢方式(小結),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • 淺析git server“丟失”commit問題

    淺析git server“丟失”commit問題

    這篇文章主要介紹了git server“丟失”commit問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • mybatis實現(xiàn)圖書管理系統(tǒng)

    mybatis實現(xiàn)圖書管理系統(tǒng)

    這篇文章主要為大家詳細介紹了mybatis實現(xiàn)圖書管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • 詳解IntelliJ IDEA 中如何配置多個jdk版本即(1.7和1.8兩個jdk都可用)

    詳解IntelliJ IDEA 中如何配置多個jdk版本即(1.7和1.8兩個jdk都可用)

    這篇文章主要介紹了詳解IntelliJ IDEA 中如何配置多個jdk版本即(1.7和1.8兩個jdk都可用),非常具有實用價值,需要的朋友可以參考下
    2017-11-11

最新評論

如皋市| 应城市| 潮安县| 那曲县| 大竹县| 利辛县| 四子王旗| 宝山区| 门头沟区| 白朗县| 临澧县| 东乡| 花垣县| 邹平县| 册亨县| 南木林县| 齐河县| 泸水县| 繁昌县| 澄迈县| 筠连县| 新田县| 济源市| 汶上县| 醴陵市| 高青县| 宜丰县| 浦东新区| 怀集县| 泌阳县| 永丰县| 花垣县| 泗洪县| 琼中| 宝鸡市| 菏泽市| 丰台区| 乌兰县| 永城市| 肥乡县| 南城县|