欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SpringBoot將推翻以往的Java應(yīng)用開發(fā)

電子工程師 ? 來源:網(wǎng)絡(luò)整理 ? 作者:工程師3 ? 2018-05-27 08:27 ? 次閱讀

使用Java做Web應(yīng)用開發(fā)已經(jīng)有近20年的歷史了,從最初的Servlet1.0一步步演化到現(xiàn)在如此多的框架,庫以及整個生態(tài)系統(tǒng)。經(jīng)過這么長時間的發(fā)展,Java作為一個成熟的語言,也演化出了非常成熟的生態(tài)系統(tǒng),這也是許多公司采用Java作為主流的語言進(jìn)行服務(wù)器端開發(fā)的原因,也是為什么Java一直保持著非?;钴S的用戶群。

Java開發(fā)概述:

使用Java做Web應(yīng)用開發(fā)已經(jīng)有近20年的歷史了,從最初的Servlet1.0一步步演化到現(xiàn)在如此多的框架,庫以及整個生態(tài)系統(tǒng)。經(jīng)過這么長時間的發(fā)展,Java作為一個成熟的語言,也演化出了非常成熟的生態(tài)系統(tǒng),這也是許多公司采用Java作為主流的語言進(jìn)行服務(wù)器端開發(fā)的原因,也是為什么Java一直保持著非?;钴S的用戶群。然而這個生態(tài)系統(tǒng)紛繁復(fù)雜,一個非常簡單的Java Web應(yīng)用程序都有可能應(yīng)用到以下技術(shù):

Java開發(fā)分為兩個陣營,一個是由Oracle 為代表的Java EE陣營,這是Web開發(fā)的官方參考標(biāo)準(zhǔn)。其中核心技術(shù)主要有Servlet, EJB, JMS, JSF, JDBC/JPA, JAXB, JAX-WS等。另一個陣營則是由開源社區(qū)以及Pivotal代表的Spring陣營,其中核心技術(shù)主要有 Spring Framework, Spring MVC, Spring Data, Spring Security等等。

Spring從最開始作為依賴注入的Bean container,逐漸發(fā)展為Java應(yīng)用開發(fā)的主流框架。Java EE因為其臃腫,復(fù)雜,難以使用的結(jié)構(gòu),被很多Java程序員拋棄。從Java EE6開始才引入了CDI (Context Dependency Injection),而且Java EE 的設(shè)計思想非常學(xué)術(shù)化, Gavin King等人脫離了工業(yè)界的需求,使得Java EE開發(fā)非常復(fù)雜。JSF甚至為Java之父James Gosling詬病。相反在Spring社區(qū),越來越多現(xiàn)代化的應(yīng)用開發(fā)方法被融入進(jìn)來,形成不同的Spring項目。

什么是Spring Boot?

Spring Boot便是一個社區(qū)反饋推動的項目。 Spring Boot可以說是至少近5年來Spring乃至整個Java社區(qū)最有影響力的項目之一。Spring Boot主要包含以下特性:

1.直接嵌入Tomcat, Jetty或者Undertow作為Servlet container。從此之后再也不用將應(yīng)用程序打包成war然后上傳到application server里面了。

2.提供了starter POM, 能夠非常方便的進(jìn)行包管理, 很大程度上減少了jar hell或者dependency hell

3.自動進(jìn)行Spring框架的配置,節(jié)省程序員大量的時間和精力,能夠讓程序員專注在業(yè)務(wù)邏輯代碼的編寫上

4.不需要任何第三方系統(tǒng), Spring Boot自帶了可以用于生產(chǎn)環(huán)境的程序狀態(tài)信息和健康狀態(tài)。同時可以讓應(yīng)用程序非常方便的讀取外部的配置信息

5.完全不需要任何代碼的自動生成。更不需要用xml來進(jìn)行框架的配置

為什么Spring Boot是顛覆性的?

為什么說Spring Boot是顛覆性的呢?因為它徹底改變了Java應(yīng)用開發(fā)的模式。以往我們做Spring應(yīng)用開發(fā),要知道配置哪些類來讓Hibernate和Spring一起工作,要知道如何配置view resolver來控制哪個模版進(jìn)行視圖層的展示。經(jīng)常寫了一大堆代碼之后發(fā)現(xiàn)只是在處理Spring框架本身的配置,根本一行業(yè)務(wù)邏輯都沒有寫。開發(fā)完成之后,我們還要考慮部署的問題,且不說部署到非常笨重的應(yīng)用服務(wù)器,比如WebSphere, Weblogic或者JBoss,即使部署到Tomcat或者Jetty這種輕量級容器上面,我們要知道如何配置容器,如何修改配置文件等等。而且在多應(yīng)用部署到同一個Tomcat的時候,經(jīng)常會出現(xiàn)沖突。就算我們花了很大力氣解決了這些問題,程序部署成功之后,我們很難去了解這個程序的運行狀態(tài)。有可能我們要配置很多第三方工具來去知道這個應(yīng)用程序運行狀態(tài)如何,有哪些參數(shù),環(huán)境變量是什么。盡管Spring幫我們解決了依賴注入的問題,簡化了一些MVC的流程,但是Spring框架本身集成了越來越多東西,導(dǎo)致其越來越難配置,維護(hù)成本成直線上升。很多時候Java程序員們看到Python, Ruby或者JavaScript程序員敲幾個命令安裝一些庫,然后簡單的敲幾行代碼,引入一些框架比如flask,然后直接一個簡單的API就可以跑起來了。這時候Java程序員可能還在研究該使用Maven里面的哪個庫,如何在代碼里面進(jìn)行配置呢。大家心里的表情肯定是這樣:

(求此時Java程序員心理陰影面積)

Java程序員揚(yáng)眉吐氣的時候到了!

傳統(tǒng)Spring開發(fā)對決Spring Boot應(yīng)用開發(fā)

接下來我會通過具體例子對比傳統(tǒng)的Spring應(yīng)用開發(fā)和Spring Boot應(yīng)用開發(fā)。假如我們開發(fā)一個Hello World的REST API,傳統(tǒng)的Spring開發(fā)應(yīng)該這么做。

1. 如果使用Maven進(jìn)行包管理,編寫pom.xml 如下

SpringBoot將推翻以往的Java應(yīng)用開發(fā)

SpringBoot將推翻以往的Java應(yīng)用開發(fā)

如上可以看到為了編寫簡單的hello world REST API我們引入了Spring Core, Spring Web, Spring Web MVC, Java Servlet and Jackson這么多包依賴??梢韵胂髲?fù)雜一點的程序這個pom會變成什么樣。。。

2. 編寫HelloWorldInitializer class如下

SpringBoot將推翻以往的Java應(yīng)用開發(fā)

這個已經(jīng)是非常簡單的Java Config了,在Servlet 3.0之前用XML配置Spring的小伙伴們現(xiàn)在估計已經(jīng)崩潰。

3. 編寫HelloWorldConfiguration class

SpringBoot將推翻以往的Java應(yīng)用開發(fā)

注意到我們這個類里面一行業(yè)務(wù)邏輯都沒有哦。。。

4. 真正開始編寫HelloWorldRestController

SpringBoot將推翻以往的Java應(yīng)用開發(fā)

5. 下載Tomcat

6. 打包部署到Tomcat上

7.訪問localhost:8080/HelloWorld, 你終于看到了Hello World…

寫到這里我已經(jīng)累覺不愛了。。。

接下來Java老司機(jī)會帶領(lǐng)你們感受一下Spring Boot的魅力:

1. 編寫pom.xml

SpringBoot將推翻以往的Java應(yīng)用開發(fā)

SpringBoot將推翻以往的Java應(yīng)用開發(fā)

注意到我們只引入了一個包依賴,并且版本什么的就隨他去吧

2. 編寫main 函數(shù)

我們在這里標(biāo)記HelloWorldDemoApplication class為SpringBootApplication, Spring Boot 在后臺會根據(jù)這個標(biāo)記進(jìn)行很多自動配置,比如配置MVC,配置包掃描,注入必要的類,注入自動配置的類等等。

這里的main函數(shù)是一個java標(biāo)準(zhǔn)的main函數(shù),這個相當(dāng)于應(yīng)用程序入口,servlet container會在啟動的時候找到這個入口,啟動Spring container,完成初始化。

3. 編寫HelloWorldRestController

SpringBoot將推翻以往的Java應(yīng)用開發(fā)

4. 直接啟動應(yīng)用程序,不需要部署

之前HelloWorld程序?qū)τ谛率謥碚f至少要花個10-20分鐘之類的,有了SpringBoot, 最多3分鐘之內(nèi)搞定HelloWorld不是夢。

總結(jié)

這里我只是簡單的對SpringBoot進(jìn)行了講解,SpringBoot有非常多值得深入討論的東西,它不僅讓我們做Java開發(fā)變的簡單有效,更重要的是SpringBoot徹底顛覆了我們對Java開發(fā)的認(rèn)識,讓我們第一次有了”原來Java開發(fā)可以這么做” 的感覺。有了SpringBoot之后,Java程序員可以更專注于業(yè)務(wù)邏輯,進(jìn)行更敏捷的開發(fā)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2975

    瀏覽量

    105180
  • SpringBoot
    +關(guān)注

    關(guān)注

    0

    文章

    174

    瀏覽量

    201
收藏 人收藏

    評論

    相關(guān)推薦

    SpringBoot 如何實現(xiàn)熱部署

    熱部署是軟件開發(fā)中一個非常有用的功能,它允許我們在不重新啟動整個應(yīng)用的情況下,依舊能夠使我們修改的代碼生效。 現(xiàn)在Java Web 開發(fā)應(yīng)該都是使用的 SpringBoot,那么本篇文
    的頭像 發(fā)表于 09-30 10:16 ?872次閱讀
    <b class='flag-5'>SpringBoot</b> 如何實現(xiàn)熱部署

    SpringBoot 學(xué)習(xí)筆記

    SpringBoot 學(xué)習(xí)筆記 【整合JWT】添加依賴創(chuàng)建工具類登錄獲取jwt使用jwtDemo源碼參考資料添加依賴pom.xml...com.auth0java-jwt3.12.0
    發(fā)表于 07-01 07:27

    springboot集成mqtt

    springboot集成mqtt,大綱一.數(shù)據(jù)入庫1.數(shù)據(jù)入庫解決方案二.開發(fā)實時訂閱發(fā)布展示頁面1.及時通訊技術(shù)2.技術(shù)整合
    發(fā)表于 07-16 07:53

    怎樣去使用springboot

    怎樣去使用springboot呢?學(xué)習(xí)springboot需要懂得哪些?
    發(fā)表于 10-25 07:13

    怎樣去設(shè)計一個基于java ssm springboot的女士電商平臺系統(tǒng)

    java ssm springboot女士電商平臺10(源碼+sql+論文可運行)主要設(shè)計:登錄、注冊、商品瀏覽、分類管理、模糊查找、輪播圖、熱銷商品、購物車、訂單、訂單流程控制、用戶管理、修改密碼
    發(fā)表于 01-03 06:14

    關(guān)于SpringBoot如何優(yōu)雅的全局異常處理

    SpringBoot全局異常準(zhǔn)備說明:如果想直接獲取工程那么可以直接跳到底部,通過鏈接下載工程代碼。 開發(fā)準(zhǔn)備 環(huán)境要求JDK:1.8SpringBoot:1.5.17.RELEASE 首先還是
    的頭像 發(fā)表于 05-31 14:25 ?1657次閱讀
    關(guān)于<b class='flag-5'>SpringBoot</b>如何優(yōu)雅的全局異常處理

    基于java ssm springboot女士電商平臺系統(tǒng)源碼+文檔設(shè)計

    java ssm springboot女士電商平臺10(源碼+sql+論文可運行)主要設(shè)計:登錄、注冊、商品瀏覽、分類管理、模糊查找、輪播圖、熱銷商品、購物車、訂單、訂單流程控制、用戶管理、修改密碼
    發(fā)表于 01-11 16:08 ?11次下載
    基于<b class='flag-5'>java</b> ssm <b class='flag-5'>springboot</b>女士電商平臺系統(tǒng)源碼+文檔設(shè)計

    為什么開發(fā)人員認(rèn)為Java很復(fù)雜

    我擔(dān)任過架構(gòu)師、技術(shù)負(fù)責(zé)人以及高級開發(fā)工程師,在我的職業(yè)生涯中,Java是我主要使用的編程語言。近年來,我也有時會使用Go、Node.js和.Net技術(shù)。我發(fā)現(xiàn)Java,尤其是SpringBo
    的頭像 發(fā)表于 04-12 18:10 ?2148次閱讀

    什么是 SpringBoot?

    本文從為什么要有 `SpringBoot`,以及 `SpringBoot` 到底方便在哪里開始入手,逐步分析了 `SpringBoot` 自動裝配的原理,最后手寫了一個簡單的 `start` 組件,通過實戰(zhàn)來體會了 `
    的頭像 發(fā)表于 04-07 11:28 ?1379次閱讀
    什么是 <b class='flag-5'>SpringBoot</b>?

    SpringBoot常用注解及使用方法1

    基于 SpringBoot 平臺開發(fā)的項目數(shù)不勝數(shù),與常規(guī)的基于`Spring`開發(fā)的項目最大的不同之處,SpringBoot 里面提供了大量的注解用于快速
    的頭像 發(fā)表于 04-07 11:51 ?743次閱讀

    SpringBoot為什么出現(xiàn)?

    在介紹 SpringBoot 之前我們首先來簡單介紹一下 Spring。Spring 是誕生于2002年的 Java 開發(fā)框架,可以說已經(jīng)成為 Java
    的頭像 發(fā)表于 04-07 14:39 ?1040次閱讀
    <b class='flag-5'>SpringBoot</b>為什么出現(xiàn)?

    Quarkus是SpringBoot的替代品嗎?

    SpringBoot框架不用多介紹,Java程序員想必都知道。相對來說熟悉Quarkus的人可能會少一些。Quarkus首頁放出的標(biāo)語:超音速亞原子的Java(Supersonic Subatomic
    的頭像 發(fā)表于 11-10 10:01 ?769次閱讀
    Quarkus是<b class='flag-5'>SpringBoot</b>的替代品嗎?

    javaweb和springboot能一起用嗎

    JavaWeb 和 SpringBoot 是兩種針對 Java 程序開發(fā)的框架,它們可以在一起使用。在本文中,我詳細(xì)介紹 JavaWeb 和 Sp
    的頭像 發(fā)表于 11-16 10:54 ?2344次閱讀

    基于springboot和vue框架的Java

    本文詳細(xì)介紹基于Spring Boot和Vue框架進(jìn)行Java應(yīng)用開發(fā)的實踐。首先,介紹Spring Boot和Vue框架的基本概念及其優(yōu)點。然后,
    的頭像 發(fā)表于 12-03 15:15 ?1114次閱讀

    基于Javaspringboot、avue技術(shù)開發(fā)的醫(yī)院績效核算系統(tǒng)源碼

    ,為績效考核提供數(shù)據(jù)依據(jù),為領(lǐng)導(dǎo)提供智能決策支持,通過靜態(tài)、動態(tài)、圖形表現(xiàn)等多種形式提供了科學(xué)的、準(zhǔn)確的、快速的、直觀的分析數(shù)據(jù)、圖表等。? 醫(yī)院績效考核系統(tǒng)源碼開發(fā)環(huán)境: Java+springboot+mybaits+avue+MySQL+maven+Visual
    的頭像 發(fā)表于 01-11 17:31 ?131次閱讀
    基于<b class='flag-5'>Java</b>、<b class='flag-5'>springboot</b>、avue技術(shù)<b class='flag-5'>開發(fā)</b>的醫(yī)院績效核算系統(tǒng)源碼