关于java下的目录结构规范问题

这里重点是关注src/main/java/下的目录结构问题。现在有2种结构,不知道哪种才是比较符合的。假设一个项目里面有10个左右的大模块为前提。

方案1:先模块,每个模块里面各自有自己的mvc结构文件夹
图片描述

方案2:先mvc结构文件夹,然后再每个模块的业务
图片描述

阅读 6.8k
5 个回答
新手上路,请多包涵

方案一更直观

1、maven分模块
2、微服务
主要是我不知道你想干啥,两种结构都是合理的,不同的区分方式罢了,一个是业务区分,一个是功能区分

刚体会了一下方案1,发觉这样改之后,mybaits配置文件里,要求指定一个通用前缀的类名来做别名的话,无法实现。。

新手上路,请多包涵

第一种方式 mybatis 配置文件实现方式两种:

  1. 可以重写一下 SqlSessionFactoryBean 里面的 setTypeAliasesPackage 这个方法;
  2. 或者所有的别名类扩展自一个基类,在配置文件里面指定一个属性,参见jeesite的配置文件

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="typeAliasesPackage" value="com.thinkgem.jeesite"/>
        <property name="typeAliasesSuperType" value="com.thinkgem.jeesite.common.persistence.BaseEntity"/>
        <property name="mapperLocations" value="classpath:/mappings/**/*.xml"/>
        <property name="configLocation" value="classpath:/mybatis-config.xml"></property>
    </bean>
    
  1. 这样子属于从逻辑角度去区分模块,因为这是在同一个工程中。如果在这情况下,我认为第1种区分得更好。
  2. 另外我觉得可以尝试从工程模块化角度去区分模块。比如Gradle,支持多项目构建,IDEA也支持模块化的工程,在IDEA中使用Gradle可以方便实现多项目构建。如下图:
    图片描述

图片描述
图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题