小编ASh*_*ma7的帖子

@RestController 和 @Component 之间的细微差别

虽然网上每个页面都说@RestController是@Component的规范,但我不知道它是否与DispatcherServlet有关。但是当我通过在 @RestController 和 @Component 之间切换来尝试下面的代码时,我没有看到相同的行为:

首先我尝试使用@RestController:

@RestComponent
public class TestController {
    @RequestMapping(value="/testController", method=RequestMethod.POST,consumes=MediaType.APPLICATION_JSON_VALUE)
    public void testController() {
        System.out.println("Hello");
    }

}
Run Code Online (Sandbox Code Playgroud)

我在控制台中得到以下输出:

你好

其次我尝试使用@Component + @ResponseBody:

@Component
@ResponseBody
public class TestController {
    @RequestMapping(value="/testController", method=RequestMethod.POST,consumes=MediaType.APPLICATION_JSON_VALUE)
    public void testController() {
        System.out.println("Hello");
    }
}
Run Code Online (Sandbox Code Playgroud)

我在邮递员上收到错误:

{
    "timestamp": 1570998345860,
    "status": 405,
    "error": "Method Not Allowed",
    "message": "Request method 'POST' not supported",
    "path": "/testController"
}
Run Code Online (Sandbox Code Playgroud)

如果两个注释相同,那么为什么输出存在差异?

下面是 @RestController 和 @Controller 的源代码,可以看出 @RestController 和 @Controller 都是 @Component 的规范:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController { …
Run Code Online (Sandbox Code Playgroud)

java spring annotations spring-annotations spring-boot

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

HackerEarth 问题解决方案因输入测试用例而失败

下面 hackerearth qn 在编码 qns 之一中被问到

距离零最远

给定一个大小为 N 的整数数组 A。

任务 编写一个程序,打印距离 0 最远的元素。如果有多个元素,则打印值最小的数字。

输入格式

  • 第一行包含一个整数 N,表示数组 A 的大小。
  • 下一行包含 N 个整数,表示数组 A 的元素。

输出格式

打印距离 0 最远的元素。

输入示例1

5

1 2 3 4 5

样本输出1

5

我准备的解决方案:

public static farthestfromzero(int N, int [] Arr) {
    TreeSet<Integer> ts = new TreeSet<Integer>();
    for (int i=0; i<N; i++){
          ts.add(Arr[i]);
    } 
  return ts.last();
}
Run Code Online (Sandbox Code Playgroud)

:这个解决方案在最初的场景中对我有用,但是当我提交它时,它不起作用。

java

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

通过组合两个类的字段来创建JSON

我有两个班:A班,B班

class A{
 private int F1;
 private String F2;
}

class B{
 private int F3;
 private String F4;
 private String F5;
}
Run Code Online (Sandbox Code Playgroud)

我想要一个像这样的JSON:

{
   "F1": 123
   "F2": "ABC"
   "F3": 456
   "F4": "CDE"
   "F5": "FGH"
}
Run Code Online (Sandbox Code Playgroud)

我正在使用springboot,一旦从@RestController返回对象,就会创建JSON.如何使用这两个类来实现上述json.

注意:1.)我已经知道通过使用A类扩展B,我可以实现这一点,但我正在寻找一些基于Spring的方法来实现这一点

2.)在B类中使用@Embeddable,然后在A类中创建引用,在JSON中创建另外的标记B,如下所示:

{
   "F1": 123
   "F2": "ABC"
    b: {
          "F3": 456
          "F4": "CDE"
          "F5": "FGH"
    }
}
Run Code Online (Sandbox Code Playgroud)

java spring json jackson spring-boot

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

.REGEXP_REPLACE 用于在列中添加值

我想将 'Shri_' 添加到客户表的 First_name 中,仅适用于开头没有 'Mr_' 的名称。客户表数据如下所示:

在此处输入图片说明

我正在使用下面的脚本,但它没有帮助。

update customers set first_name = REGEXP_REPLACE(first_name,'^(?!Mr_)(.*)', 'Shri_\2',1,1);
Run Code Online (Sandbox Code Playgroud)

谁能指出我的正则表达式有什么问题。更具体地说,我正在尝试为这种情况找出正确的正则表达式。

sql oracle

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

java 8 中引入的函数式接口

我在下面的采访中被问到 qn:

目前 Java 8 中引入了以下哪些功能接口:

  1. 可运行
  2. 列表
  3. 可调用
  4. 收藏

我不认为它们中的任何一个是在 Java 8 中引入的。这些接口在 Java 8 之前就已经存在了。

引入了 java.util.function.* ,其中有一些新的接口,如 java.util.function.Predicate、java.util.function.Consumer。

请建议这个问题是否正确

java

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