我使用番石榴缓存,我想保持最大大小可配置。我尝试使用@value进行此操作,但问题是在@value注入之前创建了私有成员缓存。如何从配置属性中读取此大小?下面给出了我当前使用的代码
@Component
public class DataProcessor {
@Value("${cacheSize}")
private long cacheSize;
@Value(value = "${rawSensorDataTopic}")
private String rawSensorDataTopic;
private LoadingCache<String, DataPacketGroup> rfPacketsCache = CacheBuilder.newBuilder().maximumSize(cacheSize)
.concurrencyLevel(1).expireAfterWrite(15, TimeUnit.MINUTES)
.build(new CacheLoader<String, DataPacketGroup>() {
@Override
public DataPacketGroup load(String key) throws Exception {
return null;
}
});
您可以将缓存创建放在带有@PostConstruct
@Component
public class DataProcessor {
@Value("${cacheSize}")
private long cacheSize;
@Value(value = "${rawSensorDataTopic}")
private String rawSensorDataTopic;
private LoadingCache<String, DataPacketGroup> rfPacketsCache;
@PostConstruct
private void createcache() {
CacheBuilder.newBuilder().maximumSize(1000)
.concurrencyLevel(1).expireAfterWrite(15, TimeUnit.MINUTES)
.build(new CacheLoader<String, DataPacketGroup>() {
@Override
public DataPacketGroup load(String key) throws Exception {
return null;
}
});
}
如果构造bean并注入属性,则将执行此方法
问题内容: 我只是想将一些C代码转换为Java,而却遇到了一些麻烦。 在C中,要基于变量获取特定宽度,我可以使用: 并将其格式化为基于的特定大小。 试: 导致错误,因为它不喜欢。 我目前有以下问题: 但我希望有一种更好的方法,是吗? 问题答案: 在使用前声明一个额外的变量: (这是我从网络搜索中找到的第一个解决方案)
我已经创建了一个Java记录,并且希望有一个构造函数,与默认构造函数相比,它可以接受更少的参数,并根据给定的参数计算和初始化所有成员。 然而,我发现这很难实现,因为自定义构造函数的第一行必须调用默认构造函数。我目前的方法是根据需要调用计算函数,但这会导致不必要的处理。 肯定有更好的方法来实现这一点吗?
我试图使用OpenCSV将CSV文件解析成对象列表,这样我就可以将学生数据加载到我的学生团队分配器系统中。 我一直在“将记录解析为Java对象”的标题下遵循本指南 在一些依赖性问题之后,我让它输出一个学生对象列表,但是CSV列没有像应该的那样绑定到成员字段。打印测试为每个对象的字段返回空值。 我在Student中有两个构造函数,一个初始化3个字段,另一个为空。我知道当前使用的是空的,因为删除这个会
问题内容: 我如何使用该字段注入包含Map的属性文件,以用作其他构造函数arg。 从属性文件加载地图 该bean当前使用以下命令进行设置: 相当于Java: 谢谢 问题答案: 像这样: 这利用了使用任意静态工厂方法创建bean的能力,在这种情况下,使用工厂工厂方法来创建bean,然后将其注入到的适当构造函数中。
当我尝试在我的字段中添加十进制输入时,例如:12.54。它表示以下文本:请输入一个有效的值。两个最接近的有效值是12和13。 它不允许我在字段中键入十进制输入。。。。 我如何解决这个问题?
给予 什么是?它是实现定义的还是未定义的行为?C和C的答案不同吗?