小编Mel*_*ius的帖子

识别幂等操作冲突的最佳 Http 代码是什么

我开发了 res 服务,每次调用都使用唯一的 id 参数,但是当多次使用相同的 id 时,它应该检索相同的响应,并且第一次检索到状态代码指定错误,我正在寻找最好的状态代码,一些帖子使用“ 409 Conflict”和一些“ 406 Not Acceptable”,该使用哪个?

rest http-status-codes

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

将父/子关系的java arrayList转换为树?

我有一堆父/子对,我想尽可能转变为分层树结构.例如,这些可能是配对:

Child : Parent
    H : Ga
    F : G
    G : D
    E : D
    A : E
    B : C
    C : E
    D : NULL
    Z : Y
    Y : X
    X: NULL
Run Code Online (Sandbox Code Playgroud)

需要转化为(a)层次结构树:

   D
    ??? E
    ?   ??? A
    ?   ?   ??? B
    ?   ??? C   
    ??? G
    |   ??? F
    |   ??? H
    |
    X
    |
    ??? Y
        |
        ???Z
Run Code Online (Sandbox Code Playgroud)

在Java中,我如何从包含child => parent对的arrayList转到像那样的Tree?

我需要这个操作的输出是arrayList包含两个元素D和X依次每个都有它的子列表,其中又包含一个子列表等等

public class MegaMenuDTO {
    private String Id;
    private String name;
    private …
Run Code Online (Sandbox Code Playgroud)

java

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

在构建之前将jar添加到maven本地存储库

我有第三部分jar文件远程不存在项目目录中的文件,我想在执行mvn install时将此jar添加到本地存储库中,我当前的代码是这样做的

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-install-plugin</artifactId>
    <version>2.4</version>
    <executions>
        <execution>
            <phase>initialize</phase>
            <goals>
                <goal>install-file</goal>
            </goals>
            <configuration>
                <groupId>myJar1.0</groupId>
                <artifactId>myJar1.0</artifactId>
                <version>1.0</version>
                <packaging>jar</packaging>
                <file>myJar1.0.jar</file>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

java maven

4
推荐指数
2
解决办法
1419
查看次数

在webflux中,WebFilter和HandlerFilterFunction有什么区别

WebFilter在 spring webflux 中,和 之间有什么区别HandlerFilterFunction

我如何创建一个filter用于特定用途的URI

java spring spring-webflux

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

Webflux,如何拦截请求并添加新标头

使用Webflux过滤器,我试图拦截请求并检查请求是否来自某些URI然后添加一个新的Authorization标头

过滤器代码简单明了

@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class AuthorizationFilter implements WebFilter {

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {

        return chain.filter(Optional.of(exchange)
                .filter(serverWebExchange -> serverWebExchange.getRequest().getURI().getPath().endsWith("/callback"))
                .map(serverWebExchange -> addNewHeader(serverWebExchange))
                .orElse(exchange));
    }

    private ServerWebExchange addNewHeader(ServerWebExchange serverWebExchange) {

        String authHeader=serverWebExchange.getRequest().getQueryParams().get("state").get(0);

        if (authHeader == null) {
            throw new BadRequestException("State not complete (access_token missing) for //callback");
        }

        try {
            serverWebExchange.getRequest().getHeaders().setBearerAuth(authHeader);
        }catch (Throwable t){
            t.printStackTrace();
        }

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

但是会抛出异常

java.lang.UnsupportedOperationException
    at org.springframework.http.ReadOnlyHttpHeaders.set(ReadOnlyHttpHeaders.java:99)
    at org.springframework.http.HttpHeaders.setBearerAuth(HttpHeaders.java:774)
Run Code Online (Sandbox Code Playgroud)

标题映射似乎是只读的。我怎样才能克服这个问题并添加新的标题?

java spring spring-webflux

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

带有查询参数的 Spring webflux WebTestClient

在我的 webflux 应用程序中,我有这个GET端点

v3/callback?state=cGF5bWVudGlkPTRiMmZlMG
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用编写集成测试 WebTestClient

@Test
public void happyScenario() {
    webTestClient.get().uri("/v3/callback?state=cGF5bWVudGlkPTRiMmZlMG")
            .exchange()
            .expectStatus()
            .isOk();
}
Run Code Online (Sandbox Code Playgroud)

这个测试用例返回404 notFound,如果我删除了查询参数,它将被调用,但state参数将丢失

我试着用 attribute

  webTestClient.get().uri("/v3/callback")
            .attribute("state","cGF5bWVudGlkPTRiMmZlMG")
            .exchange()
            .expectStatus()
            .isOk();
Run Code Online (Sandbox Code Playgroud)

但仍然state缺少参数,使用时如何在请求中包含查询参数webTestClient

java testing spring-webflux

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

如何从另一个 Flux 中排除 Flux 中的所有元素

我有两个Fluxs 一个是成功元素,另一个是错误元素

Flux<String> success= Flux.just("Orange", "Apple", "Banana","Grape", "Strawberry");
Flux<String> erroneous = Flux.just("Banana","Grape",);
Run Code Online (Sandbox Code Playgroud)

如何过滤第一个Flux以排除第二个元素中的所有元素?

java spring stream project-reactor

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

弹簧数据中的@Transient不起作用

我有Settlement实体

@Entity
@Table(name = "settlement")
public class Settlement {

    @ManyToOne
    @JoinColumn(name = "subscription_x_product_id")
    private ProductSubscription productSubscription;
Run Code Online (Sandbox Code Playgroud)

ProductSubscription实体有关

@Entity
@Table(name = "subscriptionproduct")
public class ProductSubscription {
    @ManyToOne
    @JoinColumn(name = "product_id")
    private Product product;
Run Code Online (Sandbox Code Playgroud)

Product实体有关

@Entity
public class Product {
    @Transient
    private String enabled;
Run Code Online (Sandbox Code Playgroud)

Product实体中我有enabled一个注释的字段@org.springframework.data.annotation.Transient.我也有存储库

public interface SettlementRepository extends JpaRepository<Settlement, Integer>
Run Code Online (Sandbox Code Playgroud)

当我打电话给SettlementRepository.findAll(); 它时给予例外Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid column name 'enabled'.

如何忽略enabled从DB加载的字段?

java spring hibernate jpa spring-data

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

git父母和祖先之间的逻辑区别是什么

我知道我可以找到几十个问题有关的区别 HEAD^HEAD~

  • ~ 指定 ancestors
  • ^ 指定 parents

我的问题是关于意义的差异parentsancestors。对我来说,父母和祖先是一样的。

父母与祖先之间的逻辑区别是什么?

Git中的HEAD ^和HEAD〜有什么区别?没有回答我的问题,我的问题是关于这两个术语的逻辑含义。

git

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

不兼容的类型。找到:'org.springframework.beans.factory.annotation.Value',必需:'long'

我有一个调度程序来清理数据库

@Scheduled(fixedDelay = @Value("#{new Long('${clean_up.period}')}"))
public void cleanStatInfoTable() {
    List<StateInfo> infoLis=stateInfoRepository.findAllByCreatedDateBefore(LocalDateTime.now().minusHours(1));
    stateInfoRepository.deleteInBatch(infoLis);
}
Run Code Online (Sandbox Code Playgroud)

但它会产生编译错误

不兼容的类型。找到:'org.springframework.beans.factory.annotation.Value',必需:'long'

我也尝试了表格, @Scheduled(fixedDelay = @Value("${obi.payments.state_info.clean_up.period}")) 但仍然是同样的问题

如何将long值注入到注释fixedDelay中的属性中Scheduled

java spring inject

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