今天是新公司的入职第8天,一周多时间了.项目经理让我自己写一个接口,接收两个参数,返回一个json数据,自己架以springmvc的框架,一个url路径访问,可以获取到一个json数据.
就是建立一个maven的war文件,导入spring所依赖的jar包,尤其是spring-context,其中封装了注解的类,不然进行@Controller注解的时候是不能导包的.本来是引用的之前的一个项目中的jar的坐标,所以基本是这样的,属性中添加的spring的版本号就不显示了..
<dependencyManagement>
<!--spring的核心包-->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-content</artifactId>
<version>${spring-version}</version>
</dependency>
</dependencies> </dependencyManagement>
但是这样就行测试的时候,注解是不能正确导包的,仔细找了好久,发现并没有所要依赖的spring的jar包在里面,所以没有注解是很正常的存在了..
后来将<dependencyManage>的标签拿掉,直接依赖的时候,就看到了eclipse中的buildworkspace在build,证明一点我们的操作是有效果的,是在执行操作的.而且刚刚报红的注解都已经好了...可算是度过了一关,其实,后面还有九九八十一难呢,任重道远.
总结:
dependencyManagement其实只是一个管理jar的作用,是管理jar的版本,其他他的什么作用都没有,只是定义找到该jar的三维坐标,并不是真正的去执行下载的jar的功能.
但是jar的版本声明是有两种方式的,
1,在dependencies中的依赖中如果没有声明jar的版本,就到dependenciesManage中去找,找到就使用,没有就报错
2,在dependencies中声明jar的版本,则使用该版本,不管在dependenciesManage中有没有声明jar的version,都以该jar的版本为主.
其实还有一个知识点,是比较绕人的,但是也是个大坑,
我们在项目中需要引入一个框架S的jar包,S.jar.而S框架的开发者为了实现S框架又在pom中引入H框架,如果我们在项目中也使用了H框架,那么H框架的版本是什么呢?此时就是dependenciesManage的作用,不管怎样,在dependenciesManage中只要有版本的声明,就使用dm中的版本,就是这么简单粗暴!!!