maven与spring的配置

本文详细介绍如何使用Maven管理Spring项目的依赖包,包括配置POM文件、添加Spring依赖及解决常见错误等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇博客主要是maven与spring的配置管理,利用maven来管理spring的依赖包。

转载至:http://blog.youkuaiyun.com/j903829182/article/details/38150795

1.在cmd的dos命令下面利用maven创建一个web项目,不清楚可以参照我前面的两篇的博客。

2.把创建好的项目导入myeclipse,具体导入的方法,这里不再啰嗦了,不清楚的可以看http://blog.youkuaiyun.com/j903829182/article/details/38128777

3.配置好项目的jdk版本,添加目录,修改项目的属性,详细的请参照http://blog.youkuaiyun.com/j903829182/article/details/38128777

4.上面的配置好了以后,基本利用maven管理web项目的初步工作就完成了,接下来进行spring包管理的配置。

5.配置spring的依赖包:

打开pom.xml文件,在里面进行spring包的配置

[html]  view plain  copy
 print ?
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
  3.   <modelVersion>4.0.0</modelVersion>  
  4.   <groupId>com.wj.demo.maven</groupId>  
  5.   <artifactId>maven4</artifactId>  
  6.   <packaging>war</packaging>  
  7.   <version>1.0-SNAPSHOT</version>  
  8.   <name>maven4 Maven Webapp</name>  
  9.   <url>http://maven.apache.org</url>  
  10.   <!-- 属性配置 -->    
  11.   <properties>  
  12.      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>    
  13.   </properties>  
  14.     
  15.   <dependencies>  
  16.     <dependency>  
  17.       <groupId>junit</groupId>  
  18.       <artifactId>junit</artifactId>  
  19.       <version>4.10</version>  
  20.       <scope>test</scope>  
  21.     </dependency>  
  22.       
  23.       
  24.     <!-- 添加Spring依赖 ,添加的都是本地的自己的spring的jar包-->    
  25.     <dependency>  
  26.       <groupId>org.springframework</groupId>  
  27.       <artifactId>spring-core</artifactId>  
  28.       <!-- <version>3.1.1.RELEASE</version> -->  
  29.       <version>4.0.0.M2</version>  
  30.     </dependency>  
  31.       
  32.     <dependency>  
  33.       <groupId>org.springframework</groupId>  
  34.       <artifactId>spring-beans</artifactId>  
  35.       <version>4.0.0.M2</version>  
  36.     </dependency>  
  37.       
  38.     <dependency>  
  39.       <groupId>org.springframework</groupId>  
  40.       <artifactId>spring-context</artifactId>  
  41.       <version>4.0.0.M2</version>  
  42.     </dependency>  
  43.       
  44.     <dependency>  
  45.       <groupId>org.springframework</groupId>  
  46.       <artifactId>spring-jdbc</artifactId>  
  47.       <version>4.0.0.M2</version>  
  48.     </dependency>  
  49.       
  50.       
  51.     <dependency>  
  52.       <groupId>org.springframework</groupId>  
  53.       <artifactId>spring-expression</artifactId>  
  54.       <version>4.0.0.M2</version>  
  55.     </dependency>  
  56.       
  57.     <dependency>  
  58.       <groupId>org.springframework</groupId>  
  59.       <artifactId>spring-web</artifactId>  
  60.       <version>4.0.0.M2</version>  
  61.     </dependency>  
  62.       
  63.     <dependency>  
  64.       <groupId>org.springframework</groupId>  
  65.       <artifactId>spring-webmvc</artifactId>  
  66.       <version>4.0.0.M2</version>  
  67.     </dependency>  
  68.       
  69.     <dependency>  
  70.       <groupId>org.springframework</groupId>  
  71.       <artifactId>spring-tx</artifactId>  
  72.       <version>4.0.0.M2</version>  
  73.     </dependency>  
  74.       
  75.       
  76.     <dependency>  
  77.       <groupId>org.apache</groupId>  
  78.       <artifactId>commons-logging</artifactId>  
  79.       <version>1.1.3</version>  
  80.     </dependency>  
  81.       
  82.       
  83.   </dependencies>  
  84.   <build>  
  85.     <finalName>maven4</finalName>  
  86.   </build>  
  87. </project>  


注意:我这里配置的包是比较新的,maven的中央仓库,可能还没更新,你如果按照我这样写的话会出错的,所以这里我配置的是自己本地的包,你也可以配置你自己本地的包方法是:

不管是新的包还是老的包,<groupId>****</groupId>里面的内容不变,可以不用改,按照老的配置组织名;

[html]  view plain  copy
 print ?
  1. <artifactId>****</artifactId>这里面的内容也不要改,按照老的包配置包名,那哪里要改了???需要改的是<pre name="code" class="html"><version>***</version>版本号,你改成你本地的包的版本,所有的包你都这样配置好了以后,你保存一下,mavne会自动下载你需要的包,如果下载成功则不报错,否则会报错,有错误信息,这说明包下载失败了,那么该怎么办了?  
[html]  view plain  copy
 print ?
  1. 首先,我们看错误的信息提示,到仓库里面找到报错的包,也就下载失败的包的位置,删除错误包目录下里面的所有的东西,把你自己本地的包复制进去,版本要和你的<span style="font-family: Arial, Helvetica, sans-serif;"><version>***</version>一样(包存放的路径,一般以仓库为根目录,以组织名(包一般是jar包,所以你有解压jar包的软件,你双击打开,一路点击下去,看到的就是组织名,我试了几个,的确是这样的)为文件夹的名字一路建立文件夹,最后建立以包名(不包括版本号)为名的文件2夹,最后建立以版本号文件名的文件夹,最后版本 号里面存放的就是对应版本的包)。</span>  
[html]  view plain  copy
 print ?
  1. 其次,包放好了以后,你右击项目---〉选择Maven4Myeclipse----〉选择Update Project,等待更新,接着你在clean一下你的项目就可以了,如果还有错误,显示是没有下载到更新包,你就按照上面的步骤一个一个手动添加自己本地的包到仓库里面。  
[html]  view plain  copy
 print ?
  1. </pre><pre name="code" class="html">   最后,没有报错了,则说明你的包已经添加成功了。  
[html]  view plain  copy
 print ?
  1. </pre><pre name="code" class="html">6.添加applicationContext.xml文件到src/main/resources目录下面  
[html]  view plain  copy
 print ?
  1. <pre name="code" class="html">applicationContext.xml文件里面的内容,在你下载的spring包里面有spring的api可以找到<span style="font-family: Arial, Helvetica, sans-serif;">applicationContext.xml里面的内容我这里spring4.0.0里面的配置信息是:</span>  
[html]  view plain  copy
 print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.        xsi:schemaLocation="http://www.springframework.org/schema/beans  
  5.            http://www.springframework.org/schema/beans/spring-beans.xsd">  
  6. <!--   
  7.   <bean id="..." class="...">  
  8.     collaborators and configuration for this bean go here  
  9.   </bean>  
  10.   
  11.   <bean id="..." class="...">  
  12.     collaborators and configuration for this bean go here  
  13.   </bean>  
  14.   
  15.   more bean definitions go here -->  
  16.   
  17.   
  18. <bean id="chinese" class="com.imp.Chinese">  
  19.   </bean>  
  20.   <bean id="american" class="com.imp.American">  
  21.   </bean>  
  22.   
  23.   
  24. </beans>  


 
[html]  view plain  copy
 print ?
  1. </pre><pre>  

7.现在你可以测试一下项目,首先在cmd的dos界面里面进入到项目所在的目录中进行编译和测试,输入下面的2条命令:

      1. mvn compile

       2.mvn test-compile

如果不输入上面的2条命令,则可能出现找不到applicationContext.xml的错误!

8.写java代码测试文件都放在src/main/java目录下面,并在src/main/java下面创建包名,在包里面写类,详细的就不写了,就贴出代码了:

     1.写一个接口:

[java]  view plain  copy
 print ?
  1. package com.face;  
  2.   
  3. public interface Human {  
  4.   
  5.     public void eat();  
  6.     public void walk();  
  7. }  


   2.写2个实现接口的类:

[java]  view plain  copy
 print ?
  1. package com.imp;  
  2.   
  3. import com.face.Human;  
  4.   
  5. public class American implements Human{  
  6.   
  7.     public void eat() {  
  8.         // TODO Auto-generated method stub  
  9.         System.out.println("美国人吃西餐,我不喜欢吃西餐!!!");  
  10.     }  
  11.   
  12.     public void walk() {  
  13.         // TODO Auto-generated method stub  
  14.         System.out.println("美国人经常坐车,缺乏运动对身体不好!!!");  
  15.     }     
  16. }  



[java]  view plain  copy
 print ?
  1. package com.imp;  
  2.   
  3. import com.face.Human;  
  4.   
  5. public class Chinese implements Human{  
  6.   
  7.     public void eat() {  
  8.         // TODO Auto-generated method stub  
  9.         System.out.println("中国人很会吃,中国有很多的美食!!!");  
  10.     }  
  11.   
  12.     public void walk() {  
  13.         // TODO Auto-generated method stub  
  14.         System.out.println("中国人健步如飞,中国人身体好!!!");  
  15.     }  
  16.   
  17. }  


    3.写一个工厂

[java]  view plain  copy
 print ?
  1. package com.factory;  
  2.   
  3. import com.face.Human;  
  4. import com.imp.American;  
  5. import com.imp.Chinese;  
  6. public class Factory {  
  7.   
  8.     public Human getHuman(String name){  
  9.         if("Chinese".equals(name)){  
  10.             return new Chinese();  
  11.         }else if("American".equals(name)){  
  12.             return new American();  
  13.         }else{  
  14.             return null;  
  15.         }  
  16.     }  
  17. }  

    4.写一个测试类

[java]  view plain  copy
 print ?
  1. package com.test;  
  2.   
  3.   
  4.   
  5. import org.springframework.context.ApplicationContext;  
  6. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  7. import org.springframework.context.support.FileSystemXmlApplicationContext;  
  8.   
  9. import com.face.Human;  
  10.   
  11. public class TestMain1 {  
  12.   
  13.     /** 
  14.      * @param args 
  15.      */  
  16.     public static void main(String[] args) {  
  17.         // TODO Auto-generated method stub  
  18.   
  19.         /*Human human=null; 
  20.         human=new Factory().getHuman("Chinese"); 
  21.         human.eat(); 
  22.         human.walk(); 
  23.         human=new Factory().getHuman("American"); 
  24.         human.eat(); 
  25.         human.walk();*/  
  26.           
  27.         ApplicationContext context =  
  28.                 new FileSystemXmlApplicationContext("src/main/resources/applicationContext.xml");  
  29.         /*ApplicationContext context = 
  30.                 new ClassPathXmlApplicationContext(new String[] {"services.xml", "applicationContext.xml"});*/  
  31.   
  32.         Human human=null;  
  33.         human=(Human) context.getBean("chinese");  
  34.         human.eat();  
  35.         human.walk();  
  36.         human=(Human) context.getBean("american");  
  37.         human.eat();  
  38.         human.walk();  
  39.     }  
  40.   
  41. }  



9.现在像编译运行java程序那样运行TestMain1类

    如果出现了Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory

则说明少加了一个包,解决:导入一个commons-logging.jar包即可,包的导入和上面再pom.xml里面配置包是一样的


如果出现了:Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: 
IOException parsing XML document from file [G:\maven\maven4\src\applicationContext.xml]; nested exception is java.io.FileNotFoundException: 
src\applicationContext.xml (系统找不到指定的文件。)
Caused by: java.io.FileNotFoundException: applicationContext.xml (系统找不到指定的文件。)


          解决:首先看是否已经进行了

1. mvn compile      2.mvn test-compile 操作,没有则进行这样的操作,如果已经进行了,还有错误,按照提示说明在目录G:\maven\maven4\src\applicationContext.xml]下面是不存在applicationContext.xml所以,检查main方法里面的FileSystemXmlApplicationContext的构造函数的参数是否是"src/main/resources/applicationContext.xml",不是的话,则改成这样的。如下所示:

ApplicationContext context =
   new FileSystemXmlApplicationContext("src/main/resources/applicationContext.xml");



10.一切ok的话,则console会输出下面的信息

2014-7-26 22:01:07 org.springframework.context.support.FileSystemXmlApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.FileSystemXmlApplicationContext@742808b3: startup date [Sat Jul 26 22:01:07 CST 2014]; root of context hierarchy
2014-7-26 22:01:07 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from file [G:\maven\maven4\src\main\resources\applicationContext.xml]
中国人很会吃,中国有很多的美食!!!
中国人健步如飞,中国人身体好!!!
美国人吃西餐,我不喜欢吃西餐!!!
美国人经常坐车,缺乏运动对身体不好!!!


11.项目的目录结构:









总结:经过几天maven的学习,利用maven搭建了struts2,hibernate,和spring,对maven的基本使用有了一定的了解,基本上会使用了,对于maven搭建ssh,步骤比较多,不过也不难,利用maven搭建struts2,hibernate,spring的知识,相信利用maven搭建ssh不是什么难事了。经过利用maven管理配置包,方便就是,随时可以加入包,撤销包,比较的方面,而且,如果不是新版本的包,基本上maven自己会给我们下载好。对于maven从不熟悉到会用,大概花了2天的时间左右,虽然不是很熟练,但是在这两天中,学到了蛮多的东西,参考别人的博客,文章,看官方的文档,进行编程,这过程还是蛮享受的。希望我的学习过程能对观看的你也有帮助,有不懂的,或者觉得我的有问题,我们可以一起交流,学习,一起进步



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值