SSM项目实战之一:项目创建

项目创建

  • 前言
  • 项目目录结构
  • 依赖关系图
  • 撘建项目
    • logistics-parent
    • logistics-common
    • logistics-manager
    • 四个子模块
      • logistics-manager-pojo
      • logistics-manager-dao
      • logistics-manager-service
      • logistics-manager-web

前言

本系列主要包含使用SSM框架从0开始实战一个项目的流程,本项目选用的开发工具是STS,选择用maven聚合工程搭建,本章内容主要讲解如何创建maven聚合工程

项目目录结构

logistics-parent:父工程,打包方式pom,管理jar包的版本
	|						项目中所有的工程都应该继承父工程
	|--logistics-common:通用的工具类 	打包方式jar
	|--logistics-manager:服务工程。pom工程
		|--logistics-manager-pojo:打包方式jar
		|--logistics-manager-service:打包方式jar
		|--logistics-manager-dao:打包方式jar
		|--logistics-manager-web:打包方式war

依赖关系图

SSM项目实战之一:项目创建_第1张图片

撘建项目

logistics-parent

创建项目
SSM项目实战之一:项目创建_第2张图片
SSM项目实战之一:项目创建_第3张图片
SSM项目实战之一:项目创建_第4张图片
SSM项目实战之一:项目创建_第5张图片
创建成功
在这里插入图片描述
管理依赖
我们在pom.xml文件统一管理整个项目的j依赖的jar包的版本,pom.xml文件内容如下,只管理版本,不实际依赖。才实际依赖。

<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.0modelVersion>
  <groupId>com.yjngroupId>
  <artifactId>logistics-parentartifactId>
  <version>0.0.1-SNAPSHOTversion>
  <packaging>pompackaging>
  
  
	<properties>
		<junit.version>4.12junit.version>
		<spring.version>4.3.3.RELEASEspring.version>
		<mybatis.version>3.2.8mybatis.version>
		<mybatis.spring.version>1.2.2mybatis.spring.version>
		<mybatis.paginator.version>1.2.15mybatis.paginator.version>
		<mysql.version>5.1.32mysql.version>
		<slf4j.version>1.6.4slf4j.version>
		<jackson.version>2.5.1jackson.version>
		<druid.version>1.0.9druid.version>
		<httpclient.version>4.3.5httpclient.version>
		<jstl.version>1.2jstl.version>
		<servlet-api.version>2.5servlet-api.version>
		<jsp-api.version>2.0jsp-api.version>
		<joda-time.version>2.5joda-time.version>
		<commons-lang3.version>3.3.2commons-lang3.version>
		<commons-io.version>1.3.2commons-io.version>
		<commons-net.version>3.3commons-net.version>
		<pagehelper.version>4.1.6pagehelper.version>
		<jsqlparser.version>0.9.1jsqlparser.version>
		<commons-fileupload.version>1.3.1commons-fileupload.version>
		<jedis.version>2.7.2jedis.version>
		<solrj.version>4.10.3solrj.version>
		<dubbo.version>2.5.3dubbo.version>
		<zookeeper.version>3.4.7zookeeper.version>
		<zkclient.version>0.1zkclient.version>
		<activemq.version>5.11.2activemq.version>
		<freemarker.version>2.3.23freemarker.version>
		<quartz.version>2.2.2quartz.version>
		<shiro-spring.version>1.2.3shiro-spring.version>
		<shiro-ehcache.version>1.2.3shiro-ehcache.version>
	properties>
	<dependencyManagement>
		<dependencies>
			
			<dependency>
				<groupId>joda-timegroupId>
				<artifactId>joda-timeartifactId>
				<version>${joda-time.version}version>
			dependency>
			
			<dependency>
				<groupId>org.apache.commonsgroupId>
				<artifactId>commons-lang3artifactId>
				<version>${commons-lang3.version}version>
			dependency>
			<dependency>
				<groupId>org.apache.commonsgroupId>
				<artifactId>commons-ioartifactId>
				<version>${commons-io.version}version>
			dependency>
			<dependency>
				<groupId>commons-netgroupId>
				<artifactId>commons-netartifactId>
				<version>${commons-net.version}version>
			dependency>
			
			<dependency>
				<groupId>com.fasterxml.jackson.coregroupId>
				<artifactId>jackson-databindartifactId>
				<version>${jackson.version}version>
			dependency>

			
			<dependency>
				<groupId>junitgroupId>
				<artifactId>junitartifactId>
				<version>${junit.version}version>
				<scope>testscope>
			dependency>
			
			<dependency>
				<groupId>org.slf4jgroupId>
				<artifactId>slf4j-log4j12artifactId>
				<version>${slf4j.version}version>
			dependency>
			
			<dependency>
				<groupId>org.mybatisgroupId>
				<artifactId>mybatisartifactId>
				<version>${mybatis.version}version>
			dependency>
			<dependency>
				<groupId>org.mybatisgroupId>
				<artifactId>mybatis-springartifactId>
				<version>${mybatis.spring.version}version>
			dependency>
			<dependency>
				<groupId>com.github.miemiedevgroupId>
				<artifactId>mybatis-paginatorartifactId>
				<version>${mybatis.paginator.version}version>
			dependency>
			<dependency>
				<groupId>com.github.pagehelpergroupId>
				<artifactId>pagehelperartifactId>
				<version>${pagehelper.version}version>
			dependency>
			<dependency>
				<groupId>com.github.jsqlparsergroupId>
				<artifactId>jsqlparserartifactId>
				<version>${jsqlparser.version}version>
			dependency>
			
			<dependency>
				<groupId>mysqlgroupId>
				<artifactId>mysql-connector-javaartifactId>
				<version>${mysql.version}version>
			dependency>
			
			<dependency>
				<groupId>com.alibabagroupId>
				<artifactId>druidartifactId>
				<version>${druid.version}version>
			dependency>
			
			<dependency>
				<groupId>org.springframeworkgroupId>
				<artifactId>spring-contextartifactId>
				<version>${spring.version}version>
			dependency>
			<dependency>
				<groupId>org.springframeworkgroupId>
				<artifactId>spring-beansartifactId>
				<version>${spring.version}version>
			dependency>
			<dependency>
				<groupId>org.springframeworkgroupId>
				<artifactId>spring-webmvcartifactId>
				<version>${spring.version}version>
			dependency>
			<dependency>
				<groupId>org.springframeworkgroupId>
				<artifactId>spring-jdbcartifactId>
				<version>${spring.version}version>
			dependency>
			<dependency>
				<groupId>org.springframeworkgroupId>
				<artifactId>spring-aspectsartifactId>
				<version>${spring.version}version>
			dependency>
			<dependency>
				<groupId>org.springframeworkgroupId>
				<artifactId>spring-jmsartifactId>
				<version>${spring.version}version>
			dependency>
			<dependency>
				<groupId>org.springframeworkgroupId>
				<artifactId>spring-context-supportartifactId>
				<version>${spring.version}version>
			dependency>
			
			<dependency>
				<groupId>jstlgroupId>
				<artifactId>jstlartifactId>
				<version>${jstl.version}version>
			dependency>
			<dependency>
				<groupId>javax.servletgroupId>
				<artifactId>servlet-apiartifactId>
				<version>${servlet-api.version}version>
				<scope>providedscope>
			dependency>
			<dependency>
				<groupId>javax.servletgroupId>
				<artifactId>jsp-apiartifactId>
				<version>${jsp-api.version}version>
				<scope>providedscope>
			dependency>
			
			<dependency>
				<groupId>commons-fileuploadgroupId>
				<artifactId>commons-fileuploadartifactId>
				<version>${commons-fileupload.version}version>
			dependency>
			
			<dependency>
				<groupId>redis.clientsgroupId>
				<artifactId>jedisartifactId>
				<version>${jedis.version}version>
			dependency>
			<dependency>
				<groupId>org.apache.shirogroupId>
				<artifactId>shiro-springartifactId>
				<version>${shiro-spring.version}version>
			dependency>
			<dependency>
				<groupId>org.apache.shirogroupId>
				<artifactId>shiro-ehcacheartifactId>
				<version>${shiro-ehcache.version}version>
			dependency>
		dependencies>
	dependencyManagement>

	<build>
		<finalName>${project.artifactId}finalName>
		<plugins>
			
			<plugin>
				<groupId>org.apache.maven.pluginsgroupId>
				<artifactId>maven-resources-pluginartifactId>
				<version>2.7version>
				<configuration>
					<encoding>UTF-8encoding>
				configuration>
			plugin>
			
			<plugin>
				<groupId>org.apache.maven.pluginsgroupId>
				<artifactId>maven-compiler-pluginartifactId>
				<version>3.6.0version>
				<configuration>
					<source>1.8source>
					<target>1.8target>
					<encoding>UTF-8encoding>
				configuration>
			plugin>
		plugins>
		<pluginManagement>
			<plugins>
				
				<plugin>
					<groupId>org.apache.tomcat.mavengroupId>
					<artifactId>tomcat7-maven-pluginartifactId>
					<version>2.2version>
				plugin>
			plugins>
		pluginManagement>
	build>
project>

logistics-common

创建项目
SSM项目实战之一:项目创建_第6张图片
配置依赖
接下来,我们来给logistics-common工程的pom.xml文件添加依赖,common顾名思义,就是大家都会调用的,像公共组件。我们从logistics-parent工程中复制公共组件的依赖到logistics-common的pom.xml文件当中,logistics-common的pom.xml文件的内容如下,由于logistics-parent工程中定义了定义版本号,因此我们在logistics-common工程中不用定义组件的版本了。保存后,maven会自动下载相关依赖。

<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.0modelVersion>
  <parent>
    <groupId>com.yjngroupId>
    <artifactId>logistics-parentartifactId>
    <version>0.0.1-SNAPSHOTversion>
  parent>
  <groupId>com.yjngroupId>
  <artifactId>logistics-commonartifactId>
  <version>0.0.1-SNAPSHOTversion>
  <dependencies>
        
        <dependency>
            <groupId>joda-timegroupId>
            <artifactId>joda-timeartifactId>
        dependency>
        
        <dependency>
            <groupId>org.apache.commonsgroupId>
            <artifactId>commons-lang3artifactId>
        dependency>
        <dependency>
            <groupId>org.apache.commonsgroupId>
            <artifactId>commons-ioartifactId>
        dependency>
        <dependency>
            <groupId>commons-netgroupId>
            <artifactId>commons-netartifactId>
        dependency>
        
        <dependency>
            <groupId>com.fasterxml.jackson.coregroupId>
            <artifactId>jackson-databindartifactId>
        dependency>
        
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <scope>testscope>
        dependency>
        
        <dependency>
            <groupId>org.slf4jgroupId>
            <artifactId>slf4j-log4j12artifactId>
        dependency>
  dependencies>
project>

logistics-manager

创建项目
工程类型设为pom类型,父工程设为logistics-parent
配置依赖
建完之后,我们在logistics-manager的pom.xml文件中添加对logistics-common的依赖。

<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.0modelVersion>
  <parent>
    <groupId>com.yjngroupId>
    <artifactId>logistics-managerartifactId>
    <version>0.0.1-SNAPSHOTversion>
  parent>
  <artifactId>logistics-manager-daoartifactId>
  
  <dependencies>
    <dependency>
        <groupId>com.yjngroupId>
        <artifactId>logistics-manager-pojoartifactId>
        <version>0.0.1-SNAPSHOTversion>
    dependency>
    
    <dependency>
        <groupId>org.mybatisgroupId>
        <artifactId>mybatisartifactId>
    dependency>
    <dependency>
        <groupId>org.mybatisgroupId>
        <artifactId>mybatis-springartifactId>
    dependency>
    <dependency>
        <groupId>com.github.miemiedevgroupId>
        <artifactId>mybatis-paginatorartifactId>
    dependency>
    <dependency>
        <groupId>com.github.pagehelpergroupId>
        <artifactId>pagehelperartifactId>
    dependency>
    <dependency>
        <groupId>com.github.jsqlparsergroupId>
        <artifactId>jsqlparserartifactId>
    dependency>
    
    <dependency>
        <groupId>mysqlgroupId>
        <artifactId>mysql-connector-javaartifactId>
    dependency>
    
    <dependency>
        <groupId>com.alibabagroupId>
        <artifactId>druidartifactId>
    dependency>
dependencies>
project>

四个子模块

子模块的父工程都是logistics-manager
子模块的创建不再是maven project,我们选择maven module,右键logistics-manager项目创建子模块

在这里插入图片描述

logistics-manager-pojo

项目创建
SSM项目实战之一:项目创建_第7张图片
不需要修改,默认即可
配置依赖
此项目不需要添加依赖

logistics-manager-dao

项目创建
类似logistics-manager-pojo,不再赘述
配置依赖
建完logistics-manager-pojo之后,我们打开logistics-manager-dao模块的pom.xml文件,并在其中添加对logistics-manager-pojo的依赖,另外由于dao层需要Mybatis、Mysql、分页、连接池的包,因此我们在pom.xml文件中添加对这些的依赖。

<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.0modelVersion>
  <parent>
    <groupId>com.yjngroupId>
    <artifactId>logistics-managerartifactId>
    <version>0.0.1-SNAPSHOTversion>
  parent>
  <artifactId>logistics-manager-daoartifactId>
  
  <dependencies>
    <dependency>
        <groupId>com.yjngroupId>
        <artifactId>logistics-manager-pojoartifactId>
        <version>0.0.1-SNAPSHOTversion>
    dependency>
    
    <dependency>
        <groupId>org.mybatisgroupId>
        <artifactId>mybatisartifactId>
    dependency>
    <dependency>
        <groupId>org.mybatisgroupId>
        <artifactId>mybatis-springartifactId>
    dependency>
    <dependency>
        <groupId>com.github.miemiedevgroupId>
        <artifactId>mybatis-paginatorartifactId>
    dependency>
    <dependency>
        <groupId>com.github.pagehelpergroupId>
        <artifactId>pagehelperartifactId>
    dependency>
    <dependency>
        <groupId>com.github.jsqlparsergroupId>
        <artifactId>jsqlparserartifactId>
    dependency>
    
    <dependency>
        <groupId>mysqlgroupId>
        <artifactId>mysql-connector-javaartifactId>
    dependency>
    
    <dependency>
        <groupId>com.alibabagroupId>
        <artifactId>druidartifactId>
    dependency>
dependencies>
project>

logistics-manager-service

项目创建
同上
配置依赖
需要配置依赖dao项目

<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.0modelVersion>
  <parent>
    <groupId>com.yjngroupId>
    <artifactId>logistics-managerartifactId>
    <version>0.0.1-SNAPSHOTversion>
  parent>
  <artifactId>logistics-manager-serviceartifactId>
  
  <dependencies>
    
    <dependency>
        <groupId>com.yjngroupId>
        <artifactId>logistics-manager-daoartifactId>
        <version>0.0.1-SNAPSHOTversion>
    dependency>
            
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-contextartifactId>
        dependency>
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-beansartifactId>
        dependency>
        
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-jdbcartifactId>
        dependency>
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-aspectsartifactId>
        dependency>
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-jmsartifactId>
        dependency>
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-context-supportartifactId>
        dependency>
 dependencies>
project>

logistics-manager-web

创建项目
工程类型设为war类型,父工程设为logistics-manager
创建完如果有报错,是因为缺少web.xml文件,手动创建一个即可
SSM项目实战之一:项目创建_第8张图片
配置依赖
需要配置对service模块的依赖

<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.0modelVersion>
  <parent>
    <groupId>com.yjngroupId>
    <artifactId>logistics-managerartifactId>
    <version>0.0.1-SNAPSHOTversion>
  parent>
  <artifactId>logistics-manager-webartifactId>
  <packaging>warpackaging>
  
  <dependencies>
    
    <dependency>
        <groupId>com.yjngroupId>
        <artifactId>logistics-manager-serviceartifactId>
        <version>0.0.1-SNAPSHOTversion>
    dependency>       
    
    <dependency>
        <groupId>jstlgroupId>
        <artifactId>jstlartifactId>
    dependency>
    <dependency>
        <groupId>javax.servletgroupId>
        <artifactId>servlet-apiartifactId>
        <scope>providedscope>
    dependency>
    <dependency>
        <groupId>javax.servletgroupId>
        <artifactId>jsp-apiartifactId>
        <scope>providedscope>
    dependency>
    
    <dependency>
        <groupId>org.apache.shirogroupId>
        <artifactId>shiro-springartifactId>
    dependency>
      <dependency>
        <groupId>org.apache.shirogroupId>
        <artifactId>shiro-ehcacheartifactId>
    dependency>  
    <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-webmvcartifactId>
    dependency>
  dependencies>
project>

到这里整个项目的结构就搭建完了
SSM项目实战之一:项目创建_第9张图片

你可能感兴趣的:(项目实战,SSM项目实战)