我见过echo在很多地方都这样使用过:
echo >&2 message text ...
Run Code Online (Sandbox Code Playgroud)
这是什么意思?
但我知道2>&1,我不知道如何解释上面的用法.
有人可以解释一下吗?
虽然不是新手,但我正在努力学习弹簧框架(再次!),以确保我真正理解这一点.我对核心Spring(DI)有了一个很好的想法.现在,我专注于数据层.
我遇到过" Spring and Hibernate " 这个词.我可以解释它意味着将Spring Framework与Hibernate一起用作ORM工具/ JPA提供程序.
现在我遇到了" Spring Data JPA ".我澄清了有关Spring Data JPA的内容,它是JPA的一个抽象层(在Spring Data JPA下使用Hibernate或任何其他JPA提供程序).
现在这些术语是一样的吗?也就是说," Spring + hibernate "与" Spring Data JPA "相同.如果没有,那么差异/相似之处是什么?
我真的很困惑很多条款/声明(如上所述)似乎相似,但可能会有所不同.
我试图"真正"理解Spring Framework.我对Spring Core(DI)和Spring MVC有了一些了解.
对于数据部分,我现在专注于Spring Data JPA.据我所知,JPA是一个标准规范,有多个实现,Hibernate是着名的.
现在,当我启动Spring Data JPA时,我的印象是Spring Data JPA是JPA规范的独立实现.原来我错了.
如果我理解正确,Spring Data JPA是Spring提供的抽象层,它在内部使用其他JPA提供程序(示例Hibernate),所以通常它是这样的:
Application ---> Spring Data JPA --> Hiberate --> JDBC ----> DB
我的理解是否正确?如果是这样没有Spring Data JPA误导?它本身不是JPA提供者,它只是一个抽象层,它在其他层之上工作JPA provider.
我不确定我是否真的了解Spring框架,或者它是一个复杂的框架?
有人可以帮我理解吗?
我试图了解hadoop在HDFS中存储数据的位置.我指的是配置文件即:core-site.xml和hdfs-site.xml
我设置的属性是:
在core-site.xml:
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/tmp</value>
</property>
Run Code Online (Sandbox Code Playgroud)在hdfs-site.xml:
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/hadoop/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/hadoop/hdfs/datanode</value>
</property>
Run Code Online (Sandbox Code Playgroud)通过上述安排,dfs.datanode.data.dir数据块应该存储在该目录中.它是否正确?
我提到了apache hadoop链接,从中我看到了这个:
core-default.xml: hadoop.tmp.dir- >其他临时目录的基础.
hdfs-default.xml dfs.datanode.data.dir - >确定DFS数据节点应在何处存储其块的本地文件系统.
此属性的默认值为 - > file://${hadoop.tmp.dir}/dfs/data
由于我明确提供了dfs.datanode.data.dir(hdfs-site.xml)的值,它是否意味着数据将存储在该位置?如果是这样,将dfs/data添加到目录中${dfs.datanode.data.dir},特别是它会变成 - > /hadoop/hdfs/datanode/dfs/data?
但是我没有看到这个目录结构被创建.
我在环境中看到的一个观察结果:
我看到在运行一些MapReduce程序之后,创建了这个目录,即:
/hadoop/tmp/dfs/data正在创建.
因此,不确定数据是否存储在属性dfs.datanode.data.dir所建议的目录中.
有没有人有类似的经历?
我需要了解编译servlet所需的serlvet-api.jar.
我正在构建一个简单的servlet,如下所示:
import javax.servlet.*;
import javax.servlet.http.*;
public class FirstServlet extends HttpServlet {
// Remaining code here
}
Run Code Online (Sandbox Code Playgroud)
我知道我们需要servlet-api.jar文件来编译这个简单的servlet,如下所示:
javac -classpath /path/where/jar/is/servlet-api.jar
Run Code Online (Sandbox Code Playgroud)
现在我的怀疑从这里开始:
考虑这种情况:
假设我们使用Tomcat编译/构建简单的servlet(即构建servlet所需的tomcat版本的jar)并创建.war文件.我们可以在其他供应商的容器中部署战争吗?
我正在尝试学习 Docker 并为此参考在线资料。我开始知道有官方的镜像中心,我们可以拉取并运行一个容器。
存储库位于https://hub.docker.com/屏幕截图的一部分:
在这张图中我们可以看到 ubuntu、httpd、mysql(等等)的官方镜像。
所有这些图像是否都有运行它们的“最小操作系统”。例如,如果我们考虑httpd图像,它是否具有运行所需的操作系统?
我正在学习Java Collection Framework并获得了适度的理解.现在,当我走得更远一点我得到了一些疑惑:HashMap,HashSet,Hashtable.
Javadoc HashMap说:
基于哈希表的Map接口实现.此实现提供所有可选的映射操作,并允许空值和空键.
Javadoc HashSet说:
此类实现Set接口,由哈希表(实际上是HashMap实例)支持.它不能保证集合的迭代顺序; 特别是,它不保证订单会随着时间的推移保持不变.
Javadoc Hashtable说:
该类实现了一个哈希表,它将键映射到值.任何非null对象都可以用作键或值.
令人困惑的是,所有这些都实现了hash table.难道他们实现概念的哈希表?
似乎所有这些都是相互关联的,但我无法完全理解它.
任何人都可以用简单的语言帮助我理解这个概念.
我已经读过使用hibernate的二级缓存,它可以通过减少数据库命中数据/对象来提高应用程序性能.
但是,hibernate如何确保二级缓存与数据库中的数据保持同步.
例如:
假设下面的类是实体并持久保存到DB中.
@Entity
class User {
Id
private int id;
private String str;
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我们启用了二级缓存,我理解如果我们打开不同的会话,那么每个会话将访问二级缓存以检索对象值.
现在,如果数据库中的数据发生了变化(例如对于id = 1的行)说某个独立进程/手动更改值,我们尝试访问该值,hibernate如何检测缓存是否具有最新值(对于id = 1).
通常,hibernate如何确保二级缓存中的数据与db值一致.
谢谢你的帮助.
我在核心Java和Java EE方面有一些经验.我阅读了有关SO的各种问题,以了解Java EE究竟是什么?在SO中几乎没有答案:什么是java-ee,什么是java-ee
1)如果Java EE只是一个规范,谁来实现它们?应用服务器(如JBOSS,GlassFish)是否实现了这些规范?
2)如果我是正确的,EJB规范是由EJB容器实现的,我相信EJB Container是Application Server的一部分.现在,当我们作为开发人员编写EJB代码时,我们实际在做什么?我怀疑的是,EJB容器实现了EJB规范,所以我们是否覆盖了EJB的一些"规范部分"?为什么EJB的某些部分是由EJB容器实现的,还有一些是开发人员正在编写的东西?或者是EJB的某些部分必须由EJB容器提供,还有一部分由开发人员开发?我很难做到这一点.
请任何人帮助理解这个?
我想了解多模块 maven 项目的依赖关系以及引用的 eclipse 依赖关系层次结构。
我确实理解得相当清楚,但是有些事情我根本无法理解。
下面是屏幕截图。
我不明白的事情是:
--> 从 1.0.2 开始管理 [编译}
--> 从 1.0.2 开始管理(因与 1.0.0 冲突而省略)[编译]
我确实在网上搜索过,但我在痕迹中得到了信息。任何人都可以帮助我理解它们的含义吗?
谢谢。