小编Rag*_*kla的帖子

Maven多模块项目结构问题

这是一个有趣的经历,我在过去几周构建我的maven多模块项目.

当我决定使用maven进行构建生命周期管理时,我有几个理由想要选择maven.

一个.大多数开发团队都是分开的,这样每个团队都可以在项目中的单独模块上工作,比如Team-A来处理用户管理系统,Team-B来处理授权系统,Team-C来处理文档管理系统......以及等等.每个团队都有java开发人员,测试人员,UI专家等.

因此,maven项目结构应该是每个团队可以独立地在各自的模块上工作.他们必须能够编写,编译,构建,测试,部署他们的模块,而无需编译,测试属于其他团队的模块.

因此我得出结论,maven多模块项目的每个开发模块都必须代表一个功能模块

项目结构1

在论坛上进行了一些讨论之后,我发现人们建议我遵循分层方法,子模块必须是层次,如控制器层,服务层,dao层等.我没有注意这个建议,因为这不能解决我的团队目的致力于个人模块.对于大型项目,这种方式在开发期间每个团队的构建和部署时间增加,这确实影响了项目时间线.有时,如果项目中有10到11个模块,则构建和部署时间最多为30分钟.

但我确实注意到为每个模块保持DAO层分离的建议并不是一个好主意,因为DAO是高度精细的并且被其他模块重用.因此,一个模块对其他模块的依赖性将会变得更大.

我通过创建一个公共模块并将DAO和DOMAIN移动到公共模块找到了解决这个问题的方法,公共模块将作为每个模块的依赖继承.这似乎是一个更可行的选择.现在项目结构看起来像这样.

项目结构2

现在,当我构建项目并在服务器上运行webapp时,它会抱怨404,资源未找到.我发现这是因为缺少WEB-INF/classes文件夹,web-app模块中缺少src/main/java.我搜索并发现了一些链接,表明它是Eclipse中的部署程序集问题.所以我需要手动创建这些文件夹并添加部署程序集,因为maven没有这样做.

但更大的问题是

  1. 我需要将控制器类(如com.mycompany.usermgmtsys.controller.UserMgmtController等)移动到src/main/java或者maven应该从WEB-INF/lib中作为依赖项包含的模块jar中找到控制器.

我不想这样做,即将java文件放在web-app中.我希望所有控制器都可以作为依赖项用于web-app,例如WEB-INF/lib/usermgmtsystem.jar.但那么Tomcat不会在类文件夹中寻找控制器.

我不知道该怎么办?任何建议,将不胜感激.

java eclipse spring tomcat maven

10
推荐指数
1
解决办法
2980
查看次数

Spring MVC:将表单输入映射到包含 HashMap 的复杂支持对象

我有一个场景,其中 jsp 表单中的输入字段列表将映射到支持对象解析中的 HashMap 字段。

    @Controller
    @RequestMapping("/rms") 
    class ResolutionManagementController{

        private static final String ISSUE_FORM_PATH="/view/resolutionForm";
        private static final String SHOW_RESOLUTION_PATH="/view/showResolution";

        @Autowired
        IIssueManagementService issueService;

        @Autowired
        ResolutionManagementService resolutionService;

        @RequestMapping(value="/resolution/form",method=RequestMethod.GET)
        String resolutionForm(Model model){
                List<Issue> issues = issueService.listIssue();
                model.addAttribute("issues",issues);
                model.addAttribute("resolution", new Resolution());
                return ISSUE_FORM_PATH;     
        }

        @RequestMapping(value="/resolution",method=RequestMethod.POST)
        String resolve(Resolution resolution,Model model){
            List<SupportExecutive> executives = resolutionService.addResolution(resolution);
            model.addAttribute("executives",executives);
            return SHOW_RESOLUTION_PATH;
        }   

    }
Run Code Online (Sandbox Code Playgroud)

支持表单对象

class Resolution{
        private String resolutionId;
        private String categoryId;
        private Map<Issue,SupportExecutive> allotments;

        //getters and setters

    } 
Run Code Online (Sandbox Code Playgroud)

解决表单.jsp

<form:form action="/rms/resolution" commandName="resolution">

        <c:forEach var="issue" items="${issues}">
            <tr>
                <td>
                    ${issue.issueTitle} …
Run Code Online (Sandbox Code Playgroud)

java spring jsp spring-mvc

5
推荐指数
1
解决办法
2938
查看次数

用于 JSON 数据的 Spring MVC 自定义转换器不起作用

我正在创建一个测试应用程序,以在传递给控制器​​之前实现从 JSON 字符串到员工对象的转换。

以下是执行的关键步骤

  • 创建 Employee.java 类:域对象
  • 创建 EmployeeManagementController.java 类:用于管理员工的 Spring MVC 控制器
  • 创建 EmployeeConverter.java:用于将 JSON 字符串转换为员工对象的自定义转换器。
  • Creation of employee-servlet.xml : Spring Configuration file
  • Creation of web.xml : The Deployment Descriptor

Employee.java

package com.bluebench.training.domain;

import org.springframework.stereotype.Component;

@Component("employee")
public class Employee {

    private PersonalDetail personal;
    private EducationDetail education;
    private WorkExperienceDetail experience;


    // Getters and Setters

}
Run Code Online (Sandbox Code Playgroud)

other domain objects are also defined

EmployeeManagementController.java

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.bluebench.training.domain.Employee;

@Controller
public class …
Run Code Online (Sandbox Code Playgroud)

java spring json spring-mvc typeconverter

1
推荐指数
1
解决办法
7175
查看次数

标签 统计

java ×3

spring ×3

spring-mvc ×2

eclipse ×1

json ×1

jsp ×1

maven ×1

tomcat ×1

typeconverter ×1