小编xen*_*ide的帖子

禁用psql输出中的NOTICES

如何阻止psql(PostgreSQL客户端)输出通知?例如

psql:schema/auth.sql:20:注意:CREATE TABLE/PRIMARY KEY将为表"users"创建隐式索引"users_pkey"

在我看来,程序应该保持沉默,除非它有错误,或输出东西的其他原因.

database postgresql verbosity

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

流式传输到新集合的集合

我正在寻找最无痛的方法来过滤集合.我在想类似的东西

Collection<?> foo = existingCollection.stream().filter( ... ). ...
Run Code Online (Sandbox Code Playgroud)

但我不确定如何最好从过滤器,返回或填充另一个集合.大多数例子似乎都像"在这里你可以打印".可能有一个我缺少的构造函数或输出方法.

java java-8 java-stream

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

如何使用Spring Boot提供不同的数据库配置?

我目前看到它有5个可能的数据库配置文件

  • CI测试 - > h2 mem
  • 开发人员环境(可以是测试或应用程序运行) - > h2 mem,或h2文件,或postgres
  • 制作 - > postgres(理想情况下凭证不存储在git/war中)

目前我已经配置了运行应用程序的postgres,并且h2配置为通过具有不同application.propertiesjava/resources vs 进行测试test/resources

在这些场景中更改数据库连接信息的最简单方法是什么?

java spring spring-boot

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

将"duration""Unit"转换为毫秒

我希望有一个看起来像的API

public static long toMillis ( long duration, ChronoUnit unit ) {
   // magic duration to millis
}

toMillis( 5, ChronoUnit.SECONDS); // 5000
Run Code Online (Sandbox Code Playgroud)

当然,我实际上并没有写作,toMillis但这基本上就是我想要做的.

java java-time

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

JPA中的Java 8 Date Time api

在jpa中集成Java 8 Date Time api的最佳方法是什么?

我添加了转换器:

@Converter(autoApply = true)
public class LocalDatePersistenceConverter implements AttributeConverter<LocalDate, Date> {

    @Override
    public Date convertToDatabaseColumn(LocalDate localDate) {
        return Date.valueOf(localDate);
    }

    @Override
    public LocalDate convertToEntityAttribute(Date date) {
        return date.toLocalDate();
    }
}
Run Code Online (Sandbox Code Playgroud)

@Converter(autoApply = true)
public class LocalDateTimePersistenceConverter implements AttributeConverter<LocalDateTime, Timestamp> {
    @Override
    public Timestamp convertToDatabaseColumn(LocalDateTime entityValue) {
        return Timestamp.valueOf(entityValue);
    }

    @Override
    public LocalDateTime convertToEntityAttribute(Timestamp databaseValue) {
        return databaseValue.toLocalDateTime();
    }
}
Run Code Online (Sandbox Code Playgroud)

一切似乎都很好,但我应该如何使用JPQL进行查询?我正在使用Spring JPARepository,目标是选择日期与给定日期相同的所有实体,唯一的区别是它作为LocalDateTime保存在实体中.

所以:

public class Entity  {

    private LocalDateTime dateTime;

    ...
}
Run Code Online (Sandbox Code Playgroud)

和:

@Query("select case …
Run Code Online (Sandbox Code Playgroud)

spring hibernate jpa java-8 spring-data-jpa

14
推荐指数
2
解决办法
6544
查看次数

什么是在Perl中解析RSS/Atom的最佳库?

我注意到自2005年以来XML :: RSS :: Parser尚未更新.这仍然是解析RSS或Atom的推荐库吗?有更好的方式还是更好的方式?

xml rss perl cpan atom-feed

13
推荐指数
3
解决办法
5670
查看次数

LWP :: UserAgent请求方法的真正超时

我正在尝试向不可靠的服务器实现请求.请求是一个很好的,但我的perl脚本不能100%成功完成.问题是服务器偶尔会死锁(我们试图找出原因)并且请求永远不会成功.由于服务器认为它是活动的,它会使套接字连接保持打开状态,因此LWP :: UserAgent的超时值对我们来说没有任何好处.对请求强制执行绝对超时的最佳方法是什么?

仅供参考,这不是DNS问题.死锁与大量同时访问Postgres数据库的更新有关.出于测试目的,我们基本上在服务器响应处理程序中放置了while(1){}行.

目前,代码如下所示:

my $ua = LWP::UserAgent->new;
ua->timeout(5); $ua->cookie_jar({});

my $req = HTTP::Request->new(POST => "http://$host:$port/auth/login");
$req->content_type('application/x-www-form-urlencoded');
$req->content("login[user]=$username&login[password]=$password");

# This line never returns 
$res = $ua->request($req);
Run Code Online (Sandbox Code Playgroud)

我尝试使用信号来触发超时,但这似乎不起作用.

eval {
    local $SIG{ALRM} = sub { die "alarm\n" };
    alarm(1);
    $res = $ua->request($req);
    alarm(0);
};
# This never runs
print "here\n";
Run Code Online (Sandbox Code Playgroud)

我将要使用的最终答案是有人离线提出的,但我会在这里提到它.出于某种原因,SigAction有效,而$ SIG(ALRM)却没有.仍然不确定为什么,但这已经过测试可行.这是两个工作版本:

# Takes a LWP::UserAgent, and a HTTP::Request, returns a HTTP::Request
sub ua_request_with_timeout {
    my $ua = $_[0];
    my $req = $_[1];
    # Get whatever timeout is set for …
Run Code Online (Sandbox Code Playgroud)

perl signals timeout lwp

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

关键字"no"在Perl中实际上做了什么?

之前的问题解决了我的问题,但让我缺乏理解.

use 5.014;
use warnings;
use Test::More;

# still has carp after no Carp
package Test0 {
    use Carp qw( carp );
    sub new {
        my $class = shift;
        my $self  = {};

        carp 'good';

        bless $self, $class;
        return $self;
    }
    no Carp;
}

my $t0 = Test0->new;

ok( ! $t0->can('carp'), 'cannot carp');
Run Code Online (Sandbox Code Playgroud)

这个测试没有通过,这意味着no ...没有做我认为它做的事情,包括不重要的符号.我已经读过了perldoc no,但它似乎确实相当令人失望.鉴于此代码的结果,我会说它并不完全符合它所宣传的内容.

怎么no办?何时以及为什么要使用它?

perl module

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

如何在Spring中为系统用户验证计划进程?

我们有一个Quartz/Spring Batch作业,为了审计日志记录的目的,我们希望将它作为系统用户进行"认证".我们的一些方法依赖于获取SecurityContext来执行此操作.运行此作业的方式是可信的(或经过身份验证).我们不想实际使用密码或其他令牌(因为该过程基本上总是由石英生成).

我试过这个

private void authenticate() {
    UserDetails admin = userDetailsService.loadUserByUsername( "admin" );

    RunAsUserToken token = new RunAsUserToken(
            UUID.randomUUID().toString(), admin, admin.getAuthorities(), null , null );

    Authentication user = authenticationManager.authenticate( token );

    if ( user.isAuthenticated() ) {
        SecurityContext sc = new SecurityContextImpl();
        sc.setAuthentication( user );
        SecurityContextHolder.setContext( sc );
    }
}
Run Code Online (Sandbox Code Playgroud)

但它导致了

org.springframework.security.authentication.ProviderNotFoundException: No AuthenticationProvider found for org.springframework.security.access.intercept.RunAsUserToken
Run Code Online (Sandbox Code Playgroud)

而且我不确定一些RunAsUserToken参数是做什么的(例如密钥)或者我应该在Credentials方面提供什么.

我如何验证或以其他方式设置安全上下文,就像它被认证为此用户一样?

java authentication spring spring-security spring-3

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

如何参数化Jenkinsfile作业

我有Jenkins管道工作,其中作业之间的唯一区别是参数,单个"名称"值,我甚至可以使用多分支作业名称(虽然不是它作为BRANCH名称的JOB_NAME传递的内容,遗憾的是没有envs看起来合适而无需解析).如果我可以设置Jenkinsfile的外部,那将是很好的,因为那时我可以为所有各种工作重用相同的jenkins文件.

jenkins jenkins-pipeline jenkins-declarative-pipeline

12
推荐指数
2
解决办法
4114
查看次数