Maven分模块构建工程(构建SSM工程)

将 SSM 工程拆分为多个模块开发:

ssm_parent:将所需的依赖都配置在 pom 中。
ssm_dao:负责dao层业务。
ssm_service:负责service层业务。
ssm_web:负责web层业务。


Snipaste_2019-07-11_00-01-40.png

理解继承和聚合

通常继承和聚合同时使用。

 何为继承?

继承是为了消除重复,如果将 dao、service、web 分开创建独立的工程则每个工程的 pom.xml文件中的内容存在重复,比如:设置编译版本、锁定 spring 的版本的等,可以将这些重复的配置提取出来在父工程的 pom.xml 中定义。

 何为聚合?

项目开发通常是分组分模块开发,每个模块开发完成要运行整个工程需要将每个模块聚合在一起运行,比如:dao、service、web 三个工程最终会打一个独立的 war 运行。

详细代码及配置文件请参考《Spring,SpringMVC,Mybatis三大框架整合》文章,这里只是对这篇文章的相关代码的复制粘贴。


ssm_parent

pom文件:



    4.0.0

    com.gzy
    ssm_perent
    1.0-SNAPSHOT
    
    
        ../ssm_dao
        ../ssm_web
        ../ssm_service
    
    
    pom

    
        
            org.springframework
            spring-context
        

        
            org.springframework
            spring-tx
        
        
            org.springframework
            spring-jdbc
        
        
            org.aspectj
            aspectjweaver
        

    
    

    
        UTF-8
        1.8
        1.8
        
        5.1.8.RELEASE
        
        3.5.1
        2.0.1
        1.9.4
        8.0.16
        2.9.9
        3.3.1
    
    
    
        
            
                org.springframework
                spring-core
                ${spring.version}
            
            
                org.springframework
                spring-beans
                ${spring.version}
            
            
                org.springframework
                spring-context
                ${spring.version}
            
            
                org.springframework
                spring-expression
                ${spring.version}
            
            
                org.springframework
                spring-jcl
                ${spring.version}
            

            
                org.springframework
                spring-web
                ${spring.version}
            
            
                org.springframework
                spring-webmvc
                ${spring.version}
            
            
                org.springframework
                spring-tx
                ${spring.version}
            
            
                org.springframework
                spring-jdbc
                ${spring.version}
            
            
                org.springframework
                spring-test
                ${spring.version}
            
            
                org.springframework
                spring-context-support
                ${spring.version}
            
            
                org.springframework
                spring-aop
                ${spring.version}
            
            
                org.aspectj
                aspectjweaver
                ${aspectjweaver.version}
            
            
                org.mybatis
                mybatis
                ${mybatis.version}
            
            
                org.mybatis
                mybatis-spring
                ${mybatis.spring.version}
            
            
                mysql
                mysql-connector-java
                ${mysql.version}
            
            
                com.zaxxer
                HikariCP
                ${hikari.version}
            
            
                com.fasterxml.jackson.core
                jackson-databind
                ${jackson.version}
            
            
                com.fasterxml.jackson.core
                jackson-core
                ${jackson.version}
            
            
                com.fasterxml.jackson.core
                jackson-annotations
                ${jackson.version}
            


        
    
    

---模块结构---


Snipaste_2019-07-10_23-59-20.png

ssm_dao

pom文件:




    
        ssm_perent
        com.gzy
        1.0-SNAPSHOT
        ../ssm_perent/pom.xml
    
    4.0.0

    ssm_dao
    pom
    
        ../ssm_service
    

    
        UTF-8
        1.7
        1.7
    

    
        
            org.mybatis
            mybatis
        
        
            org.mybatis
            mybatis-spring
        
        
            mysql
            mysql-connector-java
            5.1.46
        
        
            com.zaxxer
            HikariCP
        

    




---模块结构---


Snipaste_2019-07-10_23-52-49.png

ssm_service

pom文件:




    
        ssm_dao
        com.gzy
        1.0-SNAPSHOT
        ../ssm_perent/pom.xml
    
    4.0.0

    ssm_service

    
        
            mysql
            mysql-connector-java
            5.1.46
        
        
            com.gzy
            ssm_dao
            1.0-SNAPSHOT
        
    


---模块结构---


Snipaste_2019-07-10_23-55-42.png

ssm_web

pom文件:




    
        ssm_perent
        com.gzy
        1.0-SNAPSHOT
        ../ssm_perent/pom.xml
    
    4.0.0

    ssm_web
    war

    ssm_web Maven Webapp
    
    http://www.example.com

    
        
            javax.servlet
            javax.servlet-api
            3.1.0
            provided
        
        
            javax.servlet.jsp
            javax.servlet.jsp-api
            2.3.3
            provided
        
        
            javax.servlet
            jstl
            1.2
        
        
        
            taglibs
            standard
            1.1.2
        
        
            org.springframework
            spring-webmvc
        
        
            com.gzy
            ssm_service
            1.0-SNAPSHOT
        

        
            com.fasterxml.jackson.core
            jackson-databind
        
        
            mysql
            mysql-connector-java
            5.1.46
        
    

    
        ssm_web
        
            
                
                    maven-clean-plugin
                    3.1.0
                
                
                
                    maven-resources-plugin
                    3.0.2
                
                
                    maven-compiler-plugin
                    3.8.0
                
                
                    maven-surefire-plugin
                    2.22.1
                
                
                    maven-war-plugin
                    3.2.2
                
                
                    maven-install-plugin
                    2.5.2
                
                
                    maven-deploy-plugin
                    2.8.2
                
            
        
    


---模块结构---


Snipaste_2019-07-10_23-56-59.png

注意

ssm_web的web.xml配置有所不同


Snipaste_2019-07-11_00-06-29.png

classpath:spring-.xml代表扫描所有模块的所有spring配置文件。

你可能感兴趣的:(Maven分模块构建工程(构建SSM工程))