SSM集成抽取公共类&多模块

1、集成SSM
集成步骤

1.创建web工程,拷贝SSM需要jar
2.创建相关组件 :domain,mapper,mapper.xml,service,controller,jsp
3.Spring的核心配置文件:application-context.xml
  3.1.创建jdbc.properties :四大金刚
  3.2.引入jdbc.properties
  3.3.配置DataSource :四大金刚
  3.4.配置MyBatis:配置SqlSessionFactory
  	3.4.1.配置mybatis-config.xml核心配置文件
  	3.4.2.配置mapper.xml
  	3.4.3.实体类的别名
  	3.4.4.把DataSource交给SqlSessionFactory
  3.5.配置映射器接口 Mapper接口
  3.6.配置service的ioc自动扫描 : @Service
  3.7.事务管理器配置
  	3.7.1.配置datasource注入 	
  3.8.开启事务的注解驱动支持 
4.SpringMvc的核心配置文件:application-mvc.xml
	4.1.静态资源放行
	4.2.controller的ioc注解扫描  :@Controller
	4.3.视图解析器
	4.4.SpringMVC注解支持 <mvc:annotation-driven> :@ResponseBody
5.servelt配置文件:web.xml
	5.1.全局配置:Spring的核心配置文件的地址
	5.2.加载Spring的上下文:SpringContextListnner 监听
	5.3.配置SpringMVC的核心控制器
	5.4.配置SpringMVC的配置文件
	5.5.编码过滤器

2、创建domain、mapper、service、controller、query及抽取公共类
抽取公共类,抽取后员工、部门等实体类只需要继承即可
Domain:

@Data
@NoArgsConstructor
@AllArgsConstructor
public class BaseDomain {
    private Long id;
}

Mapper

public interface BaseMapper<T,ID extends Serializable,Q> {
    void insert(T t);
    void update(T t);
    void delete(ID id);
    T selectById(ID id);
    List<T> selectAll();
    //分页查询:总条数
    int selectForCount(Q query);
    //分页查询:列表
    List<T> selectForList(Q query);
}

Query

在这里插入代码片

Service

public interface BaseService<T,ID extends Serializable,Q> {
    void insert(T t);
    void update(T t);
    void delete(ID id);
    T selectById(ID id);
    List<T> selectAll();
    //分页查询:总条数
    int selectForCount(Q query);
    //分页查询:列表
    List<T> selectForList(Q query);
}

Department

public interface DepartmentService extends BaseService<Department,Long,DepartmentQuyer>{
}

ServiceImpl

@Transactional
public class BaseServiceImpl<T,ID extends Serializable,Q>
        implements BaseService<T,ID,Q> {
    @Autowired
    private BaseMapper<T,ID,Q> baseMapper;
    @Override
    public void insert(T t) {  baseMapper.insert(t); }
    @Override
    public void update(T t) { baseMapper.update(t); }
    @Override
    public void delete(ID id) { baseMapper.delete(id); }
    @Override
    public T selectById(ID id) { return baseMapper.selectById(id); }
    @Override
    public List<T> selectAll() { return baseMapper.selectAll(); }
    @Override
    public int selectForCount(Q query) { return baseMapper.selectForCount(query); }
    @Override
    public List<T> selectForList(Q query) { return baseMapper.selectForList(query); }
}

DepartmentServiceImpl

@Service
public class DepartmentServiceImpl 
		extends BaseServiceImpl<Department,Long,DepartmentQuyer>
		implements DepartmentService {
}

在这里插入图片描述

多模块

架构:
在这里插入图片描述
依赖

  • 把CRM项目中的持久层独立出来,抽取成hrm-mapper
  • 把CRM项目中的业务层独立处理,抽取成hrm-service
  • 把CRM项目中的web层独立出来,抽取成hrm-web
  • 把CRM项目中的Domain和Query抽取成hrm-common
  • 把所有项目都可以使用的工具抽取出来,抽取成 base-util
  • 把所有项目都可以用的公共组件抽取出来,抽取成base-core
    在这里插入图片描述

jar包的统一管理

dependencies

通常我们再pom.xml中导入依赖就是使用的是dependencies元素,把jar包放在它的下面即可,如果使用了多模块结果,在父工程中的pom.xml中的dependencies元素下面放置了一些jar包,那么所有的子项目是可以直接使用这些jar包的,这样一来我们就可以把所有子模块都可以用到的jar包放到父模块的的dependencies元素中,达到一个公共的jar包的统一导入的效果,注意:一定是所有子模块都会用到的jar包才放入进去,比如 junit-test。

2.3.dependencyManagement

dependencyManagement 这个元素是用来管理或者叫着声明依赖的 ,虽然这个元素下面也可以放jar包但是它和dependencies有显著的区别,如果在父工程的pom.xml中的dependencyManagement元素中放了一些jar包,那么这些jar包是不能被子模块直接使用的,如果子模块想要用到父项目的dependencyManagement中的jar包,子模块需要在自己的pom.xml中的dependencies元素中导入相关的jar包,只是版本号不用写。

通常情况下我们可以把部分部分子模块会用到的jar包放到父工程的pom.xml中的dependencyManagement元素下面,然后这些子模块在自己的dependencies中去导入jar包,不写版本号,那么多个子模块都是沿用的父工程的jar的版本号,这样就实现了版本号的统一管理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值