小编haj*_*ime的帖子

MongoDB的Spring Data MongoDB和Hibernate OGM有什么区别?

我之前没有使用过Spring Data,但是我已经多次使用Hibernate ORM用于基于MySQL的应用程序.我只是不明白为基于MongoDB的应用程序在两者之间选择哪个框架.

我已经尝试寻找答案,但我找不到在生产环境中对两者进行比较的答案.有没有人发现使用MongoDB使用这两个框架有问题?

spring mongodb spring-data spring-data-mongodb hibernate-ogm

32
推荐指数
2
解决办法
8584
查看次数

使用事件采购和CQRS有哪些缺点?

事件采购和CQRS是伟大的,因为它会赶走被卡住它的开发者一起工作的应用程序的生命周期,除非有一个大的数据迁移项目一个预建模的数据库开发人员.CQRS和ES还有其他好处,如扩展事件存储,审计日志等已经遍布互联网.

但有什么缺点呢?

以下是在研究和编写小型演示应用程序后我可以想到的一些缺点

  1. 复杂:有人说ES很复杂.但是我要说复杂的应用程序比复杂的数据库模型更好,在这种模型上你只能使用查询语言(多个连接,索引等)运行非常有限的查询.我的意思是像Scala这样的编程语言有非常丰富的集合库,它可以非常灵活地生成一些非常复杂的聚合,而且还有Apache Spark可以轻松查询分布式集合.但是数据库总是受限于它的查询语言功能,分发数据库比分布式应用程序代码更难(只需在另一台机器上部署另一个实例!).
  2. 磁盘空间使用率过高:事件存储最终可能会占用大量磁盘空间来存储事件.但是我们可以每隔几周安排一次清理并创建快照,也许我们可以在外部HD上本地存储历史事件,这只是因为我们将来需要旧事件吗?
  3. 高内存使用率:每个域对象的状态都存储在内存中,这可能会增加RAM的使用量,而且我们所有的RAM都是多么昂贵.大问题!!因为我很穷!任何解决方案?可能是使用Sqlite而不是在内存中存储状态?我是否通过在我的应用程序中引入多个Sqlite实例来使事情变得更复杂?
  4. 启动时间较长:失败或软件升级启动速度很慢,具体取决于事件的数量.但我们可以使用快照来解决这个问题吗?
  5. 最终的一致性:某些应用程序的问题.想象一下,如果Facebook使用CQRS的事件采购来存储帖子并考虑到facebook系统的繁忙程度,如果我发布帖子,我会在第二天看到我的fb帖子:)
  6. 事件存储中的序列化事件:事件存储将事件存储为序列化对象,这意味着我们无法查询事件存储中的事件内容.而且我们将来无法为该事件添加其他属性.解决方案是将事件存储为JSON对象而不是序列化事件?但这是个好主意吗?或者添加更多事件以支持对orignal事件对象的更改?

有人可以评论我在这里提出的不利因素,如果我错了就纠正我,并建议我可能错过任何其他的吗?

cqrs event-sourcing

30
推荐指数
5
解决办法
9517
查看次数

SOLR autoCommit vs autoSoftCommit

我很困惑和.这是我的理解

  • autoSoftCommit - 在autoSoftCommit之后,如果SOLR服务器出现故障,autoSoftCommit文件将丢失.

  • autoCommit - 对磁盘进行硬提交,并确保将所有autoSoftCommit提交写入磁盘并提交任何其他文档.

我的以下配置似乎只与autoSoftCommit一起使用.autoCommit本身似乎没有做任何提交.有什么我想念的吗?

<updateHandler class="solr.DirectUpdateHandler2">
    <updateLog>
        <str name="dir">${solr.ulog.dir:}</str>
    </updateLog>
   <autoSoftCommit>
        <maxDocs>1000</maxDocs>
        <maxTime>1200000</maxTime>
    </autoSoftCommit>
    <autoCommit>
        <maxDocs>10000</maxDocs>
        <maxTime>120000</maxTime> 
        <openSearcher>false</openSearcher>
    </autoCommit>
</updateHandler>
Run Code Online (Sandbox Code Playgroud)

为什么autoCommit会自己动手?

solr solr4

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

Eclipse没有在调试时获取Maven附加源代码

我已经使用Maven-> Download Sources下载了我的构建路径中所有Maven JAR的源代码mvn eclipse:eclipse -DdownloadSources=true,并且有效!当我打开构建路径时,我可以看到为每个JAR文件附加了源JAR.

但是当我在Tomcat 6上运行该死的东西时,我不断收到"Source not found"页面,其中包含"Edit Source lookup path"按钮.但是源已经在构建路径中附加了.什么不起作用?

当我通过单击"编辑源查找路径"按钮手动将其指向JAR文件时,它可以工作.当我手动将其指向文件夹时,它不起作用.为什么Eclipse或Tomcat没有在构建路径中获取附加的源?

注意:我使用的是apache-maven-3.0.4,apache-tomcat-6.0.16和Eclipse Indigo Service Release 2.

eclipse maven

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

Scalajs-react VS Xored Scalajs-react VS SRI

这些Scala.js React.js库之间有什么区别?我为什么要选择其中一个?

  1. Xored Scalajs-react - 上次提交是在8个月前.所以我猜测开发不再活跃了.
  2. Scalajs-react - 非常活跃且非常完整,并附带自定义URL路由器.但API似乎正在逐步摆脱实际的Javascript React代码的编写方式,并且不支持React-native,并且添加Scalaz和Monocle会增加库的数量会增加浏览器必须下载的Javascript的大小.该文件称Scalaz&Monocle是选择加入的,所以我猜测默认情况下Scalaz&Monocle被排除在外?我个人认为这个库可能只是React.js代码的一个非常简单的外观,它可以更容易地更新到更新的版本React.js,它不是一个简单的外观意味着更多的Javascript代码将生成和更多浏览器必须下载的代码.我可能在这里错了,请纠正我?
  3. SRI - 新手和外观看起来非常完整,并且支持Web,Relay和React原生,但没有URL路由器支持,也没有DOM DSL.Facade API看起来非常精简,与编写Javascript React.js代码非常相似.但它是相当新的,可能没有准备好生产?

如果我错了,请纠正我,因为有太多选项可供选择,并希望有一种方法可以在Scala.js中编写React.js代码.

scala.js scalajs-react

18
推荐指数
3
解决办法
2063
查看次数

intellij"对象索引不是包views.html的成员"

我有Intellij 15.0.5,我无法摆脱这个错误

object index is not a member of package views.
Run Code Online (Sandbox Code Playgroud)

我在Intellij中创建了一个新的play项目,并使用了activator命令

activator new PlayTestProject
Run Code Online (Sandbox Code Playgroud)

但我一直得到上​​述错误.我已经在SO上阅读了所有其他类似的问题,但没有一个帮助,我尝试了以下内容

  1. 右键单击项目 - >添加框架支持 - >选择"播放2"

结果:我没有看到我的项目有任何变化.当我点击OK时,窗口消失,但如果我第二次尝试相同.没有任何事情发生,窗户仍在那里!

  1. 首选项 - >语言和框架 - > Play2 - >选择"为此项目使用Play 2编译器"

结果:我收到此错误

Error:Module 'client' production: java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)

我试过了

  • 缓存和重启无效
  • 干净
  • 结帐一个新的项目

但我在Intellij中一直遇到同样的错误.

运行sbt compile命令行运行构建成功.但是Intellij一直向我显示上述错误.

我该如何解决 ?

intellij-idea

10
推荐指数
2
解决办法
8311
查看次数

Tomcat在netbeans中部署相同的应用程序两次

我正在使用NetBeans,Tomcat似乎在.war应用程序中部署了两次,这是Web应用程序的双重启动.

我已经尝试了Tomcat 6和7以及相同的结果.

我有一个Spring MVC,Hibernate和Thymeleaf应用程序.META-INF下的Context.xml具有以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/website"/>
Run Code Online (Sandbox Code Playgroud)

这是日志.

**First deployment starts**

[ INFO] 07:13:09 ContextLoader - Root WebApplicationContext: initialization started
[ INFO] 07:13:09 XmlWebApplicationContext - Refreshing Root WebApplicationContext:     startup date [Thu May 23 07:13:09 EST 2013]; root of context hierarchy
2013-05-23 07:13:10 JRebel: Monitoring Spring bean definitions in     '/Users/pack/NetBeansProjects/mysite/site/src/main/webapp/WEB-INF/applicationContext-  data.xml'.
[ INFO] 07:13:10 XmlBeanDefinitionReader - Loading XML bean definitions from     ServletContext resource [/WEB-INF/applicationContext-data.xml]
[ INFO] 07:13:10 ClassPathScanningCandidateComponentProvider - JSR-330 'javax.inject.Named' annotation …
Run Code Online (Sandbox Code Playgroud)

tomcat netbeans maven

9
推荐指数
1
解决办法
4939
查看次数

将facebook App ID嵌入UI javascript代码中是否安全?

Facebook的文档说我们可以通过运行以下代码在我们的应用程序中初始化FB.代码来自文档,但是这也希望'appId'作为参数传递.

问题:将'appId'嵌入单页应用程序的客户端Javascript代码中是否真的安全,还是应该以某种方式在服务器端处理?

FB.init({
    appId      : '{your-app-id}',
    status     : true,
    xfbml      : true,
    version    : 'v2.4' // or v2.0, v2.1, v2.2, v2.3
  });
Run Code Online (Sandbox Code Playgroud)

更新:正如@KK所指出的那样app-secret.所以我猜测它app-id在浏览器中是安全的,但我应该保持app-secret安全.当我检查我的Facebook仪表板时,我可以看到我有两个不同的ID app-idapp-secret.

即使我保留app-id在服务器上并通过服务器重定向用户,用户仍然可以看到app-id,因为此处文档说明重定向URL是一个GET请求,所以所有参数都是可见的.

javascript facebook facebook-graph-api

9
推荐指数
1
解决办法
3117
查看次数

Javascript在JSF模板下不起作用

我正在使用JSF模板和Primefaces.

Javascript代码似乎不适用于ui:composition和ui:define标签.以下代码未命中loaded()方法.这是content.xhtml文件

<h:head>
<script language="javascript">
    function loaded() {
        alert("Working!!");
    }
</script>
</h:head>

<ui:composition template="/template/template.xhtml">
<ui:define name="content">
<h:body style="width:100%;height:100%;" onload="loaded()">
     <p class="item">Random text</p>
</h:body>
</ui:define>
</ui:composition>
Run Code Online (Sandbox Code Playgroud)

但是当我删除define和composition标签时,会调用加载的函数.知道为什么会这样吗?

这是模板文件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">


<h:head>
<title><ui:insert name="title">Template</ui:insert></title>
</h:head>

<h:body>

<div id="header">
    <ui:insert name="header">
        <ui:include src="../menu.xhtml" />
    </ui:insert>
</div>


<div id="content">
    <ui:insert name="content">
        <ui:include src="../content.xhtml" />
    </ui:insert>
</div>

<div id="footer">
    <ui:insert name="footer">
        This is a footer
    </ui:insert>
</div>
Run Code Online (Sandbox Code Playgroud)

html javascript jsf facelets jsf-2

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

反应性宣言:非阻止代码与阻止代码?

现在每个人似乎都在谈论Reactive应用程序,而Reactive manifesto似乎鼓励非阻塞/异步代码.我在youtube上看过很多视频,其中扬声器鼓励非阻塞代码但是没有人说除了说阻止之外写阻塞代码而不是阻塞代码的好处

"using futures is good because it is not blocking your code" - some speaker
Run Code Online (Sandbox Code Playgroud)

这只是让" 阻塞代码 "听起来像一个坏词.

我的问题很简单:如果我有一个任务,我运行它:

  1. 阻止代码 - 在一个线程上运行任务的位置
  2. 非阻塞代码 - 一个线程将任务委托给另一个线程

事实是,在上述两种情况下,我想要运行的实际任务总是在1个线程上运行.第二个选项只会增加应用程序的复杂性,第一个选项更简单,可能更快,因为我不需要委托.

我理解在执行任务期间的某个时刻,需要执行多个并发任务,因此线程/非阻塞/异步代码在这里有所帮助.但是为什么Reactive宣言鼓励非阻塞应用程序被激活?除了应用程序中的一大堆Futures和Promise之外,还有什么好处,这使得代码更复杂,更难调试?

multithreading asynchronous reactive-programming

5
推荐指数
1
解决办法
900
查看次数