带你学会maven实现ssh整合完整篇

-------  前言:大家好,今天给大家带来的ssh框架的整合。由于本篇文章篇幅较长,文章会采用目录的形式对内容进行整理。也是为了方便大家按照顺序进行学习。分别介绍了idea(itelliJ IDEA)和eclipseEE两种开发工具下的maven项目构建。

一:开始前需要了解的知识

1.1 什么是Maven?(工具)

Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。
在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。

1.2 Maven Web是什么?(和普通web项目的区别)

即通过Maven创建的Web项目,同普通项目不同,是由Maven工具创建的web项目,它们的区别不仅仅在于项目结构的不同,最主要的Maven项目具有一个关键的 pom.xml文件。
项目结构的不同并不会影响web项目的运行,因为最终都会编译后运行,最关键的是其中的代码和资源文件。而不是项目的包结构。


二:开发前的准备工作

2.1 EclipseEE的Maven插件的安装

eclipseEE新的版本已经集成了Maven,但是我们通常会采用自己下载的Maven工具。 点击此处进入官网下载Maven工具包。

2.1.1在eclipse中添加安装插件的位置

点击Windows->preference->Maven->Installaction->add 填写下载的Maven工具包的地址。然后勾选自己的安装包。

带你学会maven实现ssh整合完整篇_第1张图片



2.1.2 更改远程中央仓库和设置本地仓库

由于默认的远程仓库拉取太慢,所以我们需要修改默认的远程仓库地址。点击Windows->preference->Maven->User setting看到如下所示,User setting选择设置为自定义安装的Maven的conf目录下的setting.xml。第三行为本地仓库的存储地址,本地仓库的作用就是以后不用每次都去远程的中央仓库里面去拉取,如果本地仓库有的话就从本地仓库选择,没有的话再会去远程拉取。

带你学会maven实现ssh整合完整篇_第2张图片

打开setting.xml,将下面的阿里云中央仓库地址插入mirrors节点标签中。然后保存即可。

    alimaven
    aliyun maven
    http://maven.aliyun.com/nexus/content/groups/public/
    central       
  


2.2 IDEA的Maven插件安装

idea点击File->setting,选择maven,然后同样配置本地仓库和远程仓库地址。本文中不详细介绍,可参考上述Eclipse思路配置,步骤基本一致。


三:开始您的web项目

3.1创建Maven web项目

在eclipseEE中选择File->new->Maven Project->next->next,如下图,选择最后一个,

带你学会maven实现ssh整合完整篇_第3张图片

group Id是包名,Artifact Id是项目名。


带你学会maven实现ssh整合完整篇_第4张图片

然后点击finish。

3.2创建基本的包结构

带你学会maven实现ssh整合完整篇_第5张图片



  • advice:存放aop增强类
  • dao:存放pojo层操作接口
  • dao.impl:存放操作接口的实现类
  • pojos:存放实体类
  • service:存放业务逻辑封装接口
  • service:存放业务逻辑封装实现类
  • utils:存放相关的工具类
  • action包:存放action类

3.3在pom.xml中导入ssh整合所需要的所有包。


带你学会maven实现ssh整合完整篇_第6张图片
带你学会maven实现ssh整合完整篇_第7张图片
带你学会maven实现ssh整合完整篇_第8张图片


下面是pom.xml。


  4.0.0
  com.jsdl
  enshop
  war
  1.0-SNAPSHOT
  enshop Maven Webapp
  http://maven.apache.org
  
    
    UTF-8
    
    2.5.14
    5.0.3.RELEASE
    5.2.13.Final
      2.10.0
      3.3
  
  
  
    
      junit
      junit
      3.8.1
      test
    
    
    
      commons-fileupload
      commons-fileupload
      1.3.3
      
        
          commons-io
          commons-io
        
      
    
    
      commons-io
      commons-io
      2.6
    
    

    org.slf4j
    slf4j-log4j12
    1.7.25
    test

    
    
      org.apache.commons
      commons-lang3
      3.7
    
    
      org.freemarker
      freemarker
      2.3.23
    
    
    org.apache.struts
    struts2-json-plugin
    ${struts.version}
        
            
                commons-lang3
                org.apache.commons
            
        
    

    org.apache.struts
    struts2-convention-plugin
    ${struts.version}
    
        
            struts2-core
            org.apache.struts
        
        
            commons-lang3
            org.apache.commons
        
    


    org.apache.log4j
    com.springsource.org.apache.log4j
    1.2.15


    org.springframework
    spring-context
    ${spring.version}

    
      org.apache.struts
      struts2-core
      ${struts.version}
        
            
                commons-io
                commons-io
            
            
                commons-lang3
                org.apache.commons
            
            
                log4j-api
                org.apache.logging.log4j
            
            
                freemarker
                org.freemarker
            
            
                javassist
                org.javassist
            
            
                ognl
                ognl
            
        
    
    
      org.apache.struts.xwork
      xwork-core
      2.3.34
      
        
          ognl
          ognl
        
          
              commons-lang3
              org.apache.commons
          
      
    
    
    
      antlr
      antlr
      2.7.7
    
    
      org.apache.commons
      commons-collections4
      4.1
    
    
      dom4j
      dom4j
      1.6.1
    

    org.hibernate.javax.persistence
    hibernate-jpa-2.1-api
    1.0.2.Final

    
      org.hibernate
      hibernate-core
      ${hibernate.version}
        
            
                hibernate-commons-annotations
                org.hibernate.common
            
            
                hibernate-jpa-2.1-api
                org.hibernate.javax.persistence
            
            
                javassist
                org.javassist
            
            
                jandex
                org.jboss
            
            
                jboss-logging
                org.jboss.logging
            
        
    

    org.hibernate
    hibernate-c3p0
    ${hibernate.version}
    
        
            jboss-logging
            org.jboss.logging
        
    


    com.mchange
    mchange-commons-java
    0.2.15


    org.slf4j
    slf4j-api
    1.7.25


    net.sf.ehcache
    ehcache-core
    2.6.11
    
        
            slf4j-api
            org.slf4j
        
    


    org.hibernate
    hibernate-entitymanager
    ${hibernate.version}
    
        
            hibernate-jpa-2.1-api
            org.hibernate.javax.persistence
        
        
            hibernate-commons-annotations
            org.hibernate.common
        
        
            javassist
            org.javassist
        
        
            jboss-logging
            org.jboss.logging
        
    


    com.mchange
    c3p0
    0.9.5.2
    
        
            mchange-commons-java
            com.mchange
        
    

    
    org.slf4j
    slf4j-api
    1.7.25


    org.jboss
    jandex
    2.0.4.Final


    org.jboss.logging
    jboss-logging
    3.3.2.Final

     
      org.javassist
      javassist
      3.18.0-GA
    
    
      javax.transaction
      jta
      1.1
    
    
      org.slf4j
      slf4j-api
      1.7.25
    
    
    
      commons-logging
      commons-logging
      1.1.1
    
    
      org.springframework
      spring-beans
      ${spring.version}
    
    
      org.springframework
      spring-core
      ${spring.version}
    
    
      org.springframework
      spring-expression
      ${spring.version}
    
    
    
      org.springframework
      spring-web
      ${spring.version}
    
    
    
      aopalliance
      aopalliance
      1.0
    
    
      aspectj
      aspectjrt
      1.5.4
    
    
      org.aspectj
      aspectjweaver
      1.8.13
    
    
      org.springframework
      spring-aop
      ${spring.version}
    

    org.springframework
    spring-aspects
    ${spring.version}

    
    

    org.apache.geronimo.specs
    geronimo-jta_1.1_spec
    1.1.1


    org.hibernate.common
    hibernate-commons-annotations
    5.0.2.Final
    
        
            jboss-logging
            org.jboss.logging
        
    

    
    
      mysql
      mysql-connector-java
      8.0.9-rc
    
    
      org.springframework
      spring-orm
      ${spring.version}
    
    
      org.springframework
      spring-tx
      ${spring.version}
    
    
      org.springframework
      spring-jdbc
      ${spring.version}
    

    org.springframework
    spring-tx
    ${spring.version}

    
    
    	javax.servlet
    	javax.servlet-api
    	4.0.0
    	provided
    
    
    
      org.apache.logging.log4j
      log4j-api
      ${log4j2.version}
    
    
      org.apache.logging.log4j
      log4j-core
      ${log4j2.version}
    
    
    
      commons-pool
      commons-pool
      1.6
    
    
    	asm
    	asm
    	${asm.version}
    
    
    	asm
    	asm-commons
    	${asm.version}
    
    
    	asm
    	asm-tree
    	${asm.version}
    
    
    	org.apache.struts
    	struts2-spring-plugin
    	${struts.version}
        
            
                commons-lang3
                org.apache.commons
            
            
                spring-beans
                org.springframework
            
            
                spring-context
                org.springframework
            
            
                spring-core
                org.springframework
            
            
                spring-web
                org.springframework
            
        
    
    
    	ognl
    	ognl
    	3.1.8
        
            
                javassist
                org.javassist
            
        
    
  
  
    enshop
    
      
        
        org.apache.maven.plugins
        maven-compiler-plugin
        3.7.0
        
          1.8
          1.8
        
      
      
      
        org.apache.maven.plugins
        maven-surefire-plugin
        2.20.1
        
          true
        
      
      
      
        org.apache.tomcat.maven
        tomcat7-maven-plugin
        2.2
        
          /${project.artifactId}
          8080
        
      
    
  


3.4在pom可视化配置导入依赖包

Group Id 需要填写包名,Artfact Id填写项目名。同时需要在下面填写过滤,填写Artifact Id就可以了。这个可以百度查询,比如struts-core.jar包,我们可以通过百度struts.core maven来获取填写方式。

带你学会maven实现ssh整合完整篇_第9张图片

3.5解决jar包的版本冲突

我们的整合框架导入的这几十个包中必然有冲突包,所以必须解决冲突,框架才能正常启动。这里给大家推荐一个方法:手动解决冲突非常麻烦,然而冲突势必会有。
同时安装EclipseEE和Idea,利用idea安装Maven Helper插件,从来快速地解决冲突。idea和eclipseEE打开同一Maven web项目无任何阻碍,非常方便,甚至可以同时打开两者同时编辑。

四:配置文件的整合

4.1编写web.xml如下:




    Archetype Created Web Application
    
    
        contextConfigLocation
        classpath*:applicationContext.xml
    
    
        log4jConfiguration
        log4j2.xml
    
    
    
    
        struts2
        org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
          
        filterConfig  
        classpath:struts.xml  
    
    
    
    
        struts2
        /*                       
    
    
    
        org.springframework.web.context.ContextLoaderListener
    
    
        index.jsp
    


其中包含了log4j2日志工具的配置文件路径声明和application.xml配置文件的路径,以及struts2的核心过滤器和spring的启动监听器。


4.2 编写log4j2.xml配置文件


         
        
        
    
            
        
        
             
             
                 
             
         
         
            
        
        
            
            
                
                
                
                    
                    
                
             
            
                 
                 
                 
                     
                    
                
             
                 
             
                 
                    
                    
                   
               
                
             
                
             
             
             
         
         
         
        
                 
                 
                 
                
            
    
        

4.3编写struts.xml配置文件

此文件为struts.xml的配置文件。其中配置了action类对应的声明。类似配置如下格式:






        
            
                /admin/main.jsp
                /admin/login.jsp
            
        

4.4删除hbm.cfg.xml,将hibernate配置内容放在applicationContext.xml中。




    
    
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    
    
    
        
        
        
        
            
                org.hibernate.dialect.MySQL5Dialect
                true
                true
                update
            
        
        
    
    
    
        
    

    
    
    
    
    
    

4.5创建applicationContext-dao文件

参考形式如下:



    
    
        
    


4.6创建applicationContext-service文件

形式如下:


    
        
    

4.7创建applicationContext-action文件

形式如下:


    
        
    



你可能感兴趣的:(Java开发,SSH)