我试图了解如何国际化使用emberjs开发的网络应用程序.
我发现ember-i18n包我认为是一个很好的解决方案,但我无法理解如何使用它.
我看到了很多这种模式.
在服务器上:
// Get a bounded number of results, along with a resume token to use
// for the next call. Successive calls yield a "weakly consistent" view of
// the underlying set that may or may not reflect concurrent updates.
public<T> String getObjects(
int maxObjects, String resumeToken, List<T> objectsToReturn);
Run Code Online (Sandbox Code Playgroud)
在客户端:
// An iterator wrapping repeated calls to getObjects(bufferSize, ...)
public<T> Iterator<T> getIterator(int bufferSize);
Run Code Online (Sandbox Code Playgroud)
大多数地方都推出了这两种方法的自己版本,并且实现起来非常困难.有很多边缘案例错误.
这些查询是否有规范的配方或库?
(您可以对服务器端存储进行一些简化假设,例如T具有自然顺序).
成功安装声纳和声纳运行器后,我面临着这个问题。当我在项目/ sonar-runner中运行时,显示错误。有人可以帮忙吗?
错误:无法访问声纳服务器“ http:// localhost:9000” 信息:------------------------------------------------ ------------------------ INFO:执行失败 信息:------------------------------------------------ ------------------------ 总时间:0.109s 最终内存:0M / 87M 信息:------------------------------------------------ ------------------------ 错误:Sonar跑步者执行期间发生错误 org.sonar.runner.kevinsawicki.HttpRequest $ HttpRequestException:java.net.ConnectException:org.sonar.runner.kevinsawicki.HttpRequest.code(HttpRequest.java:1392)拒绝连接 在org.sonar.runner.kevinsawicki.HttpRequest.ok(HttpRequest.java:1417) 在org.sonar.runner.impl.ServerVersion.downloadVersion(ServerVersion.java:47)上的org.sonar.runner.impl.ServerConnection.downloadString(ServerConnection.java:93) 在org.sonar.runner.impl.ServerVersion.version(ServerVersion.java:38) 在org.sonar.runner.impl.ServerVersion.is37Compatible(ServerVersion.java:58) 在org.sonar.runner.impl.JarDownloader.checkVersionAndDownload(JarDownloader.java:36)在org.sonar.runner.impl.BatchLauncher $ 1.run(BatchLauncher.java:71)在java.security.AccessController.doPrivileged(本机方法) )在org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)在org.sonar.runner.api.EmbeddedRunner上的org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69)处。 doExecute(EmbeddedRunner.java:102) 在org.sonar.runner.Main.execute(Main.java)的org.sonar.runner.Main.executeTask(Main.java:70)的org.sonar.runner.api.Runner.execute(Runner.java:100) :59)at org.sonar.runner.Main.main(Main.java:53)原因:java.net.ConnectException:连接被拒绝 在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)处 在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)在java.lang.reflect.Constructor.newInstance(Constructor.java:534)在sun.net.net.www.protocol.http.HttpURLConnection $ 6.run(HttpURLConnection.java:1544)上的net.www.protocol.http.HttpURLConnection $ 6.run(HttpURLConnection.java:1548) java.net上sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1542)上的本机方法).http.HttpURLConnection.getInputStream(HttpURLConnection.java:1193) org.sonar.runner.kevinsawicki.HttpRequest.code(HttpRequest.java:1390)上的HttpURLConnection.getResponseCode(HttpURLConnection.java:397)...还有15个
下面提到的声纳记录是:
->包装器开始作为守护程序
正在启动JVM ...
包装器(版本3.2.3)http://wrapper.tanukisoftware.org
版权所有1999-2006 Tanuki Software,Inc.保留所有权利。
WrapperSimpleApp:无法找到类org.sonar.application.App:java.lang.UnsupportedClassVersionError:org / sonar / application / App:不支持的major.minor版本51.0
WrapperSimpleApp用法:
java org.tanukisoftware.wrapper.WrapperSimpleApp {app_class} [app_arguments]
哪里:
app_class:要运行的应用程序的标准类名称。
app_arguments:通常会传递给
应用。
我正在构建一个 Spring 后端。我有一个控制器,它获取一个“搜索对象”——一个包含 10 个字段的对象,只应填充其中一个字段,因此编写了搜索函数(我没有编写但需要对其进行更改和重构)像这样:
if( param1 != null ) user = getUserByParam1(param1);
else if ( param2 != null ) user = getUserByParam2(param2);
.
.
.
else if(lastName != null || lastName != null) user = getUserByName(firstName, lastName);
else user = getUserById(id);
if(user == null) throw costumException;
return user;
Run Code Online (Sandbox Code Playgroud)
注意最后的 2 个特殊情况——其中一个检查 2 个参数的可用性,而不是一个,并将它们都发送到同一个函数(它可以处理一个字段中的 null,但不能同时处理两个字段),以及默认情况正在传递一个 ID(如果它不是 - 它if (user == null)在抛出异常之后由检查处理)。
有没有办法重构这段代码以使其更具可读性/好看?我可以使用任何设计模式或已知方法来做到这一点吗?或者它实际上是编写这种功能的最佳方式?
我想了很多,但找不到更好的方法。我有一个想法,以某种方式将填充的字段名称及其值发送到另一个函数,该函数将在字段名称上“切换大小写”并将值发送到适当的函数,但它并没有真正节省多少代码(因为我仍然需要手动迭代所有字段以找到已填充的字段)而且我不确定它是否更具可读性。
我对 Java 也很陌生,所以我不知道所有可用的 API 和接口,也许您可以向我寻求帮助。
我需要一个简单的英语解释"schema",如数据库模式和XML模式.
编辑:当有人说要创建数据库模式时,是否意味着为表中的字段创建约束?
我在 22 个文件夹中有 660000 个 xml 文件(具有唯一的文件名)。每个文件夹有 30000 个文件。我需要在 C# 应用程序中有效地按名称找到它们。我知道 Windows(?Vista+?) 中有一个 SearchIndexer 服务,我只是想知道我是否可以使用它,或者我必须自己索引文件?
或者,我想我可以创建一个数据库,文件名是另一列中的主键和路径。但是,我应该创建一个包含 660000 行的表还是 22 个包含 30000 行的表?为什么?
提前致谢。
我正在开发一个项目,将来自多台机器的日志数据合并到一个数据库中.
我必须记录方案:
我正在使用logback和JMS."Client"记录到JMS Queue,"Server"读取表单队列并写入DB.
我正在寻找一种区分两种类型日志的简单方法.我想要做的是创建另一个日志级别,例如"审计",然后我可以在"服务器"端检查并创建我们的特殊对象结构并写入我们的单独数据库.
但是这在logback中是不可能的.我考虑过标记,但这意味着开发人员必须明确应用标记.我的另一个选择是拥有两个独立的记录器,并让开发人员获取正确的记录器.这并不像我想的那么强烈.
我希望开发人员只需要log.debug进行调试,log.error进行错误,log.audit进行审计.
任何建议,任何人都必须解决类似的问题?
我尝试使用 TopicExchange 来屏蔽消息。
配置:
<rabbit:connection-factory id="connectionFactory" host="localhost" username="guest" password="guest"/>
<rabbit:template id="rabbitTemplate" connection-factory="connectionFactory"/>
<rabbit:queue name="sample.queue"/>
<rabbit:admin id="rabbitAdmin" connection-factory="connectionFactory" />
<bean id="rabbitListenerContainerFactory"
class="org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory">
<property name="connectionFactory" ref="connectionFactory"/>
</bean>
<rabbit:annotation-driven container-factory="rabbitListenerContainerFactory"/>
<rabbit:listener-container connection-factory="connectionFactory" />
Run Code Online (Sandbox Code Playgroud)
成分:
@Component
public class JmsComponent {
private final Logger log = LoggerFactory.getLogger(JmsComponent.class);
private final TopicExchange exchange = new TopicExchange("sample.exchange");
@Autowired
private RabbitTemplate rabbitTemplate;
@Autowired
private Queue queue;
private String received;
public void send(String msg) {
rabbitTemplate.convertAndSend("sample.queue", new SimpleMessage(msg));
}
public void bindToKey(String keyMask) {
BindingBuilder.bind(queue).to(exchange).with(keyMask);
rabbitTemplate.setExchange(exchange.getName());
}
public void sendByKey(String …Run Code Online (Sandbox Code Playgroud) 如果我有一个List包含对象
new MyObj("some"),
new MyObj("foo"),
new MyObj("bar"),
new MyObj("xyz");
Run Code Online (Sandbox Code Playgroud)
并希望在匹配某些条件后使用Java 8流对其进行过滤,例如
myObj.prop = "foo";
Run Code Online (Sandbox Code Playgroud)
如何实现?
以上示例的结果应为
new MyObj("some"),
new MyObj("foo")
Run Code Online (Sandbox Code Playgroud)
那将是“传统”的方式:
List<MyObj> results = new ArrayList<>();
for (MyObj myObj : myObjList) {
if (!myObj.prop.equals("foo")) {
results.add(myObj);
} else {
results.add(myObj);
break;
}
}
Run Code Online (Sandbox Code Playgroud)
它不是谓词限制流的重复,因为它不包含匹配的元素。但是,我应该能够适应takeWhile操作。
java ×6
c# ×2
database ×2
spring ×2
xml ×2
.net ×1
c#-4.0 ×1
directory ×1
ember.js ×1
file ×1
java-8 ×1
java-stream ×1
javascript ×1
jms ×1
logback ×1
logging ×1
pagination ×1
rabbitmq ×1
refactoring ×1
schema ×1
sonar-runner ×1
sonarqube ×1