小编Vin*_*lho的帖子

Spring Boot不提供静态内容

我无法让我的Spring-boot项目提供静态内容.

我已经放在一个命名的文件夹staticsrc/main/resources.在里面我有一个名为的文件夹images.当我打包应用程序并运行它时,它找不到我放在该文件夹上的图像.

我试图把静态文件中public,resourcesMETA-INF/resources但没有任何工程.

如果我jar -tvf app.jar我可以看到文件在右侧文件夹的jar内: /static/images/head.png例如,但是调用:http://localhost:8080/images/head.png,我得到的只是一个404

有什么想法为什么spring-boot没有找到这个?(我使用的是1.1.4 BTW)

spring spring-mvc spring-boot

154
推荐指数
10
解决办法
15万
查看次数

速率限制可观察量

我有一个observable,它从数据库游标的快速流中生成数据.我希望以每秒x项的速率限制输出.到目前为止,我一直在使用文档中描述的Callstack阻止:

observable.map(f -> {
ratelimiter.acquire(); // configured limiter to only allow
});
Run Code Online (Sandbox Code Playgroud)

这工作正常,但出于好奇,有没有更好的方法来处理这个使用背压?

TKS

rx-java

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

杰克逊处理包裹的元素

我正在解析来自last.fm API的响应.但似乎他们使用了一些包装来做出一些反应,这会引起一些痛苦.举一个例子:

 {
   "artists":{
      "artist":[
         {
            "name":"Coldplay",
            "playcount":"816763",
            "listeners":"120815",
            "mbid":"cc197bad-dc9c-440d-a5b5-d52ba2e14234",
            "url":"http:\/\/www.last.fm\/music\/Coldplay",
            "streamable":"1"
         },
         {
            "name":"Radiohead",
            "playcount":"846668",
            "listeners":"99135",
            "mbid":"a74b1b7f-71a5-4011-9441-d0b5e4122711",
            "url":"http:\/\/www.last.fm\/music\/Radiohead",
            "streamable":"1"
         }
      ],
      "@attr":{
         "page":"1",
         "perPage":"2",
         "totalPages":"500",
         "total":"1000"
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

不仅响应被包装在艺术家对象中,而且对象数组也有一个对象包装器.

所以包装类如下:

public class LastFMArtistWrapper {
    public List<Artist> artists;

}
Run Code Online (Sandbox Code Playgroud)

不行.我解决了这个问题,创建了两个包装类,但这看起来非常难看.我们有什么方法可以使用杰克逊的@XMLElementWrapper之类的东西吗?

java json jackson

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

Groovy:命名参数构造函数

我发现一个人可以做的很酷:

class Foo {
    String name
}

def foo = new Foo(name:"Test")
Run Code Online (Sandbox Code Playgroud)

但是,它仅在我的文件名与类名匹配时才有效.如果我有一个包含一堆类的文件,例如:

class AllClassesInOneFile {
    class Bar {}
    class Foo {
      String name
    }
}

def foo = new Foo(name:"Test")
Run Code Online (Sandbox Code Playgroud)

现在,它不再起作用我得到一个java.lang.IllegalArgumentException:错误的参数数量

我想知道是否仍然可以使用脚本和嵌套类调用命名参数参数样式.

问候

groovy

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

Jackson - 自定义 TypeId 解析器

我一直在为我的一个类使用自定义 typeId 解析器,到目前为止,我一直依赖于注释支持:

@JsonTypeInfo(
    use = JsonTypeInfo.Id.CUSTOM,
    include = JsonTypeInfo.As.PROPERTY,
    property = "@type")
@JsonTypeIdResolver(ColumnDefinitionTypeResolver.class)
Run Code Online (Sandbox Code Playgroud)

但是现在我需要通过构造函数或 setter 将一些其他依赖项传递给类型解析器来自定义类型解析器的创建,并且由于 Jackson 是实例化它的人,因此我找不到解决方法。

有没有办法将 ObjectMapper 配置为使用 TypeIdResolver 而不是依赖注释?

问候

java jackson

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

ExecutionHandler和Boss线程

我从一个项目中的"裸"网络开始.

我还在经历所有令人惊叹的javadocs,但有一点我没有得到.

到目前为止我得到了什么:

有一个Boss线程启动引导程序并将服务器绑定到套接字端口对吗?工作线程(可能是其中许多线程)处理传入的连接并创建正确的通道和管道吗?

但是我们有ExecutionHandler,它还可以将其他几个线程垃圾邮件对吗?我的观点是,如果我有10个工作线程,并且corepoolsize = 16的ExecutionHandler,这意味着我可能会因为负载很重而在我的系统上以160个并发线程结束?

对不起,这个问题让人觉得愚蠢,但我只是试图从文档的这一部分理解.

干杯

netty

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

一个持久卷是否可以被多个持久卷声明消耗?

假设一个 PV 可以被多个 PVC 消耗并且每个 pod 实例需要一个 PVC 绑定,这样的假设是否正确?我这么问是因为我创建了一个 PV,然后创建了一个具有不同尺寸要求的 PVC,例如:

kind: PersistentVolume
apiVersion: v1
metadata:
  name: k8sdisk
  labels:
    type: amazonEBS
spec:
  capacity:
    storage: 200Gi
  accessModes:
    - ReadWriteOnce
  awsElasticBlockStore:
    volumeID: vol-xxxxxx
    fsType: ext4


kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: couchbase-pvc
  labels:
    type: amazonEBS
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
Run Code Online (Sandbox Code Playgroud)

但当我将 PVC 与 pod 一起使用时,它显示为 200GB 可用空间,而不是 5GB。

我确信我把事情搞混了,但找不到合理的解释。

kubernetes

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

使用maven-plugin的Scala无法找到依赖项

我有一个使用maven的scala项目.当我只使用scala类时,maven插件没有问题.但是现在,我在尝试编译时遇到错误:

[警告] C:\ java的\工作空间\ mcare\SRC \主\阶\ COM\FB\mcare \配置\ AppConfig.scala:2:错误:对象springframework的是不包组织的成员[警告]进口org.springframework .context.annotation.Configuration

package com.fb.mcare.config
import org.springframework.context.annotation.Configuration

@Configuration
class AppConfig {

}
Run Code Online (Sandbox Code Playgroud)

我的pom:

http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 com.fb mcare 0.0.1-SNAPSHOT 2008 2.9.1-1 3.1.0.RELEASE war scala-tools.org Scala-Tools Maven2存储库http://scala-tools.org/repo-releases com.springsource.repository.maven.release http://maven.springframework.org/release/ false

<pluginRepositories>
    <pluginRepository>
        <id>scala-tools.org</id>
        <name>Scala-Tools Maven2 Repository</name>
        <url>http://scala-tools.org/repo-releases</url>
    </pluginRepository>
</pluginRepositories>

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-library</artifactId>
        <version>${scala.version}</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.4</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.specs</groupId>
        <artifactId>specs</artifactId>
        <version>1.2.5</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-servlet_3.0_spec</artifactId>
        <version>1.0</version>
        <scope>provided</scope>
    </dependency> …
Run Code Online (Sandbox Code Playgroud)

spring scala maven

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

Scala:从java接口覆盖方法

我正在尝试在scala中实现通用java接口.我看过: 如何在Scala中扩展包含泛型方法的Java接口?Scala:重写通用Java方法II

但我还是找不到答案.这是Spring web的方法签名:

T read(Class<? extends T> clazz, HttpInputMessage inputMessage)
            throws IOException, HttpMessageNotReadableException;
Run Code Online (Sandbox Code Playgroud)

我在scala中尝试了以下内容:

 @throws(classOf[IOException])
  @throws(classOf[HttpMessageNotReadableException])
  override def read[T](clazz : Class[_ <: T], inputMessage : HttpInputMessage) : T ={
  } 
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误,说这种方法无法覆盖.如果我通过执行以下操作擦除类型:

override def read(clazz : Class[_], inputMessage : HttpInputMessage) : AnyRef ={
Run Code Online (Sandbox Code Playgroud)

它将该方法标记为被覆盖.我的问题是如何在这里保持类型安全并强制它覆盖接口方法?

问候

编辑

弹簧接口:

public interface HttpMessageConverter<T> {

T read(Class<? extends T> clazz,
       HttpInputMessage inputMessage)
       throws IOException,
              HttpMessageNotReadableException
}
Run Code Online (Sandbox Code Playgroud)

overriding scala scala-java-interop

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