小编Eme*_*gia的帖子

可以通过Spring配置文件选择@PropertySources吗?

我有一个Spring 3.1 @Configuration需要一个属性foo来构建一个bean.属性是在属性中定义的,defaults.propertiesoverrides.properties如果应用程序具有活动的overrideSpring配置文件,则可以由属性覆盖.

没有覆盖,代码看起来像这样,并且工作......

@Configuration
@PropertySource("classpath:defaults.properties")
public class MyConfiguration {

    @Autowired
    private Environment environment;

    @Bean
    public Bean bean() {
        ...
        // this.environment.getRequiredProperty("foo");
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我想一个@PropertySource用于classpath:overrides.properties对队伍@Profile("overrides").有没有人对如何实现这一点有任何想法?我考虑过的一些选项是重复的@Configuration,但这会违反DRY或程序化操作ConfigurableEnvironment,但我不确定environment.getPropertySources.addFirst()调用的去向.

如果我直接注入属性@Value,但是在我使用EnvironmentgetRequiredProperty()方法时,将以下内容放在XML配置中.

<context:property-placeholder ignore-unresolvable="true" location="classpath:defaults.properties"/>

<beans profile="overrides">
    <context:property-placeholder ignore-unresolvable="true" order="0"
                                  location="classpath:overrides.properties"/>
</beans>
Run Code Online (Sandbox Code Playgroud)

更新

如果您现在尝试执行此操作,请查看Spring Boot的YAML支持,尤其是"使用YAML而不是属性"部分.那里的配置文件支持会使这个问题没有实际意义,但还没有@PropertySource支持.

spring

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

为什么Chrome扩展开发教程中的小猫示例不会加载任何图像?

在" 入门"页面中,我们承诺来自Flickr的小猫善良.根据说明将延伸放在一起,没有小猫的善良实现.相反,弹出窗口显示一个小的空白矩形条,没有任何模糊或可爱的东西.

为什么?

(我问这个问题是为了回答它,因为我找不到任何其他报道错误的方法.)

google-chrome-extension

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

@JsonTypeResolver 是使用多个属性进行解析的唯一选择吗?

我有以下格式的传入 JSON 数据

{
    "header": {
        "schema_id": {
            "namespace": "omh",
            "name": "physical-activity",
        },
    },
    "body": {
        "activity_name": "walking",
        "distance": {
            "value": 1.5,
            "unit": "mi"
        },
    }
}
Run Code Online (Sandbox Code Playgroud)

和相应的 Java 类,看起来像

public class DataPoint<T extends Measure> {

    private DataPointHeader header;
    private T body;
Run Code Online (Sandbox Code Playgroud)

@JsonNaming(LowerCaseWithUnderscoresStrategy.class)
public class PhysicalActivity extends Measure {

    private String activityName;
    private LengthUnitValue distance;
Run Code Online (Sandbox Code Playgroud)

我希望杰克逊根据JSON 文档中bodyPhysicalActivity类型解析为类型schema_id,例如在伪代码中

if schema_id.namespace == 'omh' && schema_id.name == 'physical-activity'
     then return PhysicalActivity.class
Run Code Online (Sandbox Code Playgroud)

我试过这样做,@JsonTypeIdResolver但如果我尝试导航到header.schema_id.namewith …

java json jackson

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

如何在 Spring MVC 中混合同步和异步请求?

(我问这个问题的目的是为了回答它。几个月前我在 Spring 论坛上问过这个问题,不久后我通过实验找到了解决方案。但我将其发布在这里,以防其他人点击同样的场景,因为我被告知这样做。)

我有一个 Spring MVC 端点/work,其处理是 IO 绑定的,可能需要几秒钟才能完成。进入Servlet 3异步请求和Spring MVC异步请求处理。我可以返回一个Callable<Foo>orDeferredResult<Foo>并释放我的 servlet 容器线程,以便在处理发生时执行一些有用的操作。

现在其他用户很可能会提出相同的请求。重复已完成的工作是没有意义的,因此我将在第一次完成时缓存工作结果,并希望返回该缓存结果。因此现在,完全相同的处理程序方法可能需要几秒钟或几毫秒才能完成。

我的问题是我只能给处理程序方法一个签名,并且我将其定义为 returns Callable<Foo>。我不知道如何消除短请求的开销;按照目前的情况,我将创建一个Callable<Foo>,将其排入长时间运行的任务后面,并等待线程池中的线程来处理它,所有这些都是为了最终提供我已经掌握的响应。我想避免这一切。

如果我使用 aDeferredResult<Foo>而不是 a Callable<Foo>,性能会更好一些,但我已经将处理从 Spring 托管线程中取出,丢失了 Spring Security 的 SecurityContext,并且用 Spring 特定的DeferredResult.

是否有一种有效的方法有时可以异步提供响应,有时可以从同一 MVC 处理程序方法同步提供响应?

spring spring-mvc

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

通用的 @ExceptionHandler 和 DefaultHandlerExceptionResolver 可以玩得好吗?

我想实现一个@ExceptionHandler可以防止所有未捕获的异常到达客户端。像这样的东西...

@ControllerAdvice
public class ExceptionHandlingControllerAdvice {

    private static final Logger logger = getLogger(ExceptionHandlingControllerAdvice.class);

    @ExceptionHandler(Exception.class)
    @ResponseStatus(value = INTERNAL_SERVER_ERROR)
    public void handleAnyUncaughtException(Exception e) {
        logger.error("This uncaught exception is being blocked from reaching the client.", e);
    }
}
Run Code Online (Sandbox Code Playgroud)

但这妨碍了开箱即用的异常处理DefaultHandlerExceptionResolver,例如,在@RequestBody检查失败的验证时抛出 4xx 错误@Valid@ExceptionHandlerDHER可以尝试返回 4xx之前,似乎优先并返回 500 。

有没有办法阻止未捕获的异常到达客户端,但仍然让客户端DefaultHandlerExceptionResolver完成它的工作?

spring-mvc

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

如何从Spring Data MongoDB中的MongoDB ObjectId中提取时间戳?

MongoDB 文档建议从ObjectId中提取插入时间,而不是使用单独的时间字段.有谁知道如何使用Spring Data MongoDB执行此操作?

特别是,我想查询在特定日期范围内插入的文档.

mongodb spring-data

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

TypeSafe Slick是否适用于Scala 2.9.3?

TypeSafe Slick是否适用于Scala 2.9.3?我明白了

[ERROR] exception when typing query.list
exception when typing query.listscala.tools.nsc.symtab.Types$TypeError: class file needed by StatementInvoker is missing.
[INFO] class file needed by StatementInvoker is missing.
[INFO] reference type Either of object package refers to nonexisting symbol.
Run Code Online (Sandbox Code Playgroud)

当我使用Scala 2.10.x时它会消失,但我对Scala来说太新了解了解原因.

import slick.session.Database
import scala.slick.jdbc.StaticQuery
import Database.threadLocalSession
import com.typesafe.config.ConfigFactory

object PostgresDao {

  protected val conf = ConfigFactory.load

  def findFoo(a: Int, b: String): Option[Int] = {

    Database.forURL("jdbc:postgresql://localhost/bar", driver = "org.postgresql.Driver") withSession {

      val query = StaticQuery.query[(Int, String), Int](
        """
        select some_int
        from …
Run Code Online (Sandbox Code Playgroud)

scala slick

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