当前位置:首页 > TAG信息列表 > maven中spring的启动原理springboot是什么框架?

maven中spring的启动原理springboot是什么框架?

maven中spring的启动原理 springboot是什么框架?

springboot是什么框架?

springboot是所有实现spring旗下的项目的起点。springboot的设计是是为让你尽肯定快的跑起来spring应用程序但是尽很有可能减少你的配置文件。简单说来应该是springboot反正并非什么新的框架,它系统默认配置了很多框架的使用,就像maven全部整合了所有的jar包,springboot整合了所有的框架(不知道这样的话形容是否需要最合适)。

如何在maven中配置spring依赖?

一、spring-security-corespringsecurity的核心功能是由spring-security-core包提供的,包涵了认证和访问控制功能、允许standalone应用程序、方法级安全和jdbc支持。

maven中spring的启动原理 springboot是什么框架?

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

要为springsecurity提升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及其他

要使用相当丰富的springsecurityxml的命名空间,不需要定义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。

版本springmaven问题文件


琳琳汇 自由力

  • 关注微信关注微信

猜你喜欢

微信公众号