maven中spring的启动原理 springboot是什么框架?
springboot是什么框架?
Spring Boot是所有实现Spring旗下的项目的起点。Spring Boot的设计是是为让你尽肯定快的跑起来Spring应用程序但是尽很有可能减少你的配置文件。简单说来应该是SpringBoot反正并非什么新的框架,它系统默认配置了很多框架的使用,就像maven全部整合了所有的jar包,spring boot整合了所有的框架(不知道这样的话形容是否需要最合适)。
如何在Maven中配置Spring依赖?
一、spring-security-coreSpring Security的核心功能是由spring-security-core包提供的,包涵了认证和访问控制功能、允许standalone应用程序、方法级安全和JDBC支持。
ltpropertiesgt
lt/propertiesgt
ltdependencygt
ltartifactIdgtspring-security-corelt/artifactIdgt
ltversiongt${}lt/versiongt
lt/dependencygt
注意:我们使用的是3.2.x版本的SpringSecurity--Spring和SpringSecurity有着差别的版本计划,所以才他们的版本号之间没有一对一关系。
如果不是项目使用的是较老版本的Spring,必须再注意的时SpringSecurity3.1.x版本不依赖感于Spring3.1.x版本,而且SpringSecurity3.1.x版本在Spring3.1之前首页。Spring的计划是在妖军的版本中,使双方的版本号极为接近,更多细节请查找这个JIRA。我们将在后面的内容中看下情况对我们的不好算影响。
二、spring-security-web
要为Spring Security提升Web支持,是需要引导出spring-security-web依赖:
ltdependencygt
ltartifactIdgtspring-security-weblt/artifactIdgt
ltversiongt${}lt/versiongt
lt/dependencygt
这个项目为Servlet环境核心中了对于URL访问控制的去相关基础安全组件和过滤器。
三、SpringSecurity与较老版本的SpringCore之间的依赖感问题
如上文所述,这个新的依赖有一种一个Maven依赖关系问题,SpringSecurity的咨询jar不感情依赖于最新的Springcore的jar(反而以前的版本)。这肯定使的被依赖性太强的Springcore相关包在类路径中被配置前在最新的Spring4.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属性中定义。
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。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。