成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Spring Boot應用開發初探與實例講解

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

Spring Boot是由Pivotal團隊提供的全新Spring開發框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。

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

它的目的是幫助開發人員很容易的創建出獨立運行和產品級別的基于 Spring 框架的應用。

它包含的特性如下:

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

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

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

首先創建一個項目目錄,在目錄中創建一個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標簽中直接使用它們即可(不需要聲明版本號) 將應用的代碼及所有的依賴打包成一個單獨的jar文件 自動搜索main函數并作為jar文件的啟動函數,jar文件是一個獨立可執行的文件

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

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

并運行gradle createJvmSrcDirs,src/main/java/tmy等目錄就被創建出來,省去我們手動創建的麻煩。

Spring Boot能做什么

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

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

提示

Spring Boot不會生成或者修改你的源代碼,它僅僅是在應用啟動時根據類路徑以及應用配置動態的改變Spring應用上下文的配置

簡單的Web應用

現在我們創建一個最簡單的Web應用:

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提供的注解,他相當于加上如下注解:

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

完成上述配置后,運行應用有兩種方法:

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

在控制臺的輸出中會發現如下信息:

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應用上下文中的所有Bean信息,其中有Spring MVC中需要用到的dispatcherServlet, mvcConversionService, mvcValidator等等悉數在列,而我們并沒有進行任何的配置,這也就是Spring Boot完成的工作。

訪問瀏覽器或者使用curl:

$ curl localhost:8080Greetings from Spring Boot!添加生產環境特性

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

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

在添加完這個依賴后并啟動應用,會看到多了一些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應用的運行時信息,例如:

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

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

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

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

總結

Spring 框架作為目前非常流行的一個 Java 應用開發框架,它所包含的內容是非常繁多的。

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

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

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
一区二区三区福利| 91高清视频在线| 亚洲另类在线视频| 国产成人精品影院| av网站免费线看精品| 日韩午夜免费| 亚洲人成人一区二区三区| 国产欧美日韩伦理| 欧美日韩国产综合一区二区 | 日日夜夜免费精品视频| 日韩午夜在线影院| 国产午夜亚洲精品理论片色戒| 欧美伦理视频网站| 欧美成人乱码一区二区三区| 日本丶国产丶欧美色综合| 日韩一级片网站| 一区精品在线播放| 亚洲男人天堂av| 亚洲一区二区成人在线观看| 国产精品地址| 欧美日韩国产一区| 久久男女视频| 91精品国产免费| 久久精品无码一区二区三区| 亚洲少妇最新在线视频| 不卡在线观看av| 在线观看91精品国产入口| 欧美顶级少妇做爰| 亚洲美女偷拍久久| 性欧美videos另类喷潮| 日韩欧美成人一区二区| 国产精品91一区二区| 精品久久久久久久久久久院品网 | 日本韩国一区二区| 极品少妇一区二区三区精品视频| 日韩限制级电影在线观看| 欧美日韩一区二区在线观看视频| 香蕉久久夜色精品国产使用方法| 国产精品国产三级国产专区53| 欧美精品一区二区蜜臀亚洲| 国产69精品久久久久毛片 | 极品中文字幕一区| 高清国产午夜精品久久久久久| 国产精品福利一区| 一区二区三区自拍| 精品国产一区二区三区不卡| 欧美伊人久久久久久午夜久久久久| 欧美黄色一区二区| 欧美一区二区三区在线播放 | 亚洲欧美电影在线观看| 樱桃成人精品视频在线播放| 亚洲国产婷婷| 久久精品九九| 久久国产日本精品| 欧美制服丝袜第一页| 欧美日韩精品三区| 日韩欧美国产不卡| 久久午夜免费电影| 国产精品网站在线观看| 国产精品久久福利| 亚洲综合色在线| 久久成人久久爱| 99re这里只有精品视频首页| 97久久精品人人爽人人爽蜜臀| 欧美日韩理论| 色欧美日韩亚洲| 欧美精品一区二区久久久| 亚洲免费资源在线播放| 麻豆国产欧美日韩综合精品二区 | 日韩电影一区二区三区四区| 国产电影精品久久禁18| 亚洲欧美影院| 91福利视频在线| 国产欧美日韩精品在线| 日韩av在线免费观看不卡| 婷婷国产v国产偷v亚洲高清| 国产精一区二区三区| 狠久久av成人天堂| 欧美午夜一区二区三区免费大片| 久久精品在线观看| 免费在线看成人av| 韩国亚洲精品| 欧美欧美欧美欧美| 一区二区三区成人| 成人午夜激情片| 久久蜜桃精品| 中文字幕一区二区视频| 国产一区二区三区| 免费久久99精品国产自| 久久一夜天堂av一区二区三区| 一级精品视频在线观看宜春院 | 亚洲一区二区三区影院| 成人一级片在线观看| 奶水喷射视频一区| 日本一区二区三区四区| 国产成人综合在线观看| 在线视频你懂得一区| 一区二区高清在线| 欧美日韩三级| 欧美成人精品福利| 久久精品二区亚洲w码| 日韩午夜精品| 久久久噜噜噜久噜久久综合| 精品一区二区成人精品| 翔田千里一区二区| 日韩理论片网站| 欧美日韩国产综合视频在线| 日韩欧美中文字幕精品| 精品在线免费观看| 色天使久久综合网天天| 亚洲国产aⅴ成人精品无吗| 狠狠入ady亚洲精品经典电影| 久久中文娱乐网| 成人高清免费观看| 日韩精品一区二区在线| 国产一区二区三区日韩| 欧美色国产精品| 麻豆久久久久久久| 色88888久久久久久影院野外| 一区二区视频在线| 色综合久久综合网| 久久香蕉国产线看观看99| 韩国一区二区视频| 一本色道久久综合精品竹菊| 亚洲色图在线播放| 91在线一区二区| 久久国产精品99国产| 亚洲一区二区欧美日韩 | 国产在线视频不卡二| 欧美精品三级日韩久久| 国产传媒欧美日韩成人| 成人激情小说网站| 色婷婷综合久色| 国产精品99久久久久久久女警 | 亚洲欧美日本在线| 国产精品主播| 麻豆成人91精品二区三区| 欧美一区二区三区公司| 欧美91福利在线观看| 亚洲欧美经典视频| 久久国产精品久久w女人spa| 琪琪久久久久日韩精品| 91精品国产91久久综合桃花| 97超碰欧美中文字幕| 夜夜嗨av一区二区三区四季av | 欧美日韩天天操| 亚洲国产乱码最新视频| 91精品国产综合久久蜜臀| 亚洲黄色av一区| 中国成人在线视频| 精品亚洲国产成人av制服丝袜| 国产视频一区二区在线| 一区二区三区久久网| 国产一区二区三区在线观看精品| 精品国产91洋老外米糕| 99精品国产一区二区青青牛奶| 中文字幕一区在线观看| 91精品1区2区| 午夜视频精品| 奇米影视一区二区三区小说| 欧美v日韩v国产v| 国产精品一区二区在线观看| 国产大陆a不卡| 亚洲香肠在线观看| 久久综合久久综合久久| 欧美亚洲动漫制服丝袜| 影音先锋亚洲电影| 国产一区二区三区免费| 一区二区三区在线影院| 欧美一区二区三区四区五区| 夜久久久久久| 午夜精品久久久久久久久久久| 在线电影院国产精品| 欧美国产先锋| 国产一区二区三区视频在线播放| 亚洲最新视频在线播放| 亚洲一区二区三区精品在线观看| 美腿丝袜亚洲综合| 亚洲欧美国产毛片在线| 亚洲精品一区二区三区四区高清| 欧洲精品一区二区三区在线观看| 亚洲精品123区| 欧美日韩一区在线视频| av电影在线观看一区| 老司机精品视频导航| 亚洲一线二线三线视频| 亚洲欧洲精品一区二区三区 | 欧美综合在线视频| 校园激情久久| 亚洲一区二区伦理| 一区二区三区四区五区精品视频| 91麻豆视频网站| av午夜一区麻豆| 91麻豆免费在线观看| 成人av免费在线观看| 高清久久久久久| 91精品一区二区三区久久久久久| 极品尤物久久久av免费看| 午夜久久资源| 欧美人与禽猛交乱配视频|