我有使用SpringMVC的以下Controller代码:
@Controller
@Scope("prototype")
@RequestMapping("/messages")
public class MessageController {
@RequestMapping(value="/index", method=RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public String displayAllMessages(ModelMap model) {
System.out.println(this.hashCode());
// processing
return "messages";
}
}
Run Code Online (Sandbox Code Playgroud)
当使用时@Scope("prototype"),每个请求都会出现,输出this.hashCode()不同,这意味着当每个请求到来时,MessageController将创建一个新实例.
如果不使用@Scope("prototype"),默认将是@Scope("singleton"),每个请求到来,输出this.hashCode()相同,意味着只MessageController创建一个实例.
我不确定什么时候应该使用@Scope("prototype"),什么时候不用?
我有2个代码示例:
int[] idx = { 0 };
List<String> list = new ArrayList<String>();
list.add("abc");
list.add("def");
list.add("ghi");
list.stream().forEach(item -> {
System.out.println(idx[0] + ": " + item);
idx[0]++;
});
Run Code Online (Sandbox Code Playgroud)
好好工作.
虽然此代码有编译错误:
int idx = 0;
List<String> list = new ArrayList<String>();
list.add("abc");
list.add("def");
list.add("ghi");
list.stream().forEach(item -> {
System.out.println(idx + ": " + item);
idx++;
});
Run Code Online (Sandbox Code Playgroud)
他说:
Local variable idx defined in an enclosing scope must be final or effectively final.
Run Code Online (Sandbox Code Playgroud)
唯一的区别是idxint或int数组.
根本原因是什么?
在 JSX 中,我们可以动态地指示属性值,例如:
<div className={this.state.className}>This is a div.</div>
Run Code Online (Sandbox Code Playgroud)
是否可以动态指示属性(包括属性名称和属性值)?喜欢:
const value = emptyValue ? "" : "value='test'";
<input {value} />
Run Code Online (Sandbox Code Playgroud)
这意味着,一旦emptyValue为真,“输入”标签不应包含“值”属性(值=“”与没有值属性不同,因为一个在输入字段中显示为空,另一个在输入字段中显示现有文本)。
我有以下代码来运行EMR作业,并且它成功运行.我还想监控运行状态.我使用DescribeJobFlowsAPI,但它表示根据http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/elasticmapreduce/AmazonElasticMapReduceClient.html不推荐使用此API .
有人可以帮助监控EMR运行进度的最佳实践吗?
public class EmrJobRunner {
public static void main(String[] args) {
// args is [input_file_path, output_directory], make sure output_directory does not exist
String inputFilePath = "s3://mybucket/emr/input";
String outputDirectory = "s3://mybucket/emr/output/" + System.currentTimeMillis();
String jarName = "WordCount.jar";
String jarPath = "s3://mybucket/emr/" + jarName;
String logPath = "s3://mybucket/emr/logs";
String TERMINATE_JOB_FLOW = "TERMINATE_JOB_FLOW";
String CONTINUE = "CONTINUE";
AWSCredentials credentials = new BasicAWSCredentials("pub_key", "sec_key");
StepFactory stepFactory = new StepFactory();
AmazonElasticMapReduce emr = new AmazonElasticMapReduceClient(credentials);
emr.setRegion(Region.getRegion(Regions.AP_SOUTHEAST_1));
StepConfig enableDebugging = …Run Code Online (Sandbox Code Playgroud) 我正在使用MyBatis 3.2,并希望将Oracle DATE数据类型映射到Java org.joda.time.DateTime数据类型.
这是我的配置:
<resultMap id="something" type="com.myself.SomeClass">
<result property="creationDate" column="CREATION_DATE" javaType="org.joda.time.DateTime" />
</resultMap>
Run Code Online (Sandbox Code Playgroud)
但我得到以下错误:
Caused by: org.apache.ibatis.builder.BuilderException
: Error parsing SQL Mapper Configuration.
Cause : org.apache.ibatis.builder.BuilderException
: Error parsing Mapper XML.
Cause : java.lang.IllegalStateException
: No typehandler found for property creationDate
Run Code Online (Sandbox Code Playgroud)
我的配置是否正确?或者它是由我的Oracle数据类型DATE而不是DATETIME?MyBatis支持joda DateTime吗?
我正在执行一个insert into ... select ... from ... where ...SQL并使用以下错误Oracle:
java.sql.SQLException: ORA-12801: error signaled in parallel query server P004
ORA-01555: snapshot too old: rollback segment number 32 with name "_SYSSMU32_2039035886$" too small
Run Code Online (Sandbox Code Playgroud)
我阅读了以下文档:http : //www.dba-oracle.com/t_ora_12801_parallel_query.htm和http://www.dba-oracle.com/t_ora_01555_snapshot_old.htm
ORA-12801之所以这么说,是因为处理器数量不足,无法支持并行查询。ORA-01555错误与撤消存储不足或undo_retention参数的值太小有关。
但是,如何检查相关参数以避免此类问题再次发生?
如何从 JavaGraphTraversal对象输出 Gremlin 查询?默认输出 ( graphTraversal.toString()) 看起来[HasStep([~label.eq(brand), name.eq(Nike), status.within([VALID])])]不容易阅读。
Ruby的新手; 当我使用数组时,是否存在差异Enumerable#each_with_index,Array#index我一直在使用多维数组,我试图找到给定值的位置.当我使用其中任何一个时,我的代码都能够通过所有测试.坐标是我用来保存给定值的位置的数组(在本例中为1)
field=[[1,0],[0,0]]
coordinates=[]
field.each_with_index do |item|
if item.index(1)
coordinates.push(field.index(item)).push(item.index(1))
end
end
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.
我正在使用Jest作为ElasticSearch客户端来搜索文档:
JestClient client = ...;
Search search = ...;
SearchResult searchResult = client.execute(search);
List<Hit<T, Void>> hits = searchResult.getHits(klass);
Run Code Online (Sandbox Code Playgroud)
每个Hit对象看起来像:
{"_index":"some_index","_type":"some_type","_id":"some_id","_score":2.609438,"_source":{"foo1":"bar1","foo2":"bar2"}}
虽然我只能找到hit.source方法,但似乎没有hit.id方法.
将其解析为JSON对象并检索键_id的值是一种方式,但是有没有可以获取文档ID的API?
我有课User
public class User {
private String firstName;
private String lastName;
private int age;
public User withFirstName(String firstName) {
this.firstName = firstName;
return this;
}
public User withLastName(String lastName) {
this.lastName = lastName;
return this;
}
public User withAge(int age) {
this.age = age;
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
所以我可以使用 来初始化它User user = new User().withFirstName("Tom").withAge(30);,user初始化后,我仍然可以通过 来修改它user.withLastName("Bob").withAge(31);。
如何利用 Lombok 保存“withXXX”方法?@Builder 不是针对此用例设计的。
我是jQuery的新手,当我从HTML中选择一些类时,我可以通过$('.p')或者来做$('p').我很困惑,有区别吗?
我有类定义case class Name(firstName: String, lastName: Option[String])和一个字符串Name(Tom,Some(Bob)),如何将字符串转换为Name对象?
是否有一个 Java 库可以通过删除空格/特殊字符、小写所有字母来标准化字符串,例如:S-cube Abc' Inc.to scubeabcinc?