日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Spring Boot應(yīng)用開發(fā)初探與實例講解

瀏覽:164日期:2023-06-28 14:19:58

Spring Boot是由Pivotal團隊提供的全新Spring開發(fā)框架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。

從它的名字可以看出,Spring Boot 的作用在于創(chuàng)建和啟動新的基于 Spring 框架的項目。

它的目的是幫助開發(fā)人員很容易的創(chuàng)建出獨立運行和產(chǎn)品級別的基于 Spring 框架的應(yīng)用。

它包含的特性如下:

應(yīng)用獨立運行,對于Web應(yīng)用直接嵌入應(yīng)用服務(wù)器(Tomcat or Jetty) 根據(jù)項目的依賴(Maven or Gradle中定義的依賴)自動配置Spring框架的特性 提供生產(chǎn)環(huán)境中的監(jiān)控功能——性能、應(yīng)用狀態(tài)信息等 不會生成繁瑣的Java代碼以及XML配置文件

在這節(jié)課中,我們將對Spring Boot的方方面面進行初步的探索,看看Spring Boot究竟能為我們提供怎樣的開發(fā)能力。

環(huán)境準(zhǔn)備 一個稱手的文本編輯器(例如Vim、Emacs、Sublime Text)或者IDE(Eclipse、Idea Intellij) Java環(huán)境(JDK 1.7或以上版本) 構(gòu)建工具Gradle 2.3使用Gradle作為項目構(gòu)建工具

首先創(chuàng)建一個項目目錄,在目錄中創(chuàng)建一個Gradle項目描述文件build.gradle:

buildscript { repositories {jcenter() } dependencies {classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.2.5.RELEASE'classpath 'com.github.adrianbk:gradle-jvmsrc-plugin:0.6.1' }}apply plugin: ’java’apply plugin: ’eclipse’apply plugin: ’idea’apply plugin: ’spring-boot’apply plugin: ’com.github.adrianbk.jvmsrc’jvmsrc { packageName 'tmy'}jar { baseName = ’spring-boot-guides’ version = ’1.0.0’}repositories { jcenter()}dependencies { compile('org.springframework.boot:spring-boot-starter-web')}task wrapper(type: Wrapper) { gradleVersion = ’2.4’}

在這個文件中,使用到了Spring Boot Gradle插件來幫助我們簡化一些配置工作:

提供了Spring Boot框架的依賴定義,在dependencies標(biāo)簽中直接使用它們即可(不需要聲明版本號) 將應(yīng)用的代碼及所有的依賴打包成一個單獨的jar文件 自動搜索main函數(shù)并作為jar文件的啟動函數(shù),jar文件是一個獨立可執(zhí)行的文件

另外由于Gradle的默認(rèn)特性——例如源代碼放在src/main/java文件夾下,我們引入Gradle JVM Src插件,通過配置:

apply plugin: ’com.github.adrianbk.jvmsrc’jvmsrc { packageName 'tmy'}

并運行g(shù)radle createJvmSrcDirs,src/main/java/tmy等目錄就被創(chuàng)建出來,省去我們手動創(chuàng)建的麻煩。

Spring Boot能做什么

Spring Boot本身并沒有在Spring框架的基礎(chǔ)上擴展新功能,它僅僅是提供了一種更加快速構(gòu)建Spring應(yīng)用的方式。Spring Boot會在根據(jù)類路徑上的依賴(也就是Maven或Gradle中定義的依賴)來自動完成配置。例如:

使用Spring MVC開發(fā)Web應(yīng)用,一般需要配置各類Bean(無論是XML還是Java Config),例如DispacherServlet。當(dāng)Spring Boot應(yīng)用啟動后,如果spring-webmvc依賴在類路徑上,Spring Boot會自動把這些配置全部自動添加,并且不生成任何代碼。傳統(tǒng)的Spring MVC應(yīng)用運行時還需要Servlet容器,Spring Boot會內(nèi)嵌一個Tomcat或Jetty來運行應(yīng)用,這同樣也不需要開發(fā)者進行任何配置。 如果不想使用Tomcat,而是換成Jetty?沒問題,在build.gradle中去掉Tomcat的依賴(默認(rèn)配置),換成Jetty應(yīng)用服務(wù)器的依賴,除此之外應(yīng)用代碼不需要進行任何改變。 模板引擎Thymeleaf也同樣被Spring Boot支持自動發(fā)現(xiàn),以往瑣碎的配置如今也變成了1-2行Gradle依賴配置。

提示

Spring Boot不會生成或者修改你的源代碼,它僅僅是在應(yīng)用啟動時根據(jù)類路徑以及應(yīng)用配置動態(tài)的改變Spring應(yīng)用上下文的配置

簡單的Web應(yīng)用

現(xiàn)在我們創(chuàng)建一個最簡單的Web應(yīng)用:

src/main/java/tmy/Application.java

package tmy;import java.util.Arrays;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.ApplicationContext;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.bind.annotation.RequestMapping;@RestController@SpringBootApplicationpublic class Application { @RequestMapping('/') public String index() {return 'Greetings from Spring Boot!'; } public static void main(String[] args) {ApplicationContext ctx = SpringApplication.run(Application.class, args);System.out.println('Let’s inspect the beans provided by Spring Boot:');String[] beanNames = ctx.getBeanDefinitionNames();Arrays.sort(beanNames);for (String beanName : beanNames) { System.out.println(beanName);} }}

@SpringBootApplication是Spring Boot提供的注解,他相當(dāng)于加上如下注解:

@Configuration,表明Application是一個Spring的配置對象,用于配置Spring應(yīng)用上下文。 @EnableAutoConfiguration,Spring Boot會根據(jù)類路徑(classpath)以及一些屬性值來自動完成一些配置行為,例如:開發(fā)基于Spring MVC的Web應(yīng)用,需要在配置中加上@EnableWebMvc直接來激活一些默認(rèn)的Web配置,一旦Spring Boot發(fā)現(xiàn)運行時類路徑上包含了 spring-webmvc 依賴,它會自動的完成一個Web應(yīng)用的基本配置——例如配置DispatcherServlet等等。 @ComponenScan告知Spring應(yīng)用從什么位置去發(fā)現(xiàn)Spring構(gòu)件(@Component, @Service, @Configuration)等等運行Web應(yīng)用

完成上述配置后,運行應(yīng)用有兩種方法:

在IDE中直接運行main方法 通過Gradle打包應(yīng)用:gradle build,運行:java -jar build/libs/${appname}-{version}.jar

在控制臺的輸出中會發(fā)現(xiàn)如下信息:

Let’s inspect the beans provided by Spring Boot:applicationbeanNameHandlerMappingdefaultServletHandlerMappingdispatcherServletembeddedServletContainerCustomizerBeanPostProcessorhandlerExceptionResolverhelloControllerhttpRequestHandlerAdaptermessageSourcemvcContentNegotiationManagermvcConversionServicemvcValidatororg.springframework.boot.autoconfigure.MessageSourceAutoConfigurationorg.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfigurationorg.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfigurationorg.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration$DispatcherServletConfigurationorg.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration$EmbeddedTomcatorg.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfigurationorg.springframework.boot.context.embedded.properties.ServerPropertiesorg.springframework.context.annotation.ConfigurationClassPostProcessor.enhancedConfigurationProcessororg.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessororg.springframework.context.annotation.internalAutowiredAnnotationProcessororg.springframework.context.annotation.internalCommonAnnotationProcessororg.springframework.context.annotation.internalConfigurationAnnotationProcessororg.springframework.context.annotation.internalRequiredAnnotationProcessororg.springframework.web.servlet.config.annotation.DelegatingWebMvcConfigurationpropertySourcesBinderpropertySourcesPlaceholderConfigurerrequestMappingHandlerAdapterrequestMappingHandlerMappingresourceHandlerMappingsimpleControllerHandlerAdaptertomcatEmbeddedServletContainerFactoryviewControllerHandlerMapping

這就是Spring應(yīng)用上下文中的所有Bean信息,其中有Spring MVC中需要用到的dispatcherServlet, mvcConversionService, mvcValidator等等悉數(shù)在列,而我們并沒有進行任何的配置,這也就是Spring Boot完成的工作。

訪問瀏覽器或者使用curl:

$ curl localhost:8080Greetings from Spring Boot!添加生產(chǎn)環(huán)境特性

雖然沒有將應(yīng)用打成WAR包并放入應(yīng)用服務(wù)器中,但Spring Boot本身是可以應(yīng)用于生成環(huán)境的。為了能夠獲取生產(chǎn)環(huán)境的應(yīng)用信息,Spring Boot提供了開箱即用的模塊Actuator:

compile('org.springframework.boot:spring-boot-starter-actuator')

在添加完這個依賴后并啟動應(yīng)用,會看到多了一些URL Mapping信息:

2015-07-24 12:05:33.440 ... : Mapped '{[/info],methods=[GET],params=[],headers=[],consum...2015-07-24 12:05:33.441 ... : Mapped '{[/autoconfig],methods=[GET],params=[],headers=[],...2015-07-24 12:05:33.441 ... : Mapped '{[/mappings],methods=[GET],params=[],headers=[],co...2015-07-24 12:05:33.442 ... : Mapped '{[/trace],methods=[GET],params=[],headers=[],consu...2015-07-24 12:05:33.442 ... : Mapped '{[/env/{name:.*}],methods=[GET],params=[],headers=...2015-07-24 12:05:33.442 ... : Mapped '{[/env],methods=[GET],params=[],headers=[],consume...2015-07-24 12:05:33.443 ... : Mapped '{[/configprops],methods=[GET],params=[],headers=[]...2015-07-24 12:05:33.443 ... : Mapped '{[/metrics/{name:.*}],methods=[GET],params=[],head...2015-07-24 12:05:33.443 ... : Mapped '{[/metrics],methods=[GET],params=[],headers=[],con...2015-07-24 12:05:33.444 ... : Mapped '{[/health],methods=[GET],params=[],headers=[],cons...2015-07-24 12:05:33.444 ... : Mapped '{[/dump],methods=[GET],params=[],headers=[],consum...2015-07-24 12:05:33.445 ... : Mapped '{[/beans],methods=[GET],params=[],headers=[],consu...

通過這些URL我們可以獲知Spring應(yīng)用的運行時信息,例如:

$ curl localhost:8080/health{'status':'UP'}Spring Boot Starters

為了能夠快速開發(fā)各類型的應(yīng)用以及支持種類繁多的第三方庫,Spring Boot提供了大量的starter依賴,引入這些依賴后應(yīng)用即擁有開箱即用的配置,舉例:

compile('org.springframework.boot:spring-boot-starter-thymeleaf')

那么只需要將模板文件放入src/main/resources/templates目錄下,即可以正常的編寫Spring MVC的Web頁面了。

總結(jié)

Spring 框架作為目前非常流行的一個 Java 應(yīng)用開發(fā)框架,它所包含的內(nèi)容是非常繁多的。

Spring 框架包含幾十個不同的子項目,涵蓋應(yīng)用開發(fā)的不同方面。要在這些子項目之間進行選擇,并快速搭建一個可以運行的應(yīng)用是比較困難的事情。Spring Boot 的目的在于快速創(chuàng)建可以獨立運行的 Spring 應(yīng)用。

通過 Spring Boot 可以根據(jù)相應(yīng)的模板快速創(chuàng)建應(yīng)用并運行。Spring Boot 可以自動配置 Spring 的各種組件,并不依賴代碼生成和 XML 配置文件。Spring Boot 可以大大提升使用 Spring 框架時的開發(fā)效率。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲激情偷拍| 日韩影院在线观看| 国产欧美一区二区三区米奇| 日韩精品亚洲专区在线观看| 日韩激情av在线| 国产亚洲第一伦理第一区| 国产精品伊人| 久久中文精品| 久久影院午夜精品| 久久蜜桃精品| 亚洲欧美日韩综合国产aⅴ| 亚洲深夜影院| 午夜电影一区| 精品亚洲成人| 高清一区二区三区| 国产一区观看| 亚洲aa在线| 精品免费在线| 欧美亚洲国产一区| 国产精品三上| 欧美日韩亚洲一区二区三区在线| 国产精品毛片视频| 日本不卡免费高清视频在线| 久久九九精品| 一区二区91| 久久久久久久久成人| 青青草国产成人99久久| 日本不卡视频一二三区| 亚洲精品1区| re久久精品视频| 婷婷久久免费视频| 麻豆国产欧美日韩综合精品二区| 91视频一区| 亚洲欧美日韩在线观看a三区| 日本不卡一二三区黄网| 粉嫩av一区二区三区四区五区| 欧美日韩国产高清电影| 亚洲精品精选| 国产精品国产一区| 久久成人亚洲| 美腿丝袜在线亚洲一区| 免费观看不卡av| 日韩精品视频中文字幕| 国产成人精品亚洲线观看| 亚洲精品国产偷自在线观看| 国产色99精品9i| 欧美色图一区| 国产欧美91| 欧美日韩一二三四| 国产日韩欧美中文在线| 日韩成人三级| 日韩一区二区三区四区五区| 成人污污视频| 亚洲区国产区| 蜜臀久久精品| 天堂va欧美ⅴa亚洲va一国产| 日本一区二区高清不卡| 中文字幕亚洲精品乱码| 色综合五月天| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久中文欧美| 亚洲一区av| 欧洲在线一区| 国产精品主播在线观看| 婷婷精品进入| 国产 日韩 欧美 综合 一区| 亚洲18在线| 亚洲天堂黄色| 成人在线视频区| 日韩精品视频在线看| 999久久久91| 美女视频免费精品| 日韩精品欧美| 中文字幕在线看片| 97视频热人人精品免费| 五月国产精品| 久久wwww| 日韩欧美中文字幕电影| 精品日产乱码久久久久久仙踪林| 影视先锋久久| 欧美日韩中出| 99亚洲视频| 久热综合在线亚洲精品| 久久中文字幕一区二区| 日韩在线观看一区二区| 欧美日韩精品免费观看视欧美高清免费大片 | 亚洲天堂av影院| 日韩av黄色在线| 亚洲tv在线| 亚洲一级少妇| 国产精品久久久久久模特| 欧美久久香蕉| 日本欧美在线| 日本欧美在线看| 99热精品久久| 日韩精品dvd| 国产一区二区久久久久| 国产精品一区二区三区四区在线观看| 蜜桃av一区| 91精品福利| 成人精品天堂一区二区三区| 精品久久久久久久| 日韩国产欧美一区二区三区| 午夜在线视频一区二区区别| 国产综合激情| 黄色aa久久| 欧美91在线| 国产欧美亚洲一区| 91麻豆精品激情在线观看最新| 综合激情一区| 国产亚洲电影| 精品美女在线视频| 国产伦乱精品| 午夜一级在线看亚洲| 水蜜桃久久夜色精品一区| 欧美亚洲福利| 国产精品色婷婷在线观看| 午夜亚洲精品| 亚洲男人在线| 日韩电影在线视频| 麻豆精品一区二区综合av| 日韩毛片网站| 日本aⅴ亚洲精品中文乱码| 一区二区三区四区在线观看国产日韩| 国产一区清纯| 日韩亚洲在线| 日韩在线a电影| 亚洲a成人v| 国产日韩高清一区二区三区在线 | 久久亚洲国产| 久久九九电影| 亚洲午夜在线| 欧美日韩国产综合网| 欧美午夜不卡影院在线观看完整版免费| 久久在线电影| 红桃视频国产精品| 影音先锋久久精品| 日本成人在线一区| 欧美国产极品| 日韩亚洲一区在线| 国产在线不卡| 久久国产精品久久w女人spa| 在线亚洲激情| 日本精品国产| 欧美国产另类| 日韩在线二区| 国产免费成人| 欧美日韩视频免费看| 激情久久99| 久久中文亚洲字幕| 男人操女人的视频在线观看欧美| 亚洲精品美女| 美女性感视频久久| 久久视频一区| 蜜臀精品久久久久久蜜臀| 青青草伊人久久| 高潮久久久久久久久久久久久久| 日韩国产一区二区| 午夜在线视频一区二区区别| 日本不卡一区二区| 高清一区二区三区| 欧美日韩国产一区精品一区| 日韩国产在线不卡视频| 91麻豆国产自产在线观看亚洲| 婷婷丁香综合| 日本不卡一二三区黄网| 国产一区二区视频在线看| 欧美.日韩.国产.一区.二区 | 久久精品一区二区三区中文字幕| 欧美三级网址| 中文字幕av亚洲精品一部二部| 国产欧美在线| 91精品啪在线观看国产18| 一区二区三区网站| 国产suv精品一区二区四区视频| 九一精品国产| 国产麻豆精品| 免费视频一区三区| 免费高潮视频95在线观看网站| 石原莉奈在线亚洲二区| 精品三级国产| 99日韩精品| 国产精品极品国产中出| 亚洲一级二级| 91成人在线精品视频| 蜜桃精品在线| 日韩精品三区四区| 日韩电影在线视频| 日本不卡的三区四区五区| 日韩久久视频| 青草综合视频| 狠狠爱成人网| 国产成人久久精品麻豆二区| 老色鬼久久亚洲一区二区| 精品国产欧美| 日本一区福利在线| 国产麻豆久久| 国产精品亚洲欧美| 国产一区白浆| 日韩一区自拍|