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

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

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

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

1 導(dǎo)入JDBC

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

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

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

2 自動(dòng)配置

自動(dòng)配置的類(lèi)

  • DataSourceAutoConfiguration : 數(shù)據(jù)源的自動(dòng)配置
    • 修改數(shù)據(jù)源相關(guān)的配置:spring.datasource
    • 數(shù)據(jù)庫(kù)連接池的配置,是自己容器中沒(méi)有DataSource才自動(dòng)配置的
    • 底層配置好的連接池是: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{
    }

說(shuō)明:

  • DataSourceTransactionManagerAutoConfiguration: 事務(wù)管理器的自動(dòng)配置
  • JdbcTemplateAutoConfiguration: JdbcTemplate的自動(dòng)配置,可以來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行crud
    • 可以修改這個(gè)配置項(xiàng)@ConfigurationProperties(prefix = “spring.jdbc”) 來(lái)修改JdbcTemplate
    • @Bean@Primary JdbcTemplate;容器中有這個(gè)組件
  • JndiDataSourceAutoConfiguration: jndi的自動(dòng)配置
  • XADataSourceAutoConfiguration: 分布式事務(wù)相關(guān)的

3 修改默認(rèn)配置

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

4 測(cè)試

@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

引入依賴(lài)

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

自動(dòng)配置

  • 擴(kuò)展配置項(xiàng) spring.datasource.druid
  • DruidSpringAopConfiguration.class, 監(jiān)控SpringBean的;配置項(xiàng):spring.datasource.druid.aop-patterns
  • DruidStatViewServletConfiguration.class, 監(jiān)控頁(yè)的配置:spring.datasource.druid.stat-view-servlet;默認(rèn)開(kāi)啟
  • DruidWebStatFilterConfiguration.class, web監(jiān)控配置;spring.datasource.druid.web-stat-filter;默認(rèn)開(kāi)啟
  • 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";

常見(jiàn)配置案例

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     # 底層開(kāi)啟功能,stat(sql監(jiān)控),wall(防火墻)
      stat-view-servlet:   # 配置監(jiān)控頁(yè)功能
        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:    # 對(duì)上面filters里面的stat的詳細(xì)配置
          slow-sql-millis: 1000
          logSlowSql: true
          enabled: true
        wall:
          enabled: true
          config:
            drop-table-allow: false

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

相關(guān)文章

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

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

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

    Java中定時(shí)器Timer和TimerTask使用方法全解析

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

    java面向?qū)ο缶幊填?lèi)的內(nèi)聚性分析

    高內(nèi)聚、低耦合是軟件設(shè)計(jì)中非常關(guān)鍵的概念。在面向?qū)ο蟪绦蛟O(shè)計(jì)中類(lèi)的劃分時(shí),類(lèi)的內(nèi)聚性越高,其封裝性越好,越容易復(fù)用
    2021-10-10
  • idea2020.1.3 手把手教你創(chuàng)建web項(xiàng)目的方法步驟

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

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

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

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

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

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

    mybatis plus的3種查詢(xún)方式(小結(jié))

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

    淺析git server“丟失”commit問(wèn)題

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

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

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

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

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

最新評(píng)論

达孜县| 文昌市| 恩平市| 兴和县| 屏东县| 承德市| 广安市| 鲁甸县| 大悟县| 凌云县| 兴业县| 江阴市| 衡阳市| 九龙坡区| 尼勒克县| 江城| 沽源县| 柯坪县| 高清| 阿图什市| 通道| 于田县| 武定县| 黑水县| 和静县| 武陟县| 宝应县| 汾西县| 马公市| 南靖县| 涞源县| 贵州省| 方城县| 辽中县| 赫章县| 卢龙县| 水富县| 墨江| 宝清县| 博乐市| 读书|