通常在重构throws
部分之后就变得不必要了。突出的IntelliJ他们灰色显示,它们可以被删除,但我想自动(就像未使用的进口得到通过去除删除ctrl+ alt+ O)。
问:有没有办法自动删除throws
类中未使用的部分?有没有捷径可走?
我在本地计算机上使用docker设置单节点基本Kafka部署,如Confluent Kafka文档中所述(步骤2-3).
另外,我还暴露了zookeeper的端口2181和kafka的端口9092,这样我就能从本地机器上运行的java客户端连接到它们:
$ docker run -d \
-p 2181:2181 \
--net=confluent \
--name=zookeeper \
-e ZOOKEEPER_CLIENT_PORT=2181 \
confluentinc/cp-zookeeper:4.1.0
$ docker run -d \
--net=confluent \
--name=kafka \
-p 9092:9092 \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092 \
-e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
confluentinc/cp-kafka:4.1.0
Run Code Online (Sandbox Code Playgroud)
问题:当我尝试从主机连接到kafka时,连接失败,因为它无法解析地址:kafka:9092.
这是我的Java代码:
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("client.id", "KafkaExampleProducer");
props.put("key.serializer", LongSerializer.class.getName());
props.put("value.serializer", StringSerializer.class.getName());
KafkaProducer<Long, String> producer = new KafkaProducer<>(props);
ProducerRecord<Long, String> record = new ProducerRecord<>("foo", 1L, "Test 1");
producer.send(record).get();
producer.flush();
Run Code Online (Sandbox Code Playgroud)
例外:
java.io.IOException: Can't resolve …
Run Code Online (Sandbox Code Playgroud) 我有一个PlayerView
以纵向占据片段的上半部分,下半部分显示一些文本。该片段是 a 的一部分ViewPager
,用户可以切换不同视频的屏幕。
问题:在屏幕之间导航(向右/向左滑动)时,PlayerView
有时会显示上一个屏幕的预览图像。它只显示了几分之一秒,然后显示了正确的预览图片,但它很明显。
问:如何让PlayerView
只显示正确的预览图片?它不应该与上一张图片一起闪烁。可能是我误用了某些东西(播放器或视图的错误实例化......)?如果这是一个已知问题(滑动时模糊视频等),可能有一些解决方法?任何建议/想法表示赞赏。
我的布局如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.exoplayer2.ui.PlayerView
android:id="@+id/video_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@id/video_view"
android:scrollbars="vertical" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
在片段代码中我有:
@Override
public void onStart() {
...
SimpleExoPlayer player = ExoPlayerFactory.newSimpleInstance(
getActivity(), new DefaultTrackSelector()
);
player.prepare(mediaSource);
playerView.setPlayer(player);
...
}
Run Code Online (Sandbox Code Playgroud)
编辑1。
根据评论部分的要求,我的文件PageAdapter
非常标准(就像 Android Studio 在创建选项卡式活动时生成的文件一样),具有唯一的扩展名 - 我将当前片段保存在其中,就像此处建议的那样。
我看了一看OpenJDK Docker存储库,发现Java 12没有JRE映像。Java11(openjdk:11.0.2-jre
)有一个JRE映像,但是12中只有JDK映像。
问:如何使用OpenJDK JRE 12在Docker中运行应用程序而不使用完整的JDK映像?
我有一个带有 Redis 缓存的 Spring Boot 2 应用程序。它工作得很好,直到我覆盖了CacheManager
bean。
问题:以下配置属性被忽略(我无法再关闭缓存):
spring.cache.type=none
Run Code Online (Sandbox Code Playgroud)
尽管根据文档它应该可以工作。
问:作品如何制作spring.cache.type=none
?
有一个像这样的解决方法,但它远不是一个好的解决方案。
更多详细信息:这是我的配置:
@Configuration
public class CacheConfiguration {
@Bean
RedisCacheWriter redisCacheWriter(RedisConnectionFactory connectionFactory) {
return RedisCacheWriter.lockingRedisCacheWriter(connectionFactory);
}
@Bean
CacheManager cacheManager(RedisCacheWriter redisCacheWriter) {
Map<String, RedisCacheConfiguration> ttlConfiguration = ...
RedisCacheConfiguration defaultTtlConfiguration = ...
return new RedisCacheManager(
redisCacheWriter, defaultTtlConfiguration, ttlConfiguration
);
}
}
Run Code Online (Sandbox Code Playgroud) 我有一种@Transactional
方法可以使用findById()
Spring Data 存储库请求记录。
现在我想以一种方式锁定这个对象,@Transactional
如果并行执行的其他方法将等到锁定被释放。
我尝试过的:我浏览了@Lock和LockModeType的文档,但我仍然无法弄清楚它是否涵盖了我的情况。
另一种选择是select for update
在数据库级别,但我不确定它是最佳选择。
Q:如何在spring数据事务中锁定一个Entity对象(db row)并使其他事务等待?
我在 AWS 中有一个 VPC。此 VPC 中有一个 EKS 和一个 ElastiCache/Redis。ElastiCahce 的安全组有一个入口规则,允许从 EKS 的安全组到端口 6379 的流量。EKS 的安全组有一个入口规则,允许传出流量到具有任何协议的任何 IP。
我尝试使用以下命令从 EKS 集群内的 pod 连接到 ElastiCache 节点redis-cli
:
redis-cli -h my-cache-instance.xxxx.yyyy.zzzz.cache.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
连接有效,但是如果我尝试运行任何 Redis 命令,它将失败:
my-cache-instance.xxxx.yyyy.zzzz.cache.amazonaws.com:6379> KEYS *
Error: Server closed the connection
(1.00s)
Run Code Online (Sandbox Code Playgroud)
问题:如何配置 ElastiCache 以允许从 EKS 连接?
注意:我可以使用redis-cli
VPN 从本地计算机进入 VPC。ElastiCahce 的安全组具有与 EKS 的入口规则相同的入口规则,以允许来自 VPN 安全组的访问。
amazon-web-services redis amazon-elasticache kubernetes amazon-eks
可以说我有一张地图Map<String, List<Integer>>
。
我想Map<String, Map<Integer, Object>>
通过convert()
对嵌套列表的每对键和元素应用方法来将此映射转换成映射。
Object convert(String key, Integer value)
Run Code Online (Sandbox Code Playgroud)
我该如何实现?
我尝试过这样的事情:
map.collect { key, list ->
key: list.collectEntries {
[(element): convert(key, element)]
}
}
Run Code Online (Sandbox Code Playgroud)
但是我得到了 ClassCastException: ArrayList cannot be cast to Map
。
问题:是否可以用var
IntelliJ IDEA中的实际类型替换所有声明?
上下文:我使用vars实现了一个大型功能,但事实证明,团队中的所有开发人员都反对使用vars,因此我不得不将其重新构造为实际类型。
java ×6
docker ×2
redis ×2
spring ×2
amazon-eks ×1
android ×1
apache-kafka ×1
confluent ×1
exoplayer ×1
exoplayer2.x ×1
github-pages ×1
groovy ×1
ide ×1
java-12 ×1
jekyll ×1
kubernetes ×1
ruby ×1
spring-boot ×1
spring-cache ×1