简体   繁体   English

Java SE和Java EE之间的细线

[英]The thin line between Java SE and Java EE

I am the guy who writes java controllers (mvc), who does tests with junit, who writes jdbc, who uses maven ... 我是编写java控制器(mvc)的人,他使用junit进行测试,他编写jdbc,使用maven ...

basically, how do I know when is this Java EE and when is not? 基本上,我怎么知道这个Java EE什么时候不用? I don't write servlets or jsps (which are part of Java EE) but I do use API and so ... 我不编写servlet或jsps(它们是Java EE的一部分),但我确实使用API​​,所以......

What am I? 我是什么? Java EE programmer? Java EE程序员? Java SE programmer? Java SE程序员? If you were Spring/Hibernate developer, what you are? 如果你是Spring / Hibernate开发人员,你是什么人? Java EE or Java SE? Java EE还是Java SE?

Maybe this is stupid question (if so then I am sorry), but what's the "thin line" between Java SE and Java EE? 也许这是一个愚蠢的问题(如果是,那么我很抱歉),但是Java SE和Java EE之间的“细线”是什么?

More importantly, does it matter ? 更重要的是, 这有关系吗?

"What's in a name? That which we call a rose “名字里面有什么?我们称之为玫瑰

By any other name would smell as sweet." 任何其他名称都会闻起来很甜蜜。“

The only purpose for having these labels is as a shortcut for bundling technologies together. 拥有这些标签的唯一目的是将技术捆绑在一起的捷径。 I share your view that these are exceptionally handwavy terms, and consequently no-one is going to use them for anything of consequence. 我同意你的看法,这些都是特别粗略的术语,因此没有人会将它们用于任何后果。

Sure, companies might advertise for a "J2EE developer". 当然,公司可能会为“J2EE开发人员”做广告。 But they'll always mention in the description/interview that they mean eg JBoss and JPA, for instance, rather than simply saying "are you J2EE" and assuming you both know exactly what that means. 但他们总是在描述/访谈中提到他们的意思,例如JBoss和JPA,而不是简单地说“你是J2EE吗”并假设你们都知道这意味着什么。

And outside of that specific example, I very rarely come across the terms used (because they're not very useful). 除了这个具体的例子,我很少遇到使用的术语(因为它们不是很有用)。 Asking if you have experience with Java is useful, at a more precise level asking if you have experience with Tomcat or Hibernate is useful, but asking if someone has experience with J2EE is unlikely to yield a usable answer. 询问你是否有使用Java的经验是有用的,在更精确的层面上询问你是否有使用Tomcat或Hibernate的经验是有用的,但询问某人是否有使用J2EE的经验不太可能产生可用的答案。

Is there some specific circumstance that's prompted you to ask this question? 是否有某些特定情况促使您提出这个问题?

JDBC is part of the core Java SE spec. JDBC是核心Java SE规范的一部分。

It goes without saying that Java EE is built on top of Java SE. 毫无疑问,Java EE是建立在Java SE之上的。 If you're Java EE, you're automatically Java SE as well. 如果您是Java EE,那么您也可以自动使用Java SE。

Servlets and JSPs are part of Java EE, but some people don't consider you to be fully Java EE unless you're using EJBs and app server services like connection pooling, naming, queuing, etc. Servlet和JSP是Java EE的一部分,但有些人并不认为您是完全Java EE,除非您使用EJB和应用服务器服务,如连接池,命名,排队等。

Spring was a reaction against EJB 2.0 and its complexity. Spring是对EJB 2.0及其复杂性的反应。 It's built on top of Java SE, usually deploys on Java EE app servers, and provides a lot of Java EE functionality (eg, persistence, lifecycle, etc.) without resorting to the EJB machinery. 它构建于Java SE之上,通常部署在Java EE应用服务器上,并提供大量Java EE功能(例如,持久性,生命周期等),而无需借助EJB机制。 It uses servlets, JSPs, persistence, naming, queuing, and other Java EE services to do its work. 它使用servlet,JSP,持久性,命名,排队和其他Java EE服务来完成其工作。 Spring is not a Java EE spec; Spring不是Java EE规范; it's the brainchild of Rod Johnson. 这是罗德约翰逊的心血结晶。 It's now owned by VMWare. 它现在归VMWare所有。

J2EE is a collection of APIs and Specifications for Enterprise Development, if you're not using any of those API's then, from my point of view you're a J2SE Developer, even when using Spring. J2EE是企业开发的API和规范的集合,如果你没有使用任何这些API,那么从我的观点来看,即使使用Spring,你也是J2SE开发人员。

Of course, anyone who does J2EE development also has to do J2SE development by default, since all those J2EE API's are based and built over the Java language platform. 当然,任何进行J2EE开发的人都必须默认进行J2SE开发,因为所有这些J2EE API都是基于Java语言平台构建的。

Java EE is a huge API. Java EE是一个巨大的API。 You're using mainly the Java EE web profile. 您主要使用Java EE Web配置文件。 So, I'd say, you're a "Java EE web application developer". 所以,我会说,你是“Java EE Web应用程序开发人员”。 For the specific skills, just use the room you have in your CV and/or interviews. 对于特定技能,只需使用您在简历和/或面试中的房间。

It is java EE when the code knows it is in a EE context. 当代码知道它在EE上下文中时,它是java EE。 Classes or interfaces only presnt in a EE contxt and which doesn't make sense in a SE application. 类或接口仅在EE contxt中存在,并且在SE应用程序中没有意义。

For resumes just list "Java" with the technologies you've used. 对于简历,只需使用您使用的技术列出“Java”。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM