回覆列表
  • 1 # HongyeLinux

    一、 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。

  • 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

  • 中秋節和大豐收的關聯?
  • 為什麼76人和騎士都要爭奪東部第三?