-
1 # HongyeLinux
-
2 # 自學JAVA
這個還是比較簡單的,你可以透過官網直接生成對應的依賴,包括對應的版本也可以自己去找很方便的。具體的操作步驟如下:
第一步開啟官網的依賴查詢網址網址是:
https://mvnrepository.com
/或者直接進入maven 的官網然後慢慢的去找進入的連結,這個我就不演示了哈。最後的查詢頁面是這樣的:
第二部輸入要查詢的依賴包的技術,並選擇這個我們就用題主的spring為例:
在輸入框輸入spring,然後出現下面的全是spring的不同依賴。
我們現在是為了引入spring的主依賴,所以選擇spring Core就行
選擇需要的版本號選擇需要的依賴之後,出現選擇生成的版本號,這裡答主建議選擇使用人數最多的版本,因為使用人數最多證明經過考驗了,你不是第一個吃螃蟹的人。
複製依賴程式碼我們這裡就選擇使用最多的這個版本之後,會出現這個頁面:
直接複製生成的依賴到maven的配置檔案中那麼就可以了。
-
3 # 基礎技術研究
Spring 是一個輕量級的 DI / IoC 和 AOP 容器的開源框架,提倡以“最少侵入”的方式來管理應用中的程式碼,框架結構如下圖:
新增Spring 依賴主要包括4個方面:
(1)spring核心依賴(基礎配置)
spring-core、spring-beans、spring-context
其中spring-context實現了Spring注入容器並且依賴:spring-core,spring-expression,spring-aop以及spring-beans
(2)spring dao依賴(提供JDBCTemplate)
spring-jdbc、spring-tx
(3)spring web依賴(配置Spring MVC)
spring-web、spring-webmvc
(a)spring-web包包含Servlet和Portlet所需要通用,spring-webmvc則在Servlet環境中啟用MVC支援。
(b)由於spring-webmvc依賴於spring-web,所以定義了spring-webmvc依賴後,可以不用顯示的在pom定義spring-web。
(4)spring test依賴
spring-test
從Spring 3.2開始,Spring MVC Test專案已經被包含到核心的Spring Test中。所以,從Spring 3.2開始,僅需要在依賴配置中配置spring-test依賴即可
程式碼如下:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</g
回覆列表
一、 spring-security-core
Spring Security的核心功能是由spring-security-core包提供的,包含了認證和訪問控制功能、支援standalone應用程式、方法級安全和JDBC支援。
<properties>
<org.springframework.security.version>3.2.3.RELEASE</org.springframework.security.version>
<org.springframework.version>4.0.4.RELEASE</org.springframework.version>
</properties>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>${org.springframework.security.version}</version>
</dependency>
注意:我們使用的是3.2.x版本的Spring Security--Spring和Spring Security有著不同的版本計劃,所以他們的版本號之間沒有一對一關係。
如果專案使用的是較老版本的Spring,需要注意的時Spring Security 3.1.x版本不依賴於Spring 3.1.x版本,因為Spring Security 3.1.x版本在Spring 3.1之前釋出。Spring的計劃是在後續的版本中,使雙方的版本號更為接近,更多細節請檢視這個JIRA。我們將在後面的內容中看看這種情況對我們的實際影響。
二、 spring-security-web
要為Spring Security增加Web支援,需要引入spring-security-web依賴:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${org.springframework.security.version}</version>
</dependency>
這個專案為Servlet環境引入了針對URL訪問控制的相關基礎安全元件和過濾器。
三、Spring Security與較老版本的Spring Core之間的依賴問題
如上文所述,這個新的依賴產生一個Maven依賴關係問題,Spring Security的相關jar不依賴於最新的Spring core的jar (而是以前的版本)。這可能使的被依賴的Spring core相關包在類路徑中被配置前在最新的Spring 4.x相關包的前面。
這是如何發生的呢?我們需要了解Maven處理版本衝突的機制,Maven會選擇與依賴樹樹根最接近的版本。在之前的情況中,spring-orm依賴4.x版本的spring-core,而spring-security-core依賴於3.2.8版本的spring-core。因此,spring-orm和sprint-security-web的定義順序就是一個問題,先定義的會有更高的優先順序。最終情況就是,我們的類路徑中會有兩個版本的spring-core。
為了避免這類問題,我們需要在我們的pom檔案中明確指定一些Spring依賴,而不依靠Maven隱式依賴機制。我們將在pom的根檔案中定義特定的依賴關係,這樣這些依賴關係將會有更高的優先順序。下面例子中,將對所有的Spring核心元件明確定義相同的版本,對於多模組專案,需要在父配置檔案的dependencyManagement屬性中定義。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>
四、spring-security-config及其他
要使用豐富的Spring Security XML的名稱空間,需要定義spring-security-config依賴:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${org.springframework.security.version}</version>
<scope>runtime</scope>
</dependency>
沒有任何程式碼需要在編譯時依賴這個包,所以它的範圍應該定義為runtime。
最後,LDAP、ACL、CAS和OpenID支援需要分別增加各自的依賴包:spring-security-ldap, spring-security-acl, spring-security-cas和spring-security-openid。