maven中spring的啟動原理 springboot是什么框架?
springboot是什么框架?Spring Boot是所有實現(xiàn)Spring旗下的項目的起點。Spring Boot的設(shè)計是是為讓你盡肯定快的跑起來Spring應(yīng)用程序但是盡很有可能減少你的配置文件。
springboot是什么框架?
Spring Boot是所有實現(xiàn)Spring旗下的項目的起點。Spring Boot的設(shè)計是是為讓你盡肯定快的跑起來Spring應(yīng)用程序但是盡很有可能減少你的配置文件。簡單說來應(yīng)該是SpringBoot反正并非什么新的框架,它系統(tǒng)默認配置了很多框架的使用,就像maven全部整合了所有的jar包,spring boot整合了所有的框架(不知道這樣的話形容是否需要最合適)。
如何在Maven中配置Spring依賴?
一、spring-security-coreSpring Security的核心功能是由spring-security-core包提供的,包涵了認證和訪問控制功能、允許standalone應(yīng)用程序、方法級安全和JDBC支持。
ltpropertiesgt
lt/propertiesgt
ltdependencygt
ltartifactIdgtspring-security-corelt/artifactIdgt
ltversiongt${}lt/versiongt
lt/dependencygt
注意:我們使用的是3.2.x版本的SpringSecurity--Spring和SpringSecurity有著差別的版本計劃,所以才他們的版本號之間沒有一對一關(guān)系。
如果不是項目使用的是較老版本的Spring,必須再注意的時SpringSecurity3.1.x版本不依賴感于Spring3.1.x版本,而且SpringSecurity3.1.x版本在Spring3.1之前首頁。Spring的計劃是在妖軍的版本中,使雙方的版本號極為接近,更多細節(jié)請查找這個JIRA。我們將在后面的內(nèi)容中看下情況對我們的不好算影響。
二、spring-security-web
要為Spring Security提升Web支持,是需要引導(dǎo)出spring-security-web依賴:
ltdependencygt
ltartifactIdgtspring-security-weblt/artifactIdgt
ltversiongt${}lt/versiongt
lt/dependencygt
這個項目為Servlet環(huán)境核心中了對于URL訪問控制的去相關(guān)基礎(chǔ)安全組件和過濾器。
三、SpringSecurity與較老版本的SpringCore之間的依賴感問題
如上文所述,這個新的依賴有一種一個Maven依賴關(guān)系問題,SpringSecurity的咨詢jar不感情依賴于最新的Springcore的jar(反而以前的版本)。這肯定使的被依賴性太強的Springcore相關(guān)包在類路徑中被配置前在最新的Spring4.x具體包的前面。
這是要如何發(fā)生的呢?我們必須打聽一下Maven處理版本的機制,Maven會你選與感情依賴樹樹根最將近的版本。在之前的情況中,spring-orm感情依賴4.x版本的spring-core,而spring-security-core感情依賴于3.2.8版本的spring-core。并且,spring-orm和sprint-security-web的定義順序應(yīng)該是一個問題,先符號表示的會有更高的優(yōu)先級。結(jié)果情況應(yīng)該是,我們的類路徑中會有兩個版本的spring-core。
目的是盡量避免這類問題,我們需要在我們的pom文件中必須明確更改一些Spring依賴,而不靠著Maven隱式依賴性太強機制。我們將在pom的根文件中定義方法某一特定的依賴關(guān)系,這樣的話這些依戀關(guān)系可以說有更高的優(yōu)先級。下面例子中,將對所有的Spring核心組件比較明確定義相同的版本,這對多模塊項目,是需要在父配置文件的dependencyManagement屬性中定義。
ltdependencygt
ltgroupIdgtorg.springframeworklt/groupIdgt
ltartifactIdgtspring-corelt/artifactIdgt
ltversiongt${}lt/versiongt
lt/dependencygt
ltdependencygt
ltgroupIdgtorg.springframeworklt/groupIdgt
ltartifactIdgtspring-contextlt/artifactIdgt
ltversiongt${}lt/versiongt
lt/dependencygt
ltdependencygt
ltgroupIdgtorg.springframeworklt/groupIdgt
ltartifactIdgtspring-jdbclt/artifactIdgt
ltversiongt${}lt/versiongt
lt/dependencygt
ltdependencygt
ltgroupIdgtorg.springframeworklt/groupIdgt
ltartifactIdgtspring-beanslt/artifactIdgt
ltversiongt${}lt/versiongt
lt/dependencygt
ltdependencygt
ltgroupIdgtorg.springframeworklt/groupIdgt
ltartifactIdgtspring-aoplt/artifactIdgt
ltversiongt${}lt/versiongt
lt/dependencygt
ltdependencygt
ltgroupIdgtorg.springframeworklt/groupIdgt
ltartifactIdgtspring-txlt/artifactIdgt
ltversiongt${}lt/versiongt
lt/dependencygt
ltdependencygt
ltgroupIdgtorg.springframeworklt/groupIdgt
ltartifactIdgtspring-expressionlt/artifactIdgt
ltversiongt${}lt/versiongt
lt/dependencygt
ltdependencygt
ltgroupIdgtorg.springframeworklt/groupIdgt
ltartifactIdgtspring-weblt/artifactIdgt
ltversiongt${}lt/versiongt
lt/dependencygt
四、spring-security-config及其他
要使用相當豐富的Spring Security XML的命名空間,不需要定義spring-security-config依賴:
ltdependencygt
ltartifactIdgtspring-security-configlt/artifactIdgt
ltversiongt${}lt/versiongt
ltscopegtruntimelt/scopegt
lt/dependencygt
沒有任何代碼不需要在編譯時依賴感這個包,所以才它的范圍估計定義方法為runtime。
到最后,LDAP、ACL、CAS和OpenID支持什么不需要各增強各自的依賴包:spring-security-ldap,spring-security-acl,spring-security-cas和spring-security-openid。