小编utk*_*mez的帖子

NoHandlerFoundException 的自定义异常处理程序在没有 @EnableWebMvc 的情况下不起作用

我想将 404 响应的 html 错误页面覆盖为 JSON 响应。当我@ControllerAdvice不使用@EnableWebMvc它时,它不起作用。

@EnableWebMvc   // if i remove this, it is not working
@ControllerAdvice
@Order(Ordered.HIGHEST_PRECEDENCE)
public class GlobalControllerExceptionHandler {

    @ExceptionHandler(NoHandlerFoundException.class)
    public ResponseEntity<ZeusErrorDTO> noHandlerFoundException(
                    HttpServletRequest request, 
                    NoHandlerFoundException exception) {

        ErrorDTO errorDTO = new ErrorDTO();
        return new ResponseEntity<>(errorDTO, HttpStatus.NOT_FOUND);
    }
} 
Run Code Online (Sandbox Code Playgroud)

是否有自定义异常处理的选项@EnableWebMvc,因为它会覆盖在 application.yml 中声明的 Spring 配置。

java spring-boot

9
推荐指数
2
解决办法
4068
查看次数

Java8将列表<P>转换为Map <Integer,List <P >>

我有List<Person>对象,并希望将其转换Map<Integer, List<Person>>为地图的关键字表示一个人的财产等级.它可能在源列表中具有多个具有相同等级的Person对象,在这种情况下,我想将它们全部分组到List中,与生成的Map中的相应等级相对应.

到目前为止,我有以下代码

public class PersonMain
{
   public static void main(String[] args)
   {
    Person person1 = new Person();
    person1.setName("person1");
    person1.setGrade(1);

    Person person2 = new Person();
    person2.setName("person2");
    person2.setGrade(2);

    Person person3 = new Person();
    person3.setName("person3");
    person3.setGrade(1);

    List<Person> persons = Arrays.asList(person1, person2, person3);

    Map<Integer, List<Person>> personsMap = persons.stream()
            .collect(Collectors.toMap(Person::getGrade, PersonMain::getPerson, PersonMain::combinePerson));

    System.out.println(personsMap);
}
private static List<Person> getPerson(Person p)
{
    List<Person> persons = new ArrayList<>();
    persons.add(p);
    return persons;
}
private static List<Person> combinePerson(List<Person> oldVal, List<Person> newVal)
{
        oldVal.addAll(newVal);
        return oldVal; …
Run Code Online (Sandbox Code Playgroud)

collections java-8

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

标签 统计

collections ×1

java ×1

java-8 ×1

spring-boot ×1