我在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的正确方法是什么?
谢谢
我正在使用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) 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" - 但没有任何反应.非常感谢!
编辑了代码格式.
Spark有broadcast
变量(只读)和accumulator
变量,可以是节点更新,但不能读取.有没有办法 - 或者一种解决方法 - 来定义一个既可以更新又可以读取的变量?
这种读/写全局变量的一个要求是实现缓存.当文件作为rdd加载和处理时,执行计算.这些计算的结果 - 发生在并行运行的几个节点中 - 需要放在一个映射中,该映射具有正在处理的实体的一些属性的关键.当处理rdd中的后续实体时,将查询缓存.
Scala确实有ScalaCache
,它是缓存实现的外观,如Google Guava
.但是如何在Spark应用程序中包含和访问这样的缓存?
缓存可以定义为驱动程序应用程序中的一个变量,用于创建SparkContext
.但那会有两个问题:
实现和存储此类缓存的最佳方法是什么?
谢谢
我试图使用属性占位符作为@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)
这里有什么好的解决方法,非常感谢.
给定以下域对象:
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
"是静态标签.
非常感谢
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的正确方法.
谢谢
在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?
谢谢
在Visual Studio 2015中构建旧版C#应用程序后,存在以下警告:
不建议使用此任务来创建私有访问者,并将在Visual Studio的未来版本中删除.
警告引用解决方案中的项目,该项目仅包含单元测试.
Microsoft dcumentation声明:
在Visual Studio的早期版本中,您可以使用Publicize.exe指定内部应用程序编程接口(API)并创建可在测试中调用的公共对应API,这些API又会调用产品的内部API.然后,您可以使用代码生成来创建测试存根,并在该存根中生成代码片段.
在Visual Studio 2012中删除了此功能.
搜索解决方案时,任何构建文件中都没有引用publicize.exe
.
在C#项目中,定义创建私有访问器的任务是什么?
我有 - 或者更确切地说有 - 一个正在运行的 Spring 应用程序,在 IntelliJ 中运行。它包含几个用 、 注释的类@Configuration
和几个@Component
bean。在某个时刻,发生了以下情况:
Intelli 开始在代码编辑器中显示错误,指出“无法自动装配。未找到‘xxx’类型的 bean ”。但也有这样的 Bean 带有注释@Component
。
@Component
未达到特定 bean 构造函数中的断点。但并非所有豆类都是如此@Component
。
在调试模式下运行时,@Configuration
无法到达某些文件中的断点,即使调试器之前已停止在那里。如果应用程序使用这些@Component
bean 之一自动装配,则应用程序将会失败。
应用程序启动时没有错误,但显然没有在@Configuration
被调用的类中配置多个 bean。
包含运行 Spring Boot 应用程序的 main 方法的类用 进行注释@SpringBootApplication
。@Component
与此类位于同一包中的类会被识别并可以自动装配,甚至可以自动装配到其他包中的类中。
我不知道代码或项目中有任何内容会发生变化。
在File -> Project Settings -> Modules下,Spring Application Context下现在已选择所有@Configuration
文件。然而这没有什么区别。
也尝试过Build -> Rebuild Project。
类所在的包没有改变。以前有人见过这样的事情吗?
谢谢
spring ×3
apache-spark ×2
.net ×1
c# ×1
castor ×1
iphone ×1
scala ×1
spring-batch ×1
spring-bean ×1
spring-boot ×1