通过SSM搭建企业开发环境

此次通过spring4.x+mybatis搭建企业环境。主要是还包括基础功能,不涉及到其他组件和模块。

通过spring4的注解使用,可以为之后的springboot实现方式加强理解。

不多说,在构建maven项目,在pom引入 相关依赖包。大概有spring三大核心包、mysql、数据库连接池、mybatis、分页插件、json处理、servlet相关。详细见pom.xml

延用上一次的ms数据库,通过mybatis-generator由数据库生成代码,具体怎么生成,可以百度查看,有涉及几种方式,同时可以通过tk-mybatis生成代码,其中会附带mapper接口通用包,免去写一些相同接口带来的重复工作。

最后结构大致如下:

158de8c13a6306a8cc5d30d2525794ed729.jpg

现在开始配置系统启动入口:

我们可以回忆下web.xml中一般需要配置扫描信息:

1、spring 上下文applicationContext.xml的路径,通过servlet上下文参数contextConfigLocation

2、springmvc请求分发器DispatcherServlet,其中有关系启动顺序与mvc上下文配置文件

3、监听ContextLoaderListener

4、一些filter,比如编码

现在没有web.xml,但是这些配置还是不能丢,其中spring的上下文配置文件换成了注解模式注册与管理bean,DispatcherServlet全部由配置管理,具体实现都在WebApplicationInitializer接口对应的实现类中完成,我们可以对其做一些扩展,详细见下。

而项目启动的根源在于SpringServletContainerInitializer,也就是servlet3提供的一个接口ServletContainerInitializer,让我们能够在无web.xml的情况使用web项目,由于目前只涉及项目搭建,具体源码中如何实现,暂不做讲解。

先看下WebAppInitializer:

public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    /*
     * DispatcherServlet的映射路径
     */
    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

    /*
     * 应用上下文,除web部分
     */
    @Override
    protected Class[] getRootConfigClasses() {
        //加载配置文件类,这里与上面的xml配置是对应的,需要使用@Configuration注解进行标注
        return new Class[] {RootConfig.class};
    }

    /*
     * web上下文
     */
    @Override
    protected Class[] getServletConfigClasses() {
        return new Class[] {ServletConfig.class};
    }

    /*
     * 注册过滤器,映射路径与DispatcherServlet一致,路径不一致的过滤器需要注册到另外的WebApplicationInitializer中
     */
    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
        characterEncodingFilter.setEncoding("UTF-8");
        characterEncodingFilter.setForceEncoding(true);
        return new Filter[] {characterEncodingFilter};
    }

}

主要在容器启动后通过注解查找配置文件,注册bean,添加过滤器等,其中RootConfig对应spring上下文配置,包括数据源配置、mybatis、依赖插件、事务等的配置;ServletConfig相当于springmvc上下文,无非就是一些视图解析器、异常处理器、消息转换器等的注入,其中关于RequestMappingHandlerMapping、RequestMappingHandlerAdapter都是通过WebMvcConfigurationSupport或@EnableWebMvc实现。

需要注意的是,这两个配置文件扫描的包所限定的范围需要明确,不要因为同时扫描导致使用时出现各种问题。

其余的基本都是一些dao相关操作,没有什么特别的点,具体可看代码。

后台代码:https://github.com/suspring/springmvc-mybatis-ms.git

前端采用的是element-ui,第一次使用,没做太多修改,仅完成了用户的单表增删改查。

代码地址:https://github.com/suspring/element-admin.git

目前代码不在维护,之后将会进行springboot的相关项目。

前期还遗留一些问题:

1、代码生成器

2、鉴权

3、前端

4、日志管理

5、异常处理

6、...

之后会不断完善。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值