Maven高级1、2、3、4:模块拆分思想;把项目拆成pojo、Dao、Service、Controller四个模块;

说明:

(1)maven高级部分包括:分模块开发与设计(重点)、聚合(重点)、继承(重点)、属性(重点)、版本管理、资源配置、多环境开发配置、跳过测试、私服(重点);

(2)本篇博客的逻辑:【原先的时候,一个项目来了,我们就创建一个工程模块来完成】→【后面,我们会尝试着把这个项目,拆分成多个工程模块】→【比如,这儿我们把一个Spring MVC项目,拆成了pojo,dao,service,controller】→【这儿,我们使用maven来帮助管理项目】→【然后,就可以dao引用service依赖,service引用dao依赖】;

(3)声明:这儿的拆分,仅仅是演示了拆分思想;具体的有关业务上的拆分逻辑,不具有参考价值:

          ● 我们这儿演示的拆分,是根据Controller、Service、Dao的结构去拆的;而没有按照【在实际分布式项目中,根据如用户模块、商品模块的方式】去拆的;

          ● 即,我们这儿演示的maven拆分,仅仅是演示了拆分的思想而已;;;只要明白了这个思想,在实际中就可以根据具体的业务去灵活的运用;

(4)本篇博客待深入了解的两点:

          ● 【ssm_pojo】、【ssm_dao】、【ssm_service】、【ssm_controller】,这四个使用Maven管理的项目,其groupId都是“com.wgy”,【<groupId>com.wgy</groupId>】;;;;而在实际的分布式项目(比如Spring Cloud项目)中,不同模块的groupId的命名方式,待了解;

          ● 【ssm_controller】中的applicationContext-controller.xml配置文件,加载【ssm_service】和【ssm_dao】工程配置文件的策略;对于如何加载其他工程的配置文件,其机制不是十分清晰;

目录

一:模块拆分,简介; 

二:演示项目准备:maven_advanced项目,简介;(PS:这儿的内容过于简单,没必要细看)

(1)为了演示,准备了一个逻辑空间,创建了一一个演示用的User表:

(2)项目内容;​编辑

(3)pom.xml;

(4)applicationContext.xml;

(5)pojo:User;

(6)Dao:UserDao,User.xml,mybatis-config.xml;

(7)Service:UserService,UserServiceImpl;

(8)Controller:TestController;

(9)测试:查询和更新都可以;

三:根据原项目,拆出【ssm_pojo】;

1.创建【ssm_pojo】工程;

2.【ssm_pojo】工程,编写内容;

3.【ssm_pojo】工程,编译一下,看是否OK;

四:根据原项目,拆出【ssm_dao】;(需要使用到【ssm_pojo】)

1.创建【ssm_dao】工程;

2.【ssm_dao】工程,编写内容;

3.【ssm_dao】工程,编译一下,看是否OK;

五:根据原项目,拆出【ssm_service】;(需要使用到【ssm_dao】)

1.创建【ssm_service】工程;

2.【ssm_service】工程,编写内容;

3.【ssm_service】工程,编译一下,看是否OK;

六:根据原项目,拆出【ssm_controller】;(需要使用到【ssm_service】)

1.创建【ssm_controller】工程;

2.【ssm_controller】工程,编写内容;

3.【ssm_controller】工程,编译一下,看是否OK;


一:模块拆分,简介; 

(1)拆分理解(PS:这儿的理解可能存在偏差、甚至是错误):当一个规模比较大的项目来的时候,为了能够更好的组织团队人员、更好的有条理的去开发这个项目,为了更有利项目的扩展和维护;我们往往会,对这个项目进行拆分,拆成多个模块;

          ● 就我们这儿演示来看,我们拆分出的一个模块和以前接触的项目是一样的;即,每一个模块,都是一个在物理意义上独立的项目;

          ● 只是,我们把一个大项目,拆成多个模块(也就是多个小项目)后;;;这些模块,都是使用maven管理的;;;然后,我们就可以使用maven,对这些项目进行一些物理上的配置,把这些模块(也就是多个小项目),在逻辑上给组织成为一个大项目;

(2)拆分说明;

          ● 然后,上图所示的【ssm】可以认为是主模块;主模块中,什么都不放;

          ● 在后面的【ssm_controller】、【ssm_service】等模块中,开发具体的功能;这些模块通力合作,来完成整个工程;

(3)声明:这儿的拆分,仅仅是演示了拆分:

          ● 我们这儿演示的拆分,是根据Controller、Service、Dao的结构去拆的;而没有按照【在实际分布式项目中,根据如用户模块、商品模块的方式】去拆的;

          ● 即,我们这儿演示的maven拆分,仅仅是演示了拆分的思想而已;;;只要明白了这个思想,在实际中就可以根据具体的业务去灵活的运用;


二:演示项目准备:maven_advanced项目,简介;(PS:这儿的内容过于简单,没必要细看)

项目说明:

(1)本演示项目的主要目的是,演示使用Maven时,如何拆分项目; 

(2)所以,本项目的内容十分简单,但也是一个包含了全流程的项目;同时,为了契合课程的内容,该项目没有使用【本机安装的Tomcat】,而是使用的【Tomcat插件】;

(3)关于该项目的构建,可以参考【(17)SSM开发书评网】、【Maven基础11:Tomcat插件;】中的内容;

(1)为了演示,准备了一个逻辑空间,创建了一一个演示用的User表:

(2)项目内容;

(3)pom.xml;

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.wgy</groupId>
    <artifactId>maven_advanced</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <!--0.Maven国内阿里云镜像-->
    <repositories>
        <repository>
            <id>aliyun</id>
            <name>aliyun</name>
            <url>https://maven.aliyun.com/repository/public</url>
        </repository>
    </repositories>

    <dependencies>
        <!--1.引入Spring-webmvc依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>

        <!--2.引入JSON序列化工具包jackson-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.11.0</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.11.0</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.11.0</version>
        </dependency>



        <!--3.Mybatis与Spring整合,所需的依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.4</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.3</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.23</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.14</version>
        </dependency>

    </dependencies>

    <!--构建-->
    <build>
        <!--设置插件-->
        <plugins>
            <!--使用Tomcat具体的插件-->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.1</version>
            </plugin>
        </plugins>
    </build>

</project>

(4)applicationContext.xml;

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:task="http://www.springframework.org/schema/task"
       xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd
            http://www.springframework.org/schema/task
            http://www.springframework.org/schema/task/spring-task.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <!--Spring 开启组件扫描-->
    <context:component-scan base-package="com.wgy"></context:component-scan>
    <!--开启spring MVC注解模式-->
    <mvc:annotation-driven/>
    <!--将图片/JS/CSS等静态资源排除在外,这样做可提高Spring MVC对url的处理效率-->
    <mvc:default-servlet-handler/>


    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值