小编Xiè*_*léi的帖子

如何创建临时目录?

我用来创建一个tempfile,删除它并将其重新创建为一个目录:

tmpnam=`tempfile`
rm -f $tmpnam
mkdir "$tmpnam"
Run Code Online (Sandbox Code Playgroud)

问题是,另一个进程可能会得到一个相同的名称X,如果它在一个进程之后rm -f X和之前意外地执行tempfile mkdir X.

bash temporary-directory

215
推荐指数
4
解决办法
12万
查看次数

如何在一个命令行中下载特定的Maven工件?

我可以通过安装工件install:install-file,但是如何下载工件?

例如:

mvn download:download-file -DgroupId=.. -DartifactId=.. -Dversion=LATEST
Run Code Online (Sandbox Code Playgroud)

maven-2

153
推荐指数
8
解决办法
16万
查看次数

Hibernate如何检测实体对象的脏状态?

它是否使用某种字节码修改原始类?

或者,也许Hibernate通过将给定对象与以前持久化的版本进行比较来获得脏状态?

我遇到了复杂对象的问题hashCode()equals()方法.如果对象具有集合成员,并且循环引用也是一个问题,我觉得计算哈希代码会很慢.

如果Hibernate不会使用hashCode()/ equals()来检查脏状态,我想我不应该使用equals()/ hashCode()作为实体对象(而不是值对象),但我也担心如果相同的operator(==)是不够的.

所以,问题是:

  1. Hibernate如何知道对象的属性是否发生了变化?

  2. 你建议覆盖复杂对象的hashCode()/ equals()方法吗?如果它们包含循环引用怎么办?

    并且,

  3. hashCode()/ equals()只有这个id领域就足够了?

java orm identity entity-relationship hibernate

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

如何禁用elasticsearch 5.0身份验证?

我刚刚开始使用elasticsearch.使用默认设置创建索引(5个分片,1个副本).然后我用附件插件索引~13G文本文件.结果,在Kibana Discover中搜索非常慢.但是,在控制台中搜索速度很快:

GET /mytext/_search
{
  "fields": [ "file.name" ],
  "query": {
    "match": {
      "file.content": "foobar"
    }
  },
  "highlight": {
    "fields": {
      "file.content": {
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

为了调查它为什么这么慢,我安装了X-Pack.指南文档似乎并不全面,我没有进入安全配置.

不必登录elasticsearch的默认安装,但必须在安装X-Pack插件后登录.我对elasticsearch,kibana,x-pack的安全设置感到困惑,他们分享用户帐户了吗?毕竟,我通过以下方式获得身份验证:

curl -XPUT -uelastic:changeme 'localhost:9200/_shield/user/elastic/_password' -d '{ "password" : "newpass1" }'
curl -XPUT -uelastic:newpass1 'localhost:9200/_shield/user/kibana/_password' -d '{ "password" : "newpass2" }'
Run Code Online (Sandbox Code Playgroud)

这就是问题所在.我无法使用Java客户端登录org.elasticsearch.plugin:shield.很可能最新版本的盾牌依赖(2.3.3)与弹性搜索依赖(5.0.0-alpha)不匹配.

好吧,我可以禁用身份验证吗?

从节点配置:

GET http://localhost:9200/_nodes

"nodes" : {
    "v_XmZh7jQCiIMYCG2AFhJg" : {
        "transport_address" : "127.0.0.1:9300",
        "version" : "5.0.0-alpha2",
        "roles" …
Run Code Online (Sandbox Code Playgroud)

authentication elasticsearch

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

配置Maven为不同的J2SE版本使用不同的JDK?

我想配置Maven2使用sun-java6-jdk构建Java SE 1.6模块,并使用openjdk-7构建Java SE 1.7模块.可能吗?

然后Maven2应该自动选择正确的JDK来在一个命令中构建不同的模块.

例如,它应该是

$ mvn package
Run Code Online (Sandbox Code Playgroud)

代替

$ cd module1
$ update-alternatives ... jdk6 ...
$ mvn package
...
$ cd module2
$ update-alternatives ... jdk7 ...
$ mvn package
Run Code Online (Sandbox Code Playgroud)

PS这是一无所知的pom.xml文件,这些文件已经设置maven-compiler-plugin不同<source>,<target>价值观不同的模块.如果我选择使用openjdk-7,Maven2将生成1.6版本的类文件,但是使用openjdk-7而不是sun-java6-jdk.问题是如何配置Java SE配置文件.

maven-2

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

如何在bash中同时支持短期和长期期权?

我想在bash脚本中支持短期和长期选项,因此可以:

$ foo -ax --long-key val -b -y SOME FILE NAMES
Run Code Online (Sandbox Code Playgroud)

可能吗?

bash getopt getopt-long

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

Bash间接数组寻址?

假设我有一些bash数组:

A1=(apple trees)
A2=(building blocks)
A3=(color television)
Run Code Online (Sandbox Code Playgroud)

和索引一样J=2,如何获取数组内容A2

arrays bash

26
推荐指数
3
解决办法
4182
查看次数

为什么DispatcherServlet会创建另一个应用程序上下文?

我已使用ContextLoaderListener和上下文init-parameter 配置了根应用程序上下文contextConfigLocation.

然后由JSF(*.jsf)变量解析器访问根上下文.它工作正常.

现在的问题是,通过的请求(*.do)DispatcherServlet将获得另一个应用程序上下文,然后单例bean被实例化两次.

我不需要另一个应用程序上下文DispatcherServlet,我如何指定它来重用现有的根应用程序上下文ContextLoaderListener

注意

在阅读了答案中的参考页面后,我知道根上下文和调度程序上下文之间存在上下文分离,但没有一个引用告诉我去哪里.所以这是我的解决方案,可能对面临类似问题的其他人有帮助:

  1. 在调度程序servlet的上下文配置XML中:dispatcher-servlet.xml,我<context:component-scan/>已经定义了重复,这已经在根上下文中定义.所以删除它.该dispatcher-servlet.xml只需要定义仅用于Spring MVC的那些豆子.

  2. 所有控制器都已在根上下文中进行扫描和实例化,但是,默认情况下,Spring MVC不会在根上下文中注册控制器以进行请求映射.你可以:

    2.1.在根上下文中,@Controller从dispatcher-servlet.xml中排除<component-scan>,@Controller仅扫描.

    2.2.或者,将属性设置DefaultAnnotationHandlerMapping.detectHandlersInAncestorContexts为true:

    (dispatcher-servlet.xml:)
    
    <bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
        <property name="detectHandlersInAncestorContexts" value="true" />
    </bean>
    
    Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc

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

如何将模块jar合并到Maven2中的单个jar?

我有一个带有几个jar模块的maven2项目,构建项目将获得目录模块/ XYZ/target/XYZ-xxxjar中每个模块的.jar存档

现在,如果我的项目P是版本Pp.qr,并且我想生成包含所有子模块的单个jar Pp.qr-all.jar,我该怎么办?

maven-2

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

如何知道Unicode字符的首选显示宽度(以列为单位)?

在Unicode的不同编码中,例如UTF-16leUTF-8,字符可能占用2或3个字节.许多Unicode应用程序不像处理所有拉丁字母那样处理Unicode字符的显示宽度.例如,在80列文本中,一行应包含40个中文字符或80个拉丁字母,但大多数应用程序(如Eclipse,Notepad ++和所有知名文本编辑器,我敢于有任何好的例外)只计算每个汉字作为拉丁字母的1宽度.这肯定会使结果格式变得丑陋且不对齐.

例如,制表符宽度为8将得到以下难看的结果(将所有Unicode计为1个显示宽度):

apple   10
banana  7
??      6
???     31
pear    16
Run Code Online (Sandbox Code Playgroud)

但是,预期的格式是(将每个汉字计为2个宽度):

apple   10
banana  7
??    6
???  31
pear    16
Run Code Online (Sandbox Code Playgroud)

对字符显示宽度的不正确计算使得这些编辑器在进行制表对齐,换行和段重组时完全没用.

虽然,字符的宽度可能会因不同的字体而异,但在固定大小的终端字体的所有情况下,汉字始终是双倍宽度.也就是说,尽管有字体,但每个汉字最好以2宽度显示.

解决方法之一是,我可以通过将编码转换为GB2312来获得正确的宽度,在GB2312编码中每个汉字占用2个字节.但是,GB2312字符集(或GBK字符集)中不存在某些Unicode字符.而且,一般来说,从编码大小(以字节为单位)计算显示宽度并不是一个好主意.

简单地计算(\u0080... \uFFFF)范围内Unicode中的所有字符,因为2宽度也不正确,因为在该范围内还散布着许多1宽度字符.

计算阿拉伯字母和韩文字母的显示宽度时也很困难,因为它们通过任意数量的Unicode代码点构造一个字/字符.

因此,Unicode代码点的显示宽度可能不是整数,我认为没关系,它们可以在实践中基于整数,至少比没有好.

那么,在Unicode标准中是否有与char的首选显示宽度相关的属性?或者任何Java库函数来计算显示宽度?

unicode text-formatting mbcs character-properties

16
推荐指数
3
解决办法
6121
查看次数