小编yur*_*s87的帖子

没有版本的maven依赖

最近我一直在研究一段时间前开发的项目的一些改进,这就是我发现的.pom文件中的许多依赖项没有指定版本,但它们已被解析.该项目由1个根模块和2个子模块组成.使用聚合器模式,这意味着根本没有dependencyManagement部分.上层项目简单地聚合了2个模块,这就是它所做的一切.子项目不会将其称为父项.他们有不同的父母.我无法理解的是既没有子项目本身也没有它们的父项(事实上,它也没有依赖管理)为某些依赖项指定了版本.例如:

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>javax.mail-api</artifactId>
</dependency>
<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
</dependency>
<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>imap</artifactId>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jul-to-slf4j</artifactId>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题吗?maven是否使用某种默认策略处理版本控制?什么是默认策略?

java maven-3 spring-io

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

无法从java 8流中的静态上下文引用非静态方法

我正在讨论来自http://www.concretepage.com/java/jdk-8/java-8-unaryoperator-binaryoperator-example的例子.

我发现真正令人困惑的是,当我在形成收集器时错误地将错误的类型放入泛型中时,java编译器给了我一个非常误导性的消息:

无法从静态上下文引用非静态方法

我的错误与现实中的静态vs实例上下文无关:

Map<String, Map<Integer, Integer>> mapOfStudents = list.stream().collect(Collectors.groupingBy(Student::getClassName,
            Collectors.toMap(Student::getName, Student::getAge)));
Run Code Online (Sandbox Code Playgroud)

我的错误在于泛型返回类型.当我纠正它并把:

Map<String, Map<String, Integer>> mapOfStudents
Run Code Online (Sandbox Code Playgroud)

一切都恢复正常.

有人可以解释这种令人困惑的错误信息背后的原因吗?我确信这是一个很好的,但我没有抓住它.

编辑:

~$ java -version
openjdk version "1.8.0_121"
OpenJDK Runtime Environment (build 1.8.0_121-8u121-b13-0ubuntu1.16.04.2-b13)
OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)
Run Code Online (Sandbox Code Playgroud)

java intellij-idea java-8

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

Intellij Idea可以自动进行更改

经过几天的工作后,我决定看看git statusGit Bash 做了些什么.

有些文件在Changes to be committed list,有些是在Changes not staged for commit.有趣的是,我从来没有明确地向临时区域添加任何东西.决不!那些文件到底有什么可能呢?

除了编码我曾做过git pull一次git stash/stash pop.而已.

有任何想法吗?

git intellij-idea

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

"可能由于冲突解决"在空的挑选消息中意味着什么?

当您尝试挑选已在当前分支中的提交时,该消息

The previous cherry-pick is now empty, possibly due to conflict resolution.
Run Code Online (Sandbox Code Playgroud)

将会显示.

这个意思很清楚.

但是,该消息显然涵盖了其他一些情况,我不理解另一种情况 - 可能是由于解决冲突. 冲突解决如何使提交成为空?

git

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

我应该在基于控制器的 Spring Webflux 服务中使用 Flow 作为返回类型吗

我正在尝试在我们的下一个 Spring Boot 服务中使用 Kotlincoroutinesspring-data-r2dbc( )。databaseClient我已经熟悉这两个概念,但当我们更深入地研究实现细节时,我开始问自己这个问题。

在我看到的大多数示例中,每个返回某种集合的端点在迁移到反应式方法时都会返回 Flow。

虽然没有其他(非阻塞)方法可以使用Mono/来完成此操作Flux,但由于我们想将订阅移交给 engine( Webflux),但情况与 Kotlin 非常不同Flows。Flow 的终端操作是挂起的,这使得它们本质上是非阻塞的。这意味着我可以在获取 Flow 的时间和地点以非阻塞方式终止 Flow,然后继续执行常规操作List

当然,可能存在更复杂的场景,包括底层热门发布者、反应式传输/协议等,但就我而言,这是一个非常传统的服务。我们决定使用反应式方法的唯一原因是它受 IO 限制:对于每个 API 调用,我们需要通过 HTTP/REST 从多个其他服务获取数据,然后执行一些数据库查询,然后返回组合结果。List所以,问题是:如果我可以当场将 Flow 简化为常规层(例如在存储库中),那么将 Flow 分散到多个应用程序层(控制器、服务、存储库)中是否有意义:

    suspend fun findByEvent(id: String): List<MyEntity> =
        databaseClient.execute(MY_QUERY)....all().asFlow().toList()
Run Code Online (Sandbox Code Playgroud)

这样我的应用程序层的其余部分甚至不会知道任何事情Flow(无论如何,整个调用链将保持可挂起状态)?

kotlin spring-boot spring-webflux spring-data-r2dbc kotlin-coroutines

6
推荐指数
0
解决办法
626
查看次数

Mongo部分AND TTL索引

是否可以基于 和 创建复杂partialFilterExpression索引expireAfterSeconds?我想要进行基于 TTL 的清理,但我也想仅对某些记录执行此操作。我尝试使用命令创建这样的索引:

db.expirational.createIndex(
   { created_on : 1 },
   {  expireAfterSeconds : 20, partialFilterExpression: { rating: 2 } }
)
Run Code Online (Sandbox Code Playgroud)

我的记录是这样的:db.expirational.insert({ 'name': 'record4', 'rating' : 1, 'created_on' : new Date() })

TTL 部分工作并清理集合,但它不关心partialFilterExpression: { rating: 2 }.

是预期的吗?我的命令不正确吗?如果没有,我们应该创建一个功能请求吗?我发现这样的用例非常有用。

indexing mongodb mongodb-query

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

使用DecimalStyle

我无法理解DecimalStyle如何影响我使用DateTimeFormatter进行格式化/解析.如果我尝试:

date = LocalDateTime.now();
DecimalStyle ds = DecimalStyle.of(Locale.GERMAN);
formatter = DateTimeFormatter.ofPattern("yyyy").withDecimalStyle(ds.withDecimalSeparator('?'));
text = formatter.format(date);
System.out.println("DecimalStyle: " + text);
Run Code Online (Sandbox Code Playgroud)

我不应该得到类似的东西:输出中的2.016?我实际看到的是,无论我设置什么参数ds,它都不会影响实际格式化的String.这是java 8 API,不幸的是,在互联网上找不到多少.

java java-8 java-time

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

使用 GenerationType.AUTO 的 h2 测试找不到序列“HIBERNATE_SEQUENCE”

我正在尝试将我们的一项服务迁移到 Spring Boot 2.0.3。虽然大多数测试都很好,但其中一个失败并出现错误:

Caused by: org.h2.jdbc.JdbcSQLException: Sequence "HIBERNATE_SEQUENCE" not found; SQL statement:
call next value for hibernate_sequence [90036-197]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
    at org.h2.message.DbException.get(DbException.java:179)
    at org.h2.message.DbException.get(DbException.java:155)
    at org.h2.command.Parser.readSequence(Parser.java:5970)
    at org.h2.command.Parser.readTerm(Parser.java:3131)
    at org.h2.command.Parser.readFactor(Parser.java:2587)
Run Code Online (Sandbox Code Playgroud)

这真的很令人困惑,因为所有实体都依赖于相同的代 ID 机制:

@GeneratedValue(strategy = GenerationType.AUTO)
Run Code Online (Sandbox Code Playgroud)

这是一个存储库测试,存储库本身非常简单:

@Repository
public interface OrderDetailsRepository extends JpaRepository<OrderDetails, Long> {

    OrderDetails findFirstByOrderIdOrderByIdDesc(String orderId);
}
Run Code Online (Sandbox Code Playgroud)

这里可能出现什么问题?

PS:而且,是的,实体中同时存在orderIdId字段。

java hibernate h2 spring-boot

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

java 8流中的副作用

Oracle文档中有几件我无法完全理解的内容:

Operations like forEach and peek are designed for side effects;
Run Code Online (Sandbox Code Playgroud)

他们所说的"设计"是什么意思?这两个人有什么特别之处?我可以编写我的代码,以便任何流API方法通过副作用工作.据我所知,这完全取决于我.更重要的是,我通常会使用peek()来修改元素的状态,而不是源本身,这不会使其变为有状态或副作用.

forEach的javadoc也说:

The behavior of this operation is explicitly nondeterministic.
Run Code Online (Sandbox Code Playgroud)

当他们对findAny说同样的话时我明白了,但对于forEach有什么不确定性?如果未对流进行排序,则并行流中的任何操作都不能保证排序.为什么只为forEach提到了非确定性(和finAny,但它意味着有点不同)?

对于peek和forEach,javadoc还包含:

action may be performed at whatever time and in whatever thread the library chooses
Run Code Online (Sandbox Code Playgroud)

再次,为什么只有那里?为什么不提及其余的操作呢?

side-effects java-8 java-stream

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

Kotlin MockK:io.mockk.MockKException:找不到答案

这是我的代码片段:

@Test
fun `request should return anon id if query param present`(@MockK(relaxed = true) req: ServerRequest)
Run Code Online (Sandbox Code Playgroud)

我正在使用 JUnit5(木星)。我得到的例外是:

io.mockk.MockKException: no answer found for: ServerRequest(#1).cookies()

这很奇怪,因为如果我理解relaxed正确,我的 ServerRequest 实例应该总是有一些value

为什么不是我的情况?

kotlin junit5 junit-jupiter mockk

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

显式使用EntityManager和Spring Data存储库

我什么时候需要明确地使用EntityManager方法(我对我的Service方法中的clear(),close(),flush(),detach()特别感兴趣,这些方法还可以使用Spring Data repos?

我最感兴趣的是对该主题的一般见解.让我们说在一个应用程序中我发现了这个:

    for ( MyEntity myEntity: entities) {
        ...some logic here
        mySpringDataRepo.save ( myEntity );
    }
    entityManager.flush ();
    entityManager.clear ();
Run Code Online (Sandbox Code Playgroud)

我发现EntityManager的这种使用是合理的,因为内存可以用实体重载.但是,在另一个代码段中:

    mySpringDataRepository.save(entity);
    entityManager.detach(entity);
Run Code Online (Sandbox Code Playgroud)

是否有必要明确分离实体?Spring Data不会单独处理它吗?

我也发现这篇文章:http: //newscentral.exsees.com/item/de38b01b7a9f794a124e2c72b97d1103-c5533957a4140e3c51e7d295ec840d08

让我更加困惑的是.

至于close()方法,我相信没有必要在EE环境中调用它.我对么?

PS:我的配置非常主流:JpaTransactionManager/LocalContainerEntityManagerFactoryBean

java spring spring-data spring-data-jpa

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