关于最终属性的属性文件中Spring注入的简单问题.
我有一个属性文件,我想存储一个文件路径.通常当我使用属性文件时,我使用类似这样的东西设置类属性:
private @Value("#{someProps['prop.field']}") String someAttrib ;
Run Code Online (Sandbox Code Playgroud)
然后在我的spring.xml
我会有类似的东西:
<util:properties id="someProps"
location="classpath:/META-INF/properties/somePropFile.properties" />
Run Code Online (Sandbox Code Playgroud)
这很好用,很简单,使代码更好,更整洁.但我不确定在尝试将属性值注入最终类属性时使用的最佳模式是什么?
显然是这样的:
private static final @Value("#{fileProps['dict.english']}") String DICT_PATH;
Run Code Online (Sandbox Code Playgroud)
不管用.还有另外一种方法吗?
干杯!
如果我在Spring XML中设置了2个.properties文件,那么:
<util:properties id="serverProperties" location="file:./applications/MyApplication/server.properties"/>
<util:properties id="someConfig" location="file:./applications/MyApplication/config.properties"/>
Run Code Online (Sandbox Code Playgroud)
如何通过注释将这些属性文件注入到bean中java.util.Properties
?
如何通过Spring注释获取特定属性?
干杯!
我环顾四周但没有找到答案,所以我想确认一下.
假设我有一个固定大小的线程池 - ExecutorService pool = Executors.newFixedThreadPool(5);
我有一些代码:
pool.execute(new Runnable(){
try{
Object waitForMe = doSomethingAndGetObjectToWaitFor();
waitForMe.wait();
doSomethingElse();
}catch(Exception e){ throw new RunTimeException(e) }
});
Run Code Online (Sandbox Code Playgroud)
让我们假设上面的代码被称为几百次.池中只有5个线程(因此上述语句中只有5个应该在一个点上存在).还假设wait()
在一个对象上对一个thrid方做了一些I/O调用,并在操作完成时等待回调,所以它自然需要一段时间才能完成.
现在我的问题是当其中一个任务到达a时的行为是什么wait()
,任务是否进入休眠状态,然后线程池中的线程从队列中取出另一个任务并开始运行它?
如果正在等待的任务进入睡眠状态,当它获得notify()
并唤醒时会发生什么?线程是否返回到线程池的队列(前面或后面)并等待,直到5个线程中的一个可以继续执行它(即调用doSomethingelse()
)?或者正在执行它的线程是否也进入休眠状态,即5个执行程序线程中的一个正在等待任务(这是我假设的)?或者执行程序线程是否接受另一个任务,并在第一个任务从wait()返回时被中断?
我正在使用Camel&Spring开发Java项目.我们想在Spring完成它的事情并且Camel完成构建所有路由之后在单例bean上触发初始化方法.
我们不能在类创建时调用该方法,因为它与从@Component spring注释中获取的其他类具有动态链接,并且我们不知道这些类何时/是否已经加载到实际运行init方法作为a的一部分构造函数.
如何在Camel启动完成后立即调用一个或多个方法来运行?
谢谢!
我有一些较大的方法,我试图在Java中进行优化.我一直在使用jVisualVM来完成我的大部分分析,因为它提供了方法调用热点,是一个很好的起点.
我正在寻找的是一个逐行热点分析器,可以帮助我缩短这么长时间.我过去使用的繁琐工作只是战略性地放置System.currentTimeMillis()打印,在更极端的情况下使用Java CPUTime(通过JNI完成).有一些像英特尔平行放大器这样的分析器可以与C&Visual Studio一起使用,但对于Java有什么类似的吗?
这两个选项都有点乏味,所以有什么(Eclipse插件或其他)可以进行逐行热点分析吗?
我正在尝试使用最新的Play 2和Scala插件运行IntelliJ 13.1中的一个类型安全激活器项目.
我可以通过类型安全激活器运行项目没有问题但是当我尝试通过build.sbt
IntelliJ中的文件打开激活器项目时,它似乎一直工作,直到我尝试通过Play 2 App运行配置运行该事物.我收到以下错误;
"C:\Program Files\Java\jdk1.8.0\bin\java" -Dfile.encoding=UTF8 -Djline.terminal=none -Dsbt.log.noformat=true -Dsbt.global.base=C:\Users\nw\AppData\Local\Temp\sbt-global-plugin5970836074908902993stub -Xms512M -Xmx1024M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M -classpath C:\Users\nw\.IntelliJIdea13\config\plugins\Scala\launcher\sbt-launch.jar xsbt.boot.Boot run
Getting org.fusesource.jansi jansi 1.11 ...
:: retrieving :: org.scala-sbt#boot-jansi
confs: [default]
1 artifacts copied, 0 already retrieved (111kB/37ms)
Getting org.scala-sbt sbt 0.13.0 ...
:: retrieving :: org.scala-sbt#boot-app
confs: [default]
43 artifacts copied, 0 already retrieved (12440kB/109ms)
Getting Scala 2.10.2 (for sbt)...
:: retrieving :: org.scala-sbt#boot-scala
confs: [default]
5 artifacts copied, 0 already retrieved (24390kB/62ms)
[info] …
Run Code Online (Sandbox Code Playgroud) 我正在开发一个大型文本分类项目,我们将文本数据(简单消息)存储在HBase中.
我们有两个问题,首先我们想使用HBase作为Mahout分类器的来源,即Bayers和Random Forests.
其次,我们希望能够存储在HBase中生成的模型,而不是使用内存方法(InMemoryBayesDatastore),但随着我们的集合的增长,我们遇到了内存利用率问题,并希望测试HBase作为一种可行的替代方案.
使用带有Mahout的HBase似乎很少有材料浮动,如果可以将它用作潜在的数据源.我在Java中使用Mahout 0.6核心API,它具有InMemory数据存储区.
做一点挖掘我相信那里有一个HBase Bayers数据存储组件 - org.apache.mahout.classifier.bayes.datastore.HBaseBayesDatastore
请参见旧版JavaDoc:http://www.jarvana.com/jarvana/view/org/apache/mahout/mahout-core/0.3/mahout -core-0.3-javadoc.jar!/org/apache/mahout/classifier/bayes/datastore/HBaseBayesDatastore.html
但是,看看最新的文档看起来这个功能已经消失了......?https://builds.apache.org/job/Mahout-Quality/javadoc/
我想知道是否仍然可以使用HBase作为Bayers和RandomForests的数据源,这是否有任何先前的用例?
谢谢!
我刚刚从cloudera(3)安装了hadoop和hbase,但是当我尝试去http:// localhost:60010时,它只是坐在那里不断加载.
我可以很好地访问regionserver - http:// localhost:60030 ...查看主hbase服务器日志我可以看到以下内容.
看起来像根区域的问题.
所有这些都安装在运行Ubuntu(Natty)11的ext4 1TB分区上.没有集群/其他盒子.
任何帮助都会很棒!
11/05/15 19:58:27 WARN master.AssignmentManager: Failed assignment of -ROOT-,,0.70236052 to serverName=localhost,60020,1305452402149, load=(requests=0, regions=0, usedHeap=24, maxHeap=995), trying to assign elsewhere instead; retry=0
org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed setting up proxy interface org.apache.hadoop.hbase.ipc.HRegionInterface to /127.0.0.1:60020 after attempts=1
at org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:355)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:957)
at org.apache.hadoop.hbase.master.ServerManager.getServerConnection(ServerManager.java:606)
at org.apache.hadoop.hbase.master.ServerManager.sendRegionOpen(ServerManager.java:541)
at org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:901)
at org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:730)
at org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:710)
at org.apache.hadoop.hbase.master.AssignmentManager$TimeoutMonitor.chore(AssignmentManager.java:1605)
at org.apache.hadoop.hbase.Chore.run(Chore.java:66)
Caused by: java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567)
at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:408)
at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.setupIOstreams(HBaseClient.java:328)
at org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:883) …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在Windows Vista x64机器和Ruby 1.92环境中使用Eclipse(安装了DLTK)调试Ruby脚本.
我安装了ruby-debug19,ruby-debug-base19,ruby-debug-ide19 gems,但我仍然无法使用Eclipse调试Ruby脚本.它说以下,
调试引擎未启动选择了"Fast Ruby Debugger(ruby-debug)",但似乎没有在所选的Ruby解释器(C:\ Ruby192\bin\ruby.exe)中安装'ruby-debug'gem.
我还将该c:\Ruby192\lib\ruby\gems
文件夹添加到Eclipse中Ruby解释器设置的系统库路径中.
我该如何解决这个问题?
这是一个设计问题;
假设我有一组演员,他们会做一堆处理.处理由客户端/连接参与者启动(即树是服务器).最终客户端演员想要一个响应.即我有一个看起来像这样的演员系统.
ActorA <---reqData--- Client_Actor
| msgA /|\
\|/ |
ActorB |
msgB | \ msgD |
\|/ \/ |
ActorC ActorD---------msgY-->|
|_____________msgX_________|
Run Code Online (Sandbox Code Playgroud)
客户端系统想要的响应是叶子参与者的输出(即ActorC
和/或ActorD
).树中的这些参与者可能正在与外部系统进行交互.该树可以是一组预定义的可能路由的演员(即,Client_actor
只有一个actorref到演员树的根,ActorA
).
问题是管理将最终/叶子演员的响应(msgX
和/或msgY
)发送回客户端演员的最佳模式是什么?
我可以想到以下几种选择;
msgX
或msgY
发送给原始发件人引用时,将消息传递回树中.即每个演员都会保留原始发件人的参考号.Client_Actor
ref reqData
并为树中使用的所有消息复制它,以便叶子演员可以直接回复Client_actor
...这似乎是最高性能的选项.不知道如何做到这一点(我在某种方式上考虑了包含客户端参与者的消息案例类的特征)...仅供参考我正在使用Akka 2.2.1.
干杯!
java ×5
spring ×3
eclipse ×2
hadoop ×2
hbase ×2
properties ×2
scala ×2
akka ×1
akka-cluster ×1
apache-camel ×1
cloudera ×1
concurrency ×1
database ×1
debugging ×1
mahout ×1
nosql ×1
performance ×1
profiler ×1
ruby ×1
rubygems ×1
sbt ×1
sbt-idea ×1
threadpool ×1