2016-01-21 31 views
0

如何理解我們的Spring應用程序中javax.servlet-api和commons-dbcp的重要性。在我們的Spring應用程序中javax.servlet-api和commons-dbcp是否重要?

當我們必須使用它,我們應該在哪裏實施?

,因爲我已經的build.gradle這樣的事情

dependencies { 
    //compile('javax.servlet:javax.servlet-api:3.1.0') 
    //compile('commons-dbcp:commons-dbcp:1.4') 

    compile('org.springframework.boot:spring-boot-starter-thymeleaf') 
    compile('org.springframework.boot:spring-boot-starter-data-jpa') 

    compile('mysql:mysql-connector-java:5.1.31') 

    compile('com.google.code.gson:gson:2.4') 

    testCompile("org.springframework.boot:spring-boot-starter-test") 
} 

如果我刪除從我的build.gradle中的javax.servlet-API和commons-DBCP,我的應用程序仍然可以如預期運行。

那麼它們(javax.servlet-api和commons-dbcp)實際上在場景的後面做了什麼?

也許我知道這是爲什麼,因爲它已經被Spring Boot Starter開箱即用了。但是,關於它的解釋在哪裏,我無法在任何地方找到它。

回答

1

您不需要這些依賴關係。 javax.servlet-api由tomcat提供。 commons-dbcp是一個連接池,但tomcat已經包含它自己的connection pool作爲傳遞依賴。
輸出:

org.apache.tomcat:tomcat-jdbc:8.0.30 (selected by rule) 
\--- org.springframework.boot:spring-boot-starter-jdbc:1.3.1.RELEASE 
    \--- org.springframework.boot:spring-boot-starter-data-jpa:1.3.1.RELEASE 

您應該使用Tomcat的連接池。

我們更喜歡Tomcat將數據源集中到DataSource中,因爲它的性能和 併發性,所以如果可用,我們總是選擇它。

Spring-Boot documentation

+0

謝謝,現在我明白了一點點。所以,如果我在我的** build.gradle **中使用spring-boot-starter-data-jpa,那就夠了,對吧? – nmfzone

+0

yw,您還需要使用thymeleaf模板和mysql jdbc驅動程序的starter-thymeleaf,因爲它不包含在starter-data-jpa中。 – Cyril

+0

哈哈,我的意思是spring-boot-starter-thymeleaf也是。好的,謝謝你的幫助。 – nmfzone

相關問題