小编Ola*_*nka的帖子

Spring RedisConnectionFactory,事务没有返回到Pool的连接,然后在耗尽时阻塞

我使用连接池创建连接工厂的配置.我有一个连接池.大部分代码都是从Spring中复制的RedisAutoConfiguration,我因特殊原因而禁用了它.

@Configuration
@EnableConfigurationProperties(RedisProperties.class)
public class JedisConfiguration implements RedisConfiguration {

    @Bean
    @Scope("prototype")
    @Override
    public RedisConnectionFactory connectionFactory(RedisProperties redisProperties) {
        return createFactory(redisProperties);
    }

    private static JedisConnectionFactory applyProperties(RedisProperties properties, JedisConnectionFactory factory) {
        factory.setHostName(properties.getHost());
        factory.setPort(properties.getPort());
        factory.setDatabase(properties.getDatabase());
        return factory;
    }

    private static JedisPoolConfig jedisPoolConfig(RedisProperties properties) {
        return Optional.ofNullable(properties.getPool())
                       .map(props -> {
                           JedisPoolConfig config = new JedisPoolConfig();
                           config.setMaxTotal(props.getMaxActive());
                           config.setMaxIdle(props.getMaxIdle());
                           config.setMinIdle(props.getMinIdle());
                           config.setMaxWaitMillis(props.getMaxWait());
                           return config;
                       })
                       .orElseGet(JedisPoolConfig::new);
    }

    public static JedisConnectionFactory createFactory(RedisProperties properties) {
        return applyProperties(properties, new JedisConnectionFactory(jedisPoolConfig(properties)));
    }
}
Run Code Online (Sandbox Code Playgroud)

用例

我有字符串键"A","B","C" …

java spring redis spring-data-redis spring-boot

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

调用context.getResources()返回null

所以我想在我的项目中获得一个字符串资源但是当我打电话时context.getResources().getString(...),我得到一个NullPointerException.在调试模式下,我发现上下文不是null但是看着它的成员,我发现它mResources是null.为什么没有为活动上下文加载资源?

编辑

显然,这是触发异常的原因

public class MyActivity extends Activity {

    SomeClass someClass = new SomeClass(this);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
}


public class SomeClass {

    private final Context mContext;

    public SomeClass(Context context) {
        mContext = context;
        mContext.getResources().getString(R.string.app_name);
    }
}
Run Code Online (Sandbox Code Playgroud)

我不得不按照CommonsWare的建议将初始化someClass移到后面.谢谢.super.onCreate()

android nullpointerexception android-context

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

执行CompletableFuture的多个thenAccept块的顺序是什么

所以我有一个方法返回一个CompletableFuture.在返回之前,此方法添加一个块,thenAcceptCompletableFuture完成后执行该块.

此方法的调用者还添加了另一个块thenAccept.显然,这可以继续多个链式调用.

调用CompletionStage返回的顺序是什么thenAccept?是否保证是添加它们的顺序?如果没有,如何保证它们按照添加顺序执行?

PS:我根据自己的经验CompletableFuture本文提出这个问题

java java-8 completable-future

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

OpenCV 打开/关闭移动像素的位置

我目前正在使用 OpenCV 2.4 对二进制图像进行形态学变换

我刚刚注意到,使用 OpenCV 的内置函数,我所有像素的位置都向右和向下移动了一个(即之前位于 (i,j) 的像素现在位于 (i+1, j+1) )

import cv2
import numpy as np
from skimage.morphology import opening

image = cv2.imread('input.png', 0)
kernel = np.ones((16,16), np.uint8)

opening_opencv = cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel)

opening_skimage = opening(image, kernel)

cv2.imwrite('opening_opencv.png', opening_opencv)
cv2.imwrite('opening_skimage.png', opening_skimage)
Run Code Online (Sandbox Code Playgroud)

输入 :

输入

输出 :

open_opencv

由于我不明白为什么,我只是使用skimage绑定了相同的操作,并且在形态转换过程中并没有产生这种“间隙”。

输出:

open_skimage

关于这个问题的任何想法?

谢谢 !

python opencv mathematical-morphology

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

Marshmallow:无法从服务执行Settings.System.canWrite(Context)

我有一个在后台运行的NotificationListener服务,当我执行Settings.System.canWrite(Settings.java:3742)时会抛出异常

12-03 18:25:33.490    2754-2771/? W/System.err? java.lang.SecurityException: uid 10057 does not have android.permission.UPDATE_APP_OPS_STATS.
12-03 18:25:33.490    2754-2771/? W/System.err? at android.os.Parcel.readException(Parcel.java:1599)
12-03 18:25:33.490    2754-2771/? W/System.err? at android.os.Parcel.readException(Parcel.java:1552)
12-03 18:25:33.490    2754-2771/? W/System.err? at com.android.internal.app.IAppOpsService$Stub$Proxy.checkOperation(IAppOpsService.java:327)
12-03 18:25:33.490    2754-2771/? W/System.err? at android.app.AppOpsManager.checkOpNoThrow(AppOpsManager.java:1536)
12-03 18:25:33.490    2754-2771/? W/System.err? at android.provider.Settings.isCallingPackageAllowedToPerformAppOpsProtectedOperation(Settings.java:8425)
12-03 18:25:33.490    2754-2771/? W/System.err? at android.provider.Settings.isCallingPackageAllowedToWriteSettings(Settings.java:8320)
12-03 18:25:33.490    2754-2771/? W/System.err? at android.provider.Settings$System.canWrite(Settings.java:3742)
Run Code Online (Sandbox Code Playgroud)

这是因为提供的Context是一种服务,因为从活动调用时不会发生这种情况.

android android-permissions android-6.0-marshmallow

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

嵌套的对象列表的Spring配置属性元数据json

如何为嵌套的对象列表配置spring配置元数据json?

脚本

@ConfigurationProperties(prefix = "custom-config")
public class ConfigProperties {

    private boolean booleanProperty;
    private List<NestedObject> listProperty = new LinkedList<>();

    //getters and setters
}

public class NestedObject {

    private String stringProperty;
    private boolean booleanProperty;

    //getters and setters

}
Run Code Online (Sandbox Code Playgroud)

这是元数据json中自动生成的内容

{
  "groups": [{
    "name": "custom-config",
    "type": "testing.config.properties.ConfigProperties",
    "sourceType": "testing.config.properties.ConfigProperties"
  }],
  "properties": [
    {
      "name": "custom-config.boolean-property",
      "type": "java.lang.Boolean",
      "sourceType": "testing.config.properties.ConfigProperties",
      "defaultValue": false
    },
    {
      "name": "custom-config.list-property",
      "type": "java.util.List<testing.config.properties.NestedObject>",
      "sourceType": "testing.config.properties.ConfigProperties"
    }
  ],
  "hints": []
}
Run Code Online (Sandbox Code Playgroud)

如何在java代码或json中配置子属性?

如下所示,编辑器无法识别子属性.

在此输入图像描述

java spring json spring-mvc

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

什么导致了产量的差异?

在CodinGame.com上解决了这个问题,我设法编写了一个代码,通过了最后一个测试用例的系统测试(一个非常大的测试用例).但是在我的笔记本电脑上编译我得到的输出为0而不是57330892800,代码从他们的机器给我.我用Visual Studio 2012 Express和Dev C++ 4.9.9.2编译.

我使用了一个递归函数,所以如果我的堆栈内存不足,我就会发现堆栈溢出错误,但是没有错误,没有错误,只有0的输出.为什么这会在我的系统上发生,而它工作得很好该网站的机器?什么可能导致这一点,我怀疑它是堆栈溢出?

#include<iostream>
#include<algorithm>
#include<stack>
#include<string>
#include<map>
#include<set>
#include<vector>

using namespace std;
typedef long long LONG;


string X[]={".-","-...","-.-.","-..",
            ".","..-.","--.","....",
            "..",".---","-.-",".-..",
            "--","-.","---",".--.",
            "--.-",".-.","...","-",
            "..-","...-",".--","-..-",
            "-.--","--.."};
map<string, int> dict;

string morse(const string ret){
        string s;
        for(char c : ret) s+=X[c-'A'];
        return s;
}

LONG decode(int start, string &word, vector<LONG> &mem){
        if(start == word.size()) return 1;
        else if(mem[start] != -1) return mem[start];

        LONG res = 0;
        string s;
        for(int i=0; i<19*4 && …
Run Code Online (Sandbox Code Playgroud)

c++ runtime-error

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

ZonedDateTime成功解析但输出字符串不同

我正在使用ZonedDateTime解析并根据时区获取当前时间.

当我解析以下内容时String,解析成功但输出String不同.这是为什么?

String dateTimeString = "2016-05-04T12:58:22+01:00[Europe/Paris]";
ZonedDateTime dateTime = ZonedDateTime.parse(dateTimeString, ISO_ZONED_DATE_TIME);
System.out.println(dateTimeString);
System.out.println(dateTime.toString());
Run Code Online (Sandbox Code Playgroud)

产量

2016-05-04T12:58:22+01:00[Europe/Paris]
2016-05-04T12:58:22+02:00[Europe/Paris]
Run Code Online (Sandbox Code Playgroud)

在哪一点它决定改变+1+2,为什么没有异常抛出?

我知道括号中的参数[Europe/Paris]是可选的,但这里它优先于偏移量.

另一方面,以下代码

String dateTimeString = "2016-05-04T12:58:22+01:00";
ZonedDateTime dateTime = ZonedDateTime.parse(dateTimeString, ISO_ZONED_DATE_TIME);
System.out.println(dateTimeString);
System.out.println(dateTime.toString());
Run Code Online (Sandbox Code Playgroud)

产生输出

2016-05-04T12:58:22+01:00
2016-05-04T12:58:22+01:00
Run Code Online (Sandbox Code Playgroud)

java java-8 zoneddatetime

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

使用 spring 社交直播推特流

我正在从事一个项目,我必须从社交网络(Twitter、Facebook 等)收集用户的实时流。我想使用Twitter Users Streams Api从注册用户那里获取实时推文更新,分析这些更新,然后将结果存储在数据库中。

我正在使用 spring 框架来注册用户,并且我会注册一个线程侦听器来获取实时推文。Spring框架可以做到这一点吗?如果是这样,我该怎么做,我无法通过 Google 搜索找到有用的信息。如果没有,最好的方法是什么?

twitter spring spring-social spring-social-twitter

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