小编Dar*_*hta的帖子

Spring Boot:基于端点使用自定义对象映射器/消息转换器

我想基于端点配置自定义消息转换器。例如,我在Spring启动控制器中有以下两个端点:

@RequestMapping(value = "/all", method = RequestMethod.GET)
    public ResponseEntity<Object> findAll{@PageableDefault(size = 10, page = 0) final Pageable pageable){
//code
}

@RequestMapping(value = "/object/{id}", method = RequestMethod.GET)
    public ResponseEntity<Object> byId{@RequestParam("id" String id){
//code
}
Run Code Online (Sandbox Code Playgroud)

对于这两种情况,我想使用不同的HttpMessageConverter(以及对象映射器)实例。例如,我想CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES/all端点设置策略,因为它是页面响应,而不是/object

该应用程序已经configureMessageConverters覆盖了方法,所有Objects都使用了Objectmapper bean。如果对此做出任何更改,它将适用于所有端点,这是我不希望的。

还有其他方法吗?(有点像在findAll方法本身中创建和使用自定义消息转换器)

java spring-mvc jackson spring-boot objectmapper

5
推荐指数
0
解决办法
581
查看次数

请求不包含多部分/表单数据或多部分/混合流,内容类型标头为application / x-www-form-urlencoded

我正在尝试获取他们上载的用户文件,但是当您选择文件并提交时,该错误就会出现。

错误:

org.apache.commons.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is application/x-www-form-urlencoded
        at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:947)
        at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:310)
        at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:334)
        at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:115)
        at com.example.HttpRequest.doPost(HttpRequest.java:153)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:116)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) …
Run Code Online (Sandbox Code Playgroud)

java http apache-commons-fileupload

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

气流:ExternalTask​​Sensor不会触发任务

我已经看到了对SO问题,并作出相应的更改。但是,我的依赖DAG仍然卡在戳状态。以下是我的主DAG:

from airflow import DAG
from airflow.operators.jdbc_operator import JdbcOperator
from datetime import datetime
from airflow.operators.bash_operator import BashOperator

today = datetime.today()

default_args = {
    'depends_on_past': False,
    'retries': 0,
    'start_date': datetime(today.year, today.month, today.day),
    'schedule_interval': '@once'
}

dag = DAG('call-procedure-and-bash', default_args=default_args)

call_procedure = JdbcOperator(
    task_id='call_procedure',
    jdbc_conn_id='airflow_db2',
    sql='CALL AIRFLOW.TEST_INSERT (20)',
    dag=dag
)

call_procedure
Run Code Online (Sandbox Code Playgroud)

以下是我的依赖DAG:

from airflow import DAG
from airflow.operators.jdbc_operator import JdbcOperator
from datetime import datetime, timedelta
from airflow.sensors.external_task_sensor import ExternalTaskSensor

today = datetime.today()

default_args = {
    'depends_on_past': False,
    'retries': …
Run Code Online (Sandbox Code Playgroud)

python directed-acyclic-graphs airflow airflow-scheduler

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

PromQL:在 topk 的指标名称中使用通配符

我将指标发送到 Prometheus,并且能够PromQL在 Grafana 中使用可视化它们的值。这是一个例子:

topk(1, package_class_method_mean{domain="my_domain", asset="my_asset"})
Run Code Online (Sandbox Code Playgroud)

现在,这向我展示了图表。但是,我想要做的是将所有指标按降序排序mean,例如:

topk(10, *_mean{domain="my_domain", asset="my_asset"})
Run Code Online (Sandbox Code Playgroud)

我该如何使用 来做到这一点PromQL

编辑

我尝试过以下查询:

topk(10, {__name__=~"_mean"}{domain="my_domain", asset="my_asset"})
Run Code Online (Sandbox Code Playgroud)

然而,这让我在聚合中ParseException说出乎意料。{

grafana prometheus promql

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

TortoiseSVN客户端预提交钩子来检查正在提交的文件的内容

我想在Windows批处理文件中编写一个预提交挂钩,它将检查正在提交的文件中的特定字符串.如果字符串存在,则提交将失败.我安装了TortoiseSVN客户端.因为它是tortoisesvn客户端,它没有像'svnlook'这样的命令来获取文件列表等.我希望为每个提交/添加的文件执行该脚本.

我是这些钩子的新手.有人可以指导我吗?

svn tortoisesvn batch-file pre-commit-hook

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

Apache Beam:使用BigQueryIO更新BigQuery表行

我们正在使用以下代码将记录写入BigQuery:

BigQueryIO.writeTableRows()
    .to("table")
    .withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED)
    .withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_APPEND)
    .withSchema(schema);
Run Code Online (Sandbox Code Playgroud)

使用此代码,当我们进行回填时,一些记录会再次发送到该数据流,从而导致BigQuery表中的重复项。有什么方法可以upsert根据数据流中的字段名称配置操作?

google-bigquery google-cloud-platform google-cloud-dataflow

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

String vs StringBuilder - 对象数

我遇到了两个代码片段,它们创建了一个要进一步执行的查询:

StringBuilder stringBuilder = new StringBuilder(); 
stringBuilder.append("SELECT * FROM EMPLOYEE "); 
stringBuilder.append("WHERE SALARY > ? "); 
stringBuilder.append("GROUP BY DEPT");
Run Code Online (Sandbox Code Playgroud)

String string = "SELECT * FROM EMPLOYEE " +
"WHERE SALARY > ? " +
"GROUP BY DEPT";
Run Code Online (Sandbox Code Playgroud)

根据我的分析,两个片段都创建了4个对象.第一个片段创建一个StringBuilder对象和3个字符串对象,而第二个片段创建4个String对象.我的分析是否正确?

代码片段如何比代码片段2更有效?

java string stringbuilder

3
推荐指数
2
解决办法
184
查看次数

重构 if-else 控制流

我在浏览代码时遇到了以下代码段:

if(a || b){
    if(a) {
        doSomething();
    }
    doSomethingElse();
} else {
    throw new Exception("blah");
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何重构这段代码以获得更好的可读性(或者它已经处于最佳状态?)。下面是我的第一次尝试:

if(!a && !b){
    throw new Exception("blah");
}
if(a){
    doSomething();
}
doSomethingElse();
Run Code Online (Sandbox Code Playgroud)

这看起来更好吗?

java refactoring if-statement

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

Spark:爆炸一对嵌套的列

Spark版本2.1

我正在将文件读取为Spark dataframe,格式如下:

{
    "field1": "value1",
    "field2": "value2",
    "elements": [{
        "id": "1",
        "name": "a"
    },
    {
        "id": "2",
        "name": "b"
    },
    {
        "id": "3",
        "name": "c"
    }]
}
Run Code Online (Sandbox Code Playgroud)

它包含一个array嵌套的元素,现在我想explodeelements阵列,以获得平坦的JSON结构。我正在使用以下代码:

var dfExploded = df
    .withColumn("id", 
      explode(df.col("elements.id")))
    .withColumn("name",
      explode(df.col("elements.name")));
Run Code Online (Sandbox Code Playgroud)

它似乎正在返回笛卡尔积(例如,我在结果中得到9个元素,而我只想要3个)。有什么办法可以指定一对嵌套列来explode起作用?

scala apache-spark apache-spark-sql

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

Java正则表达式:非英语字符的不区分大小写匹配

我试图执行情况与不敏感的匹配PatternMatcherJava类,为俄语.以下是文字:

"some text ???????????? ???????? some other text"
Run Code Online (Sandbox Code Playgroud)

下面是我用来匹配文本的模式:

Pattern pattern = Pattern.compile("(?iu)\\b(" + Pattern.quote("???????") + ")\\b", Pattern.UNICODE_CHARACTER_CLASS);
Run Code Online (Sandbox Code Playgroud)

我期待以下内容返回,true因为它是一个不区分大小写的比较(???????vs ????????):

System.out.println(pattern.matcher("some text ???????????? ???????? some other text").find());
Run Code Online (Sandbox Code Playgroud)

但它总是回归false.我曾与其他试图Pattern常数(如CASE_INSENSITIVE,UNICODE_CASE,CANON_EQ),但是,它仍然返回false.

Java中有没有办法进行这样的比较?它甚至可能吗?

java regex locale pattern-matching

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