摘要:继承作用就是避免配置重复,对于子项目来说应该关心父项目是怎么样配置的。聚合字面理解就是聚在一起合作完成工作,就是将子模块聚集起来完成相应的项目需求父工程的搭建项目结构在父工程中,主要负责完成依赖的版本管理,并不是实际的依赖。
从大二开始就一直关注segmentFault,在问题专区帮忙回答一些自己知晓的问题;在写这篇文章之前我一直会在朋友圈发一些自己遇到的问题以及解决办法,这是第一次写文章,感觉有那么一点生疏。
这篇文章主要讲Maven搭建SSM(Spring、SpringMVC、Mybatis)项目,之前在学习搭建项目的时候看过很多相关的文章,虽然网上有许多类似的,但是我还是想写一写,分享一下自己在搭建项目中的体会。
</>复制代码
Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project"s build, reporting and documentation from a central piece of information.
这个是官方给出来的解释,我个人理解为:Maven就是一个不需要手动导入依赖、项目打包和项目构建的工具,这个只是个人的观点,若有不对还请指教。
二、项目搭建了解更多关于Maven知识,可以到官网了解Maven工具的功能和使用方法,在这里主要聊一聊怎么运用Maven搭建SSM项目。
Maven中重要的两个关键词:继承和聚合。
继承:作用就是避免配置重复,对于子项目来说应该关心父项目是怎么样配置的。
聚合:字面理解就是“聚在一起合作完成工作”,就是将子模块聚集起来完成相应的项目需求
项目结构:
在父工程中,主要负责完成依赖的版本管理,并不是实际的依赖。
第一步:创建父工程Group Id:项目组织的唯一标识 com为域,后面一个为公司名称
Artifact Id:项目唯一标识,一般为项目名称
pom:为父工程打包类为pom,提供依赖版本管理
其中
</>复制代码
是依赖管理,并不是实际依赖。
Maven插件也是同样的操作,需要注意的是:配置Maven插件maven-compiler-plugin
名称:聚合工程web-manager
此时聚合工程,应该和父工程建立依赖关系,才可以使用父工程里面管理的相应版本的依赖。
依赖关系添加以后,pom.xml文件中就会多出
完成了聚合工程的搭建,后面就要开始搭建子模块了,做好准备了吗?
3、子模块搭建(一)名称:manager-mapper
该模块主要用来管理dao层,其中有pojo以及mapper接口和文件
子模块创建需要注意,创建时需要在聚合工程上点击右键->新建->Maven module
Next:
Next:
该步骤需要注意,该模块打包方式应该为jar,将该模块打成jar包就可以供其他模块使用
聚合项目工程中就会多出一个目录结构:
![图片上传中...]
3、子模块搭建(二)名称:manager-service
该模块主要用来管理service层,其中有事务管理等
Todo:新建操作同上,都是需要打成jar包
注意:在Service层中,由于Service层需要依赖与dao层,所以需要在pom.xml中配置依赖关系
4、子模块搭建(三)名称:manager-web
主要用于管理jsp界面以及其他配置文件
注意:项目打包不再是jar包,而是war包,其他配置一致
.]
当创建完web模块,该模块会报错,错误如下:
错误解决办法:由于模块创建时,缺少WEB-INF/web.xml文件,只需要创建文件,问题就可以解决
</>复制代码
此时,各种模块就创建完成,由于时间有限,在这里笼统的介绍一下,每一个模块里面都有pom.xml文件应该怎么样配置呢?其实这个问题是这样解决的,每一个模块,只需要在pom文件中添加该模块需要的依赖就可以,最重要的是:开始的时候提到,父工程主要用于管理依赖版本信息,在添加依赖是不需要填写版本信息,如下:
5、Spring和SpringMVC配置
范围:配置manager-web模块
目录结构:
</>复制代码
web.xml配置:
</>复制代码
contextConfigLocation
classpath:spring-config/applicationContext.xml
org.springframework.web.context.ContextLoaderListener
Spring MVC配置:
</>复制代码
spring
org.springframework.web.servlet.DispatcherServlet
1
spring
*.do
</>复制代码
SpringMVC配置
</>复制代码
</>复制代码
Spring配置
</>复制代码
</>复制代码
配置mybatis.xml
</>复制代码
</>复制代码
Controller
</>复制代码
package com.web.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import com.web.service.PersonService;
@Controller
public class webController {
@Autowired
PersonService personService;
@GetMapping("/test.do")
public String get(){
System.out.println(personService.selectPersonList());
return "test";
}
}
运行项目:
http://localhost:8080/manager-web/index.jsp
效果:
恭喜!整合成功,现在就需要编写dao层和service层
5、Mapper范围:配置manager-mapper模块
目录结构:
实体类:
</>复制代码
package com.web.entity;
public class Person {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person(int id, String name) {
this.id = id;
this.name = name;
}
public Person() {
}
@Override
public String toString() {
return "Person [id=" + id + ", name=" + name + "]";
}
}
Mapper接口:
</>复制代码
package com.web.dao;
import java.util.List;
import com.web.entity.Person;
public interface PersonMapper {
public List selectPersonList();
}
5、Service
范围:配置manager-service模块
目录结构:
PersonService:
</>复制代码
package com.web.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.web.dao.PersonMapper;
import com.web.entity.Person;
@Service
public class PersonService {
@Autowired
PersonMapper personMapper;
@Transactional
public List selectPersonList(){
return personMapper.selectPersonList();
}
}
最后测试结果为:
整合已经成功!由于第一次写文章,若有不正确的地方请大家多多指教,谢谢!
项目已经上传到github:Maven多模块项目搭建+SSM框架整合文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/68003.html
摘要:打开,,选中,然后再选中,输入项目的和,指定等配置,修改,打开项目,添加一些必要的目录,最终项目框架目录图如下修改文件,指定各依赖和插件的版本等信息在标签里面管理各依赖的版本号添加项目依赖管理依赖配置好之后,开始整合。 最近在回顾和总结一些技术,想到了把之前比较火的 SSM 框架重新搭建出来,作为一个小结,同时也希望本文章写出来能对大家有一些帮助和启发,因本人水平有限,难免可能会有一些...
摘要:开公众号差不多两年了,有不少原创教程,当原创越来越多时,大家搜索起来就很不方便,因此做了一个索引帮助大家快速找到需要的文章系列处理登录请求前后端分离一使用完美处理权限问题前后端分离二使用完美处理权限问题前后端分离三中密码加盐与中异常统一处理 开公众号差不多两年了,有不少原创教程,当原创越来越多时,大家搜索起来就很不方便,因此做了一个索引帮助大家快速找到需要的文章! Spring Boo...
摘要:前言由于写的文章已经是有点多了,为了自己和大家的检索方便,于是我就做了这么一个博客导航。 前言 由于写的文章已经是有点多了,为了自己和大家的检索方便,于是我就做了这么一个博客导航。 由于更新比较频繁,因此隔一段时间才会更新目录导航哦~想要获取最新原创的技术文章欢迎关注我的公众号:Java3y Java3y文章目录导航 Java基础 泛型就这么简单 注解就这么简单 Druid数据库连接池...
阅读 3569·2021-11-25 09:43
阅读 2455·2021-09-06 15:02
阅读 3627·2021-08-18 10:21
阅读 3442·2019-08-30 15:55
阅读 2433·2019-08-29 17:06
阅读 3607·2019-08-29 16:59
阅读 1045·2019-08-29 13:47
阅读 2922·2019-08-26 13:24