小编xml*_*ing的帖子

如何在Spring Boot项目中将application.properties的环境属性导入logback.groovy?

尝试将Spring Boot项目中定义的属性注入application.properties/application.ymllogback.groovy脚本中.

我不能注入EnvironmentApplicationContext进入groovy脚本.

有没有解决方法?

不是在寻找像这样的解决方案System.getProperty('spring.profiles.active')

SRC /主/资源/ logback.groovy

import org.springframework.core.env.Environment

@Inject private Environment env; //this is not working. how to get env here?
println "spring.profiles.active : ${env.getProperty('spring.profiles.active')}"

appender("STDOUT", ConsoleAppender) {
    encoder(PatternLayoutEncoder) {
        pattern = "%green(%d{HH:mm:ss.SSS}) [%thread] %highlight(%-5level) %cyan(%logger{36}) - %msg%n"
    }
}

if(System.getProperty("spring.profiles.active")?.equalsIgnoreCase("prod")) {
    root INFO, ["STDOUT", "FILE"]
} else {
    root INFO, ["STDOUT"]
}
Run Code Online (Sandbox Code Playgroud)

SRC /主/资源/ application.yml

---
spring:
    profiles:
        active: development
Run Code Online (Sandbox Code Playgroud)

groovy spring environment-variables logback spring-boot

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

异步执行多个任务并在JavaScript函数中返回第一个成功结果

我必须编写一个javaScript函数,将一些数据返回给调用者.

在该函数中,我有多种方法来检索数据,即

  1. 从缓存中查找
  2. 从HTML5 LocalStorage中检索
  3. 从REST后端检索(奖励:将新数据放回缓存中)

每个选项可能需要自己的时间来完成,它可能会成功或失败.

我想要做的是,异步/并行地执行所有这三个选项,并返回先返回的结果.

我理解JavaScript中不可能并行执行,因为它是单线程的,但我想至少异步执行它们并取消其他任务,如果其中一个返回成功结果.

我还有一个问题.

提前返回并继续执行JavaScript函数中的剩余任务.

伪代码示例:

function getOrder(id) {

    var order;

    // early return if the order is found in cache.
    if (order = cache.get(id)) return order;

    // continue to get the order from the backend REST API.
    order = cache.put(backend.get(id));

    return order;
}
Run Code Online (Sandbox Code Playgroud)

请建议如何在JavaScript中实现这些要求.

到目前为止发现的解

  1. 最快的结果

    JavaScript ES6解决方案

    参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

Promise.race(迭代器)

返回在iterable中的第一个promise解析时解析的promise.

var p1 = new Promise(function(resolve, reject) { setTimeout(resolve, 500, "one"); });
var p2 = new Promise(function(resolve, reject) { setTimeout(resolve, …
Run Code Online (Sandbox Code Playgroud)

javascript java groovy promise angularjs

6
推荐指数
2
解决办法
1473
查看次数

从 Grails RestfulController 索引/搜索操作渲染分页元数据

我正在寻找最佳实践/解决方案,以使“响应”方法在生成的 json 中生成额外的元数据以及从 DB 获取的实体集合。

基本上,我想在使用 angularJS 和 Restangular 插件构建的前端单页应用程序 (SPA) 中使用该元数据实现分页。

PS:angularJS 的 $resource 或 Restangular 期望收集结果为 JS 数组。

标准 GrailsJsonCollectionRenderer/JsonRenderer忽略提供给 map 参数中“响应”的元数据。

我碰到下面这是实现自定义JsonRenderer文章,但我在寻找通过的调整自定义简单/灵活的解决方案,以“回应”输出的元数据JsonCollectionRendererresources.groovy

http://groovyc.net/non-trivial-restful-apis-in-grails-part-2/

我的 RestfulController:

@Secured(value=["hasRole('ROLE_USER')"])
class DrugController extends RestfulController<Drug> {

static scaffold = true
static responseFormats = ['html', 'json', 'xml', 'hal']
static allowedMethods = [show: "GET"]

DrugController() {
    super(Drug, true)
}

@Override
def index(Integer max) {
    params.max = Math.min(max ?: 10, 100)
    // We pass which fields to be rendered with …
Run Code Online (Sandbox Code Playgroud)

rest grails pagination json metadata

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