spring javaee_开发人员对Spring vs JavaEE的看法
spring javaee
在Java社區(qū)中,Spring vs JavaEE是一個(gè)永無止境的爭論。 在這樣的辯論中,人們組成一個(gè)團(tuán)體,由兩個(gè)傳播者,建筑師和一個(gè)平臺(tái)的核心粉絲組成,并且不斷進(jìn)行辯論。 參與辯論的人可能是負(fù)責(zé)平臺(tái)選擇的架構(gòu)師。 但是開發(fā)人員會(huì)如何看待這次Spring vs JavaEE辯論?
我是同時(shí)使用Spring和JavaEE的Java開發(fā)人員,并且不屬于Spring或JavaEE粉絲俱樂部。 在這里,我想就這個(gè)史詩般的Spring vs JavaEE辯論分享自己的想法。
1.商業(yè)(有時(shí)是政治)方面
在許多組織中,技術(shù)選擇可能并不完全取決于開發(fā)人員的選擇。 更具體地說,如果您在所謂的巨型企業(yè)組織中工作,那么很有可能會(huì)有架構(gòu)團(tuán)隊(duì)來決定在項(xiàng)目中使用哪種平臺(tái)/語言/框架/庫。
除此之外,大型企業(yè)在選擇技術(shù)平臺(tái)時(shí)還考慮以下方面:
- 平臺(tái)/語言/框架/庫的成熟度
- 商業(yè)支持
- 許可費(fèi)用等
作為開發(fā)人員,我?guī)缀醪粫?huì)影響上述任何方面的決策過程,尤其是當(dāng)我是離岸開發(fā)中心的開發(fā)人員時(shí)。 所以我不用太擔(dān)心這些事情。
2.如果您真的很擅長Spring / JavaEE,那么學(xué)習(xí)另一個(gè)也不應(yīng)該很困難
當(dāng)有人說我是JavaEE專家但我聽不懂Spring時(shí),我總是感到驚訝。 JavaEE和Spring都在相同的核心API(Servlet,JPA,JMS,BeanValidation等)上工作,不同之處在于誰將Spring或AppServer粘合在一起。
即使對(duì)于諸如依賴注入(Spring DI,CDI),REST(JAX-RS,SpringMVC)等事物有一些不同的API,它們的外觀和行為也非常相似。
也許有人可以說CDI比Spring DI更安全。 在以下情況下,Spring和CDI的行為不一樣嗎?
- 如果只有一個(gè)Spring / CDI Bean,則使用@Autowired或@Inject進(jìn)行注入可以正常工作
- 當(dāng)存在多個(gè)Spring或CDI bean實(shí)現(xiàn)時(shí),注入失敗,并拋出錯(cuò)誤:“找到了多個(gè)可以注入的合格bean”,注入失敗。
- 使用@Produces或@Bean注釋方法將自定義對(duì)象提供為Bean提供程序
只要它們的行為類似,我不在乎它們是以類型安全的方式實(shí)現(xiàn)還是在其內(nèi)部實(shí)現(xiàn)中使用基于String的映射。
怎樣才能成為Spring的專家,卻不懂JavaEE,反之亦然? Spring專家學(xué)習(xí)JavaEE需要多少時(shí)間?
3.對(duì)“ Average Joe開發(fā)人員”更友好
我認(rèn)為,到目前為止,很多人應(yīng)該已經(jīng)意識(shí)到,一項(xiàng)技術(shù)的成功可能并不完全取決于其優(yōu)點(diǎn),還取決于開發(fā)人員的采用。 要實(shí)現(xiàn)的最重要的事情是“并非每個(gè)軟件開發(fā)人員都是搖滾明星開發(fā)人員。 與熱情的技術(shù)忍者相比,普通的joe開發(fā)者更多”。 因此,為了使人們適應(yīng)任何框架,它應(yīng)該對(duì)“ Average Joe Developer”友好。
我認(rèn)為Spring通過提供更多工具(例如SpringBoot,用戶指南等)來做得很好。SpringSecurity,Spring Integration,Spring XD,Spring Social很好地滿足了現(xiàn)代業(yè)務(wù)需求。 還請考慮一下Spring提供的各種模板,這些模板使操作變得簡單而無需擔(dān)心樣板代碼。
通過引入JBossForge,Wildfly Swarm等快速入門,JavaEE也表現(xiàn)出色。 我遇到了一些基于JavaEE的框架,例如Picketlink,該框架可以解決安全性要求,但是我覺得它比應(yīng)該的要復(fù)雜得多。
我要傳達(dá)的觀點(diǎn)是“您可以使用Spring進(jìn)行JavaEE中的幾乎所有工作”。 區(qū)別在于,這讓普通的joe開發(fā)人員可以立即使用。
4.沒有上下文的arguments腳論點(diǎn)
每當(dāng)Spring vs JavaEE辯論出現(xiàn)時(shí),人們就會(huì)組成兩個(gè)小組,并不斷進(jìn)行辯論。 不幸的是,辯論集中在一些無用或過時(shí)的觀點(diǎn)上。
XML重:
JavaEE愛好者首先開始說Spring是XML的重頭戲,我討厭XML等等。 如果您仍在使用早于2.5版的Spring并假設(shè)它仍然基于XML,那么我的朋友應(yīng)該醒來,并轉(zhuǎn)到http://spring.io
EJB不好(或)JSF不好
Spring迷們像EJB 2.x或JSF 1.x一樣猛撲EJB和JSF。 如果他們真的關(guān)注EJB 3.x和JSF 2.x,那么他們根本不會(huì)爭論。 不要憑著6年的EJB2.x經(jīng)驗(yàn)來判斷EJB3.x。
重或輕
我對(duì)“重量”的解釋是基于運(yùn)行時(shí)的足跡。 據(jù)我所知,當(dāng)您將托管bean部署到JavaEE容器中時(shí),容器將代理它并注入所有企業(yè)服務(wù)(事務(wù),安全性等),如果是Spring,它將由Spring AOP完成。
我沒有任何度量標(biāo)準(zhǔn)可以說哪個(gè)是比較重的Container Proxy或SpringAOP Proxy,但是我想可能沒有太大的區(qū)別。
有些人將戰(zhàn)爭檔案的大小視為其“重量”。 在那種情況下,將(JavaEE AppServer + war)大小與(帶有126個(gè)jars的SpringApp)進(jìn)行比較,看看哪一個(gè)重量輕:-)
JavaEE是基于標(biāo)準(zhǔn)的
拜托了伙計(jì)們!!!!
供應(yīng)商鎖定
我認(rèn)為選擇一個(gè)不會(huì)讓您堅(jiān)持某個(gè)特定供應(yīng)商的平臺(tái)是好的。 但是,僅基于遷移到其他實(shí)現(xiàn)的能力來選擇選項(xiàng)是不正確的。 一年中從一臺(tái)服務(wù)器切換到另一臺(tái)服務(wù)器多少次? 選擇不與供應(yīng)商鎖定您的平臺(tái)是“很不錯(cuò)的選擇”,但這不是選擇平臺(tái)的主要因素。
我們不需要外部庫
這稱為“為爭辯而爭辯”。 向我展示任何沒有依賴關(guān)系的真實(shí)應(yīng)用程序。 如果您說我要開發(fā)自己的日志記錄庫,我要編寫自己的HTTP客戶端,我要開發(fā)自己的通用工具,那么您需要尋找一些沒有“重新發(fā)明”的懶惰的架構(gòu)師/開發(fā)人員。所有輪子的疾病。
5.不要看著人群說“你們都是白癡,因?yàn)槟褂肵,所以應(yīng)該遷移到Y(jié)”。
這是我在許多社區(qū)站點(diǎn)上觀察到的常見模式,尤其是在Reddit上。 只需發(fā)布與JavaEE vs Spring相關(guān)的任何東西,就會(huì)有兩個(gè)小組像其他一樣抨擊另一個(gè)小組,因?yàn)榱硪粋€(gè)小組沒有使用他們喜歡的平臺(tái)。
想一分鐘。 如果說Spring不好,為什么會(huì)有很多人使用它并喜歡它。 如果JavaEE不好,為什么會(huì)有很多人從Spring切換到JavaEE。 每個(gè)平臺(tái)上都有很多好東西。 尊重他人選擇他們選擇的任何選項(xiàng)。 如果可能的話,請問他們?yōu)槭裁催x擇彼此的理由,并了解您是否錯(cuò)過任何事情。
只是說“你們都是不使用我喜歡的選項(xiàng)的白癡”并不能使他們使用您喜歡的技術(shù)。 實(shí)際上,這觸發(fā)了人們的想法,提出了您最喜歡的平臺(tái)爛點(diǎn)的清單。
如果您確實(shí)希望他們切換到自己喜歡的平臺(tái),請通過代碼示例顯示原因。 向他們展示使用您喜歡的平臺(tái)和示例應(yīng)用程序開發(fā)應(yīng)用程序有多么容易。 寫更多有關(guān)常見問題及其解決方法的文章。 將“ Average Joe Developer”安裝到您喜歡的平臺(tái)上。
作為一個(gè)熱情的Java開發(fā)人員,我閱讀了Spring vs JavaEE的討論,希望可能有一些我不知道的事情,例如“在哪個(gè)領(lǐng)域比另一個(gè)領(lǐng)域更好”。 但是我發(fā)現(xiàn)70%的討論都是關(guān)于la腳的爭論,這對(duì)我來說不是很有趣。
我希望Spring和JavaEE陣營之間的戰(zhàn)斗越來越多,并使他們的平臺(tái)比其他平臺(tái)更好。 歸根結(jié)底,無論誰贏得了辯論,最終開發(fā)人員都將擁有更強(qiáng)大的平臺(tái)。
翻譯自: https://www.javacodegeeks.com/2015/06/a-developers-perspective-on-spring-vs-javaee.html
spring javaee
總結(jié)
以上是生活随笔為你收集整理的spring javaee_开发人员对Spring vs JavaEE的看法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 很多人都问旧电脑怎么回收处理旧电脑回收前
- 下一篇: java面包屑实现_在Java中实现过滤