成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用Spring Boot顛覆Java應(yīng)用開發(fā)

新聞 前端
使用Java做Web應(yīng)用開發(fā)已經(jīng)有近20年的歷史了,從最初的Servlet1.0一步步演化到現(xiàn)在如此多的框架,庫以及整個(gè)生態(tài)系統(tǒng)。

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

Java開發(fā)概述:

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

用Spring Boot顛覆Java應(yīng)用開發(fā)

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

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

什么是Spring Boot?

Spring Boot便是一個(gè)社區(qū)反饋推動的項(xiàng)目. Spring Boot可以說是至少近5年來Spring乃至整個(gè)Java社區(qū)最有影響力的項(xiàng)目之一。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é)省程序員大量的時(shí)間和精力,能夠讓程序員專注在業(yè)務(wù)邏輯代碼的編寫上

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

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

為什么Spring Boot是顛覆性的?

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

[[230559]]

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

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

[[230560]]

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

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

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

用Spring Boot顛覆Java應(yīng)用開發(fā)

用Spring Boot顛覆Java應(yīng)用開發(fā)

如上可以看到為了編寫簡單的hello world REST API我們引入了Spring Core, Spring Web, Spring Web MVC, Java Servlet and Jackson這么多包依賴。可以想象復(fù)雜一點(diǎn)的程序這個(gè)pom會變成什么樣。。。

2. 編寫HelloWorldInitializer class如下

用Spring Boot顛覆Java應(yīng)用開發(fā)

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

3. 編寫HelloWorldConfiguration class

用Spring Boot顛覆Java應(yīng)用開發(fā)

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

4. 真正開始編寫HelloWorldRestController

用Spring Boot顛覆Java應(yīng)用開發(fā)

5. 下載Tomcat

6. 打包部署到Tomcat上

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

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

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

[[230562]]

1. 編寫pom.xml

用Spring Boot顛覆Java應(yīng)用開發(fā)

用Spring Boot顛覆Java應(yīng)用開發(fā)

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

2. 編寫main 函數(shù)

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

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

3. 編寫HelloWorldRestController

用Spring Boot顛覆Java應(yīng)用開發(fā)

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

之前HelloWorld程序?qū)τ谛率謥碚f至少要花個(gè)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ā)。

責(zé)任編輯:張燕妮 來源: Java技術(shù)交流
相關(guān)推薦

2016-10-14 14:16:28

Spring BootJava應(yīng)用

2018-05-31 15:30:11

JavaSpring Boot應(yīng)用開發(fā)

2022-11-09 07:49:12

Records類聲明代碼

2019-01-15 11:40:14

開發(fā)技能代碼

2017-09-20 09:46:38

Spring BootSpring Clou內(nèi)存

2025-04-27 01:55:44

SpringConfigData配置

2024-06-04 10:37:06

2024-06-13 09:17:41

2018-12-07 15:50:52

Java編程語言框架

2022-01-20 15:33:30

區(qū)塊鏈創(chuàng)新初創(chuàng)公司

2017-08-02 14:44:06

Spring Boot開發(fā)注解

2025-07-02 10:06:32

2025-02-05 12:28:44

2024-09-30 11:51:07

2023-10-16 23:06:26

2018-10-22 15:34:31

Spring Boo監(jiān)控視化

2022-02-09 20:39:52

Actuator應(yīng)用監(jiān)控

2019-05-05 11:02:07

vscodevue前端

2023-10-06 19:21:49

Initializr應(yīng)用Spring

2020-11-05 07:23:17

Java應(yīng)用反射
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲欧美视频 | 国产98色在线 | 日韩 | 久久亚洲国产精品 | 91福利在线观看视频 | 国产精品免费一区二区三区四区 | 午夜精品久久久 | 精品国产欧美 | 国产福利在线免费观看 | 中文字幕日本一区二区 | 99久久久久久久 | 日本网站免费在线观看 | 午夜网| 中文字幕三区 | 亚洲精品av在线 | 一区二区在线 | 污污免费网站 | 久久久久久高潮国产精品视 | 国产欧美视频一区二区三区 | 成人精品鲁一区一区二区 | 国产精品视频一区二区三区四蜜臂 | 国产高清av免费观看 | 欧美日韩亚洲系列 | 中文字幕韩在线第一页 | 国产精品久久久久久久久久久免费看 | 国产激情一区二区三区 | 国产精品久久久久久久久久 | 欧美日本在线观看 | 国产精品免费观看视频 | 成年人在线播放 | 国产97在线 | 日韩 | 精品一区二区三区在线视频 | 午夜寂寞影院在线观看 | 一区中文 | 日韩和的一区二区 | 国产成人高清在线观看 | 搞av.com| 国产精品一区在线观看 | 国产成人精品综合 | 久久99国产精一区二区三区 | 91精品一区 | 亚洲国产高清高潮精品美女 |