小编use*_*610的帖子

如何将@Value定义为可选

我在Spring bean中有以下内容:

@Value("${myValue}")
private String value;
Run Code Online (Sandbox Code Playgroud)

正确注入该值.但是,变量必须是可选的,它作为命令行参数传递(然后使用SimpleCommandLinePropertySource将其添加到Spring上下文中),并且此参数不会始终存在.

为了提供默认值,我尝试了以下两种方法:

@Value("${myValue:}")
@Value("${myValue:DEFAULT}")
Run Code Online (Sandbox Code Playgroud)

但是在每种情况下,冒号后的默认参数即使存在实际值也会被注入 - 这会覆盖Spring应该注入的内容.

指定不需要@Value的正确方法是什么?

谢谢

spring spring-bean

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

使用Elasticsearch Java API检索特定字段

我正在使用Java API进行Elasticsearch.将实体保存到索引中后,可以将它们与完整的源一起检索.但是,我只想检索选定的字段,这是行不通的.

下面的示例代码:

SearchResponse response = client.prepareSearch("my-index")
   .setTypes("my-type")
   .setSearchType(SearchType.QUERY_AND_FETCH)
   .setFetchSource(true)
   .setQuery(QueryBuilders.termsQuery("field1", "1234"))
   .addFields("field1")
   .execute()
   .actionGet();

for (SearchHit hit : response.getHits()){
   Map<String, SearchHitField> fields = hit.getFields();
   System.out.println(fields.size());
   Map map = hit.getSource();
   map.toString();
}
Run Code Online (Sandbox Code Playgroud)

将从索引中检索正确的实体,包括完整的源.

例如,这是响应的片段:

"hits" : {
  "total" : 1301,
  "max_score" : 0.99614644,
  "hits" : [ {
  "_index" : "my-index",
  "_type" : "my-type",
  "_id" : "AU2P68COpzIypBTd80np",
  "_score" : 0.99614644,
  "_source":{"field1":"1234", ...}]}
}, {
Run Code Online (Sandbox Code Playgroud)

然而,虽然response.getHits()回报命中的预期数量,fields以及source每个命中内是空的.

我期望每个匹配包含行中指定的字段:

.addFields("field1")
Run Code Online (Sandbox Code Playgroud)

评论出来

.setFetchSource(true)
Run Code Online (Sandbox Code Playgroud)

将导致响应根本不包括源.

Elasticsearch的版本是1.5.0

以下是Java API的maven依赖:

<dependency>
   <groupId>com.sksamuel.elastic4s</groupId> …
Run Code Online (Sandbox Code Playgroud)

elasticsearch

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

UITapGestureRecognizer无法正常工作

UITapGestureRecognizer对我不起作用,我想知道是否有人可以提供帮助.

这是我的视图定义:

@interface MainDisplayView : UIView <UIGestureRecognizerDelegate>
Run Code Online (Sandbox Code Playgroud)

在实现中,我在一个肯定被调用的方法中有这个:

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(goToPrevious:)];
[tapRecognizer setDelegate:self];
[tapRecognizer setNumberOfTapsRequired:1];
[tapRecognizer setNumberOfTouchesRequired:1];
[myView addGestureRecognizer:tapRecognizer];
Run Code Online (Sandbox Code Playgroud)

以及这种方法:

- (void)goToPrevious:(UITapGestureRecognizer*)recognizer {
    NSLog(@"GO TO PREVIOUS");
}
Run Code Online (Sandbox Code Playgroud)

我在模拟器中测试,然后单击"myView" - 但没有任何反应.非常感谢!

编辑了代码格式.

iphone

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

如何在Spark中定义全局读/写变量

Spark有broadcast变量(只读)和accumulator变量,可以是节点更新,但不能读取.有没有办法 - 或者一种解决方法 - 来定义一个既可以更新又可以读取的变量?

这种读/写全局变量的一个要求是实现缓存.当文件作为rdd加载和处理时,执行计算.这些计算的结果 - 发生在并行运行的几个节点中 - 需要放在一个映射中,该映射具有正在处理的实体的一些属性的关键.当处理rdd中的后续实体时,将查询缓存.

Scala确实有ScalaCache,它是缓存实现的外观,如Google Guava.但是如何在Spark应用程序中包含和访问这样的缓存?

缓存可以定义为驱动程序应用程序中的一个变量,用于创建SparkContext.但那会有两个问题:

  • 由于节点和驱动程序应用程序之间的网络开销,性能可能会很糟糕.
  • 根据我的理解,当传递给rdd的函数首次访问变量时,每个rdd都将传递变量的副本(在本例中为缓存).每个rdd都有自己的副本,不能访问共享的全局变量.

实现和存储此类缓存的最佳方法是什么?

谢谢

apache-spark

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

Spring:将@Qualifier与Property Placeholder一起使用

我试图使用属性占位符作为@Qualifier的属性,如下所示:

@Autowired
@Qualifier("${beanName}")
private MyBean myBean;
Run Code Online (Sandbox Code Playgroud)

但是,即使属性占位符作为String值可用,这也不起作用:

@Value("${beanName}")
private String beanName;
Run Code Online (Sandbox Code Playgroud)

这里有什么好的解决方法,非常感谢.

spring

8
推荐指数
2
解决办法
4678
查看次数

蓖麻:嵌套元素

给定以下域对象:

public class Domain {
   private String field1 = "one";
   private String field2 = "two";
}
Run Code Online (Sandbox Code Playgroud)

应该如何构造mapping.xml文件,以便XML输出如下所示:

<DomainObjects>
  <row field1="one">
      <field2>two</field2>
  </row>
<DomainObjects>
Run Code Online (Sandbox Code Playgroud)

其中" DomainObjects"是静态标签.

非常感谢

castor

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

在Spark中使用Futures

Spark作业为RDD中的每个元素创建远程Web服务.一个简单的实现可能看起来像这样:

def webServiceCall(url: String) = scala.io.Source.fromURL(url).mkString
rdd2 = rdd1.map(x => webServiceCall(x.field1))
Run Code Online (Sandbox Code Playgroud)

(以上示例保持简单,不处理超时).

RDD的不同元素的任何结果之间没有相互依赖性.

通过使用Futures通过对RDD的每个元素并行调用Web服务来优化性能,可以改善上述内容吗?或者Spark本身是否具有内置的优化级别,以便它将并行运行RDD中每个元素的操作?

如果使用Futures可以优化上述内容,是否有人会有一些代码示例显示在传递给Spark RDD的函数中使用Futures的正确方法.

谢谢

scala apache-spark

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

将Spring Batch JdbcCursorItemReader与NamedParameters一起使用

在Spring Batch的JdbcCursorItemReader可以接受preparedStatementSetter

<bean id="reader" class="org.springframework.batch.item.database.JdbcCursorItemReader">
   <property name="dataSource" ref="..." />
   <property name="sql" value="SELECT * FROM test WHERE col1 = ?">
   <property name="rowMapper" ref="..." />
   <property name="preparedStatementSetter" ref="..." />
</bean>
Run Code Online (Sandbox Code Playgroud)

如果sql使用此方法,效果很好作为占位符,如上例所示。但是,我们预先存在的sql使用命名参数,例如SELECT * FROM test WHERE col1 = :param

有没有办法让一个JdbcCursorItemReader工作与NamedPreparedStatementSetter,而不是一个简单的PreparedStatementSetter?

谢谢

spring-batch

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

ac #project中定义的是"私有访问者"

在Visual Studio 2015中构建旧版C#应用程序后,存在以下警告:

不建议使用此任务来创建私有访问者,并将在Visual Studio的未来版本中删除.

警告引用解决方案中的项目,该项目仅包含单元测试.

Microsoft dcumentation声明:

在Visual Studio的早期版本中,您可以使用Publicize.exe指定内部应用程序编程接口(API)并创建可在测试中调用的公共对应API,这些API又会调用产品的内部API.然后,您可以使用代码生成来创建测试存根,并在该存根中生成代码片段.

在Visual Studio 2012中删除了此功能.

搜索解决方案时,任何构建文件中都没有引用publicize.exe.

在C#项目中,定义创建私有访问器的任务是什么?

.net c# visual-studio

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

Spring无法识别一些@Configuration和@Component类

我有 - 或者更确切地说有 - 一个正在运行的 Spring 应用程序,在 IntelliJ 中运行。它包含几个用 、 注释的类@Configuration和几个@Componentbean。在某个时刻,发生了以下情况:

  1. Intelli 开始在代码编辑器中显示错误,指出“无法自动装配。未找到‘xxx’类型的 bean ”。但也有这样的 Bean 带有注释@Component

  2. @Component未达到特定 bean 构造函数中的断点。但并非所有豆类都是如此@Component

  3. 在调试模式下运行时,@Configuration无法到达某些文件中的断点,即使调试器之前已停止在那里。如果应用程序使用这些@Componentbean 之一自动装配,则应用程序将会失败。

  4. 应用程序启动时没有错误,但显然没有在@Configuration被调用的类中配置多个 bean。

包含运行 Spring Boot 应用程序的 main 方法的类用 进行注释@SpringBootApplication@Component与此类位于同一包中的类会被识别并可以自动装配,甚至可以自动装配到其他包中的类中。

我不知道代码或项目中有任何内容会发生变化。

在File -> Project Settings -> Modules下,Spring Application Context下现在已选择所有@Configuration文件。然而这没有什么区别。

也尝试过Build -> Rebuild Project

类所在的包没有改变。以前有人见过这样的事情吗?

谢谢

spring intellij-idea spring-boot

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