国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring單數據源的配置詳解

Spring單數據源的配置詳解

2021-12-05 20:58程序員阿牛 Java教程

spring數據源的配置網絡上有很多例子,這里我也來介紹一下單數據源配置的例子,具有一定的參考價值,感興趣的小伙伴們可以參考一下

 

前言

spring數據源的配置網絡上有很多例子,這里我也來介紹一下單數據源配置的例子,基于SpringBoot的方式和原生的Spring的方式。

 

一、生成項目骨架(SpringBoot),運行一個簡單的程序

訪問:https://start.spring.io/ ,選擇必要的依賴

Spring單數據源的配置詳解

下面我們先看下Application類的代碼:

@SpringBootApplication
@Slf4j
public class SpringDatasourceApplication implements CommandLineRunner {

	@Autowired
	private DataSource dataSource;

	@Autowired
	private JdbcTemplate jdbcTemplate;

	public static void main(String[] args) {
		SpringApplication.run(SpringDatasourceApplication.class, args);
	}

	@Override
	public void run(String... args) throws Exception {
		showConnection();
		showData();
	}

	private void showConnection() throws SQLException {
		log.info("數據源:"+dataSource.toString());
		Connection conn = dataSource.getConnection();
		log.info("連接:"+conn.toString());
		conn.close();
	}

	private void showData() {
		jdbcTemplate.queryForList("SELECT * FROM user")
				.forEach(row -> log.info("記錄:"+row.toString()));
	}
}

application.properties文件的配置項,我們可以看到我們使用的h2數據庫

management.endpoints.web.exposure.include=*
spring.output.ansi.enabled=ALWAYS

spring.datasource.url=jdbc:h2:mem:demodb
spring.datasource.username=sa
spring.datasource.password=

在資源文件目錄,寫入兩個文件,一個是data.sql、一個是schema.sql

Spring單數據源的配置詳解

schema.sql內容是:

CREATE TABLE user (ID INT IDENTITY, name VARCHAR(64),age INT);

data.sql內容是:

INSERT INTO user (ID,name,age) VALUES (1, "張三",18);
INSERT INTO user (ID, name,age) VALUES (2, "李四",19);

運行代碼,結果如下:

Spring單數據源的配置詳解

其實我們并沒有去對DataSource進行bean配置,只是指定了數據庫的類型,加載了建表語句和初始化數據語句,可以看到連接池是Hikari,這也是springboot默認的連接池。
由于是使用的內置數據庫,我們可以在代碼中

這也是因為springboot給我們自動裝配了我們所需要的信息,由于我們引入了actuator,我們可以通過http://localhost:8080/actuator/beans 看到springboot幫我們裝載了很多的bean,有些可能是我們根本用不到的。下面我們講一下原生Spring方式怎么實現配置數據源。

 

二、選擇原生Spring方式配置數據源

pom文件配置內容:

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-dbcp2</artifactId>
            <version>2.8.0</version>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.4.200</version>
            <scope>runtime</scope>
        </dependency>
		```
		
		**創建applicationContext.xml文件,內容如下:**  
```xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

    <context:component-scan base-package="com.xxx.xxxx" />
    <!--
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
          destroy-method="close">
        <property name="driverClassName" value="org.h2.Driver"/>
        <property name="url" value="jdbc:h2:mem:testdb"/>
        <property name="username" value="SA"/>
        <property name="password" value=""/>
    </bean>
    -->
</beans>

** 自定義DataSource,這里使用注解來實現(使用dbcp連接池) **

@Configuration
@EnableTransactionManagement
public class DataSourceDemo {
    @Autowired
    private DataSource dataSource;

    public static void main(String[] args) throws SQLException {
        ApplicationContext applicationContext =
                new ClassPathXmlApplicationContext("applicationContext*.xml");
        showBeans(applicationContext);
        dataSourceDemo(applicationContext);
    }

    @Bean(destroyMethod = "close")
    public DataSource dataSource() throws Exception {
        Properties properties = new Properties();
        properties.setProperty("driverClassName", "org.h2.Driver");
        properties.setProperty("url", "jdbc:h2:mem:testdb");
        properties.setProperty("username", "sa");
        return BasicDataSourceFactory.createDataSource(properties);
    }

    @Bean
    public PlatformTransactionManager transactionManager() throws Exception {
        return new DataSourceTransactionManager(dataSource());
    }

    private static void showBeans(ApplicationContext applicationContext) {
        System.out.println(Arrays.toString(applicationContext.getBeanDefinitionNames()));
    }

    private static void dataSourceDemo(ApplicationContext applicationContext) throws SQLException {
        DataSourceDemo demo = applicationContext.getBean("dataSourceDemo", DataSourceDemo.class);
        demo.showDataSource();
    }

    public void showDataSource() throws SQLException {
        System.out.println(dataSource.toString());
        Connection conn = dataSource.getConnection();
        System.out.println(conn.toString());
        conn.close();
    }
}

運行main方法:

Spring單數據源的配置詳解

可以看到可以實現和springboot一樣的效果

  • 通過上面的兩個例子,我們可以看出SpringBoot幫我們實現了如下功能:
  • 通過DataSourceAutoConfiguration 配置 DataSource
  • 通過DataSourceTransactionManagerAutoConfiguration 配置 DataSourceTransactionManager
  • 通過JdbcTemplateAutoConfiguration 配置 JdbcTemplate

當然上面是按需來配置的,如果我們在代碼中已經配置了一個DataSource,SpringBoot不會再幫我們配置一個DataSource

在實際情況下,我們可能需要在應用中配置多個數據源,下篇文章我將介紹多個數據源的配置方式。

到此這篇關于Spring單數據源的配置詳解的文章就介紹到這了,更多相關Spring單數據源的配置內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/coderaniu/p/15174155.html

延伸 · 閱讀

精彩推薦
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

    Java BufferWriter寫文件寫不進去或缺失數據的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數據的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關于小米推送Java代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩中求8032021-07-12
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經有好久沒有升過級了。升級完畢重啟之后,突然發現好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

    這篇文章主要介紹了xml與Java對象的轉換詳解的相關資料,需要的朋友可以參考下...

    Java教程網2942020-09-17
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發現了對于集合操作轉換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關于Java8中S...

    阿杜7482021-02-04
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产999免费视频 | 国产精品久久久久久久久久 | 亚洲午夜精品片久久www慈禧 | 久久久久久九九 | 亚洲精品久久久久一区二区三区 | 亚洲一区二区福利 | 91在线免费看 | www.色综合 | 久久综合久久久 | 亚洲午夜一区 | 亚洲第1页 | 天天躁日日躁bbbbb | 午夜久久久久久久 | 国产高清精品一区二区三区 | 国产精品久久a | 三级视频在线观看 | 欧美精品一区三区 | 91亚洲精品在线观看 | 亚洲成人精品一区 | 99亚洲精品 | 亚洲一区高清 | 羞羞视频免费观看网站 | 亚洲综合在线一区 | 毛片激情永久免费 | 精品免费 | 成人爱情偷拍视频在线观看 | 久久精品无码一区二区三区 | 在线观看国产成人av片 | 色网站视频 | 亚洲第一av| 欧美日韩亚洲一区二区 | 91午夜在线 | 久色 | av短片在线 | 免费观看a毛片 | 在线看国产 | 91视频进入| 天天干夜夜操 | 欧美一区二区三区在线观看视频 | 日韩精品中文字幕在线观看 | 亚洲三级在线 |