摘要:第二個類級別注解是。將引導應用程序,啟動,從而啟動自動配置服務器。比如想使用不同版本的,具體如下在標簽中還可以指定編譯的版本和項目的編碼格式指定項目編碼為使用插件可以為項目提供的操作方式,的個,默認。
引言
Spring 框架對于很多 Java 開發人員來說都不陌生。Spring 框架包含幾十個不同的子項目,涵蓋應用開發的不同方面。如此多的子項目和組件,一方面方便了開發人員的使用,另外一個方面也帶來了使用方面的問題。每個子項目都有一定的學習曲線。開發人員需要了解這些子項目和組件的具體細節,才能知道如何把這些子項目整合起來形成一個完整的解決方案。在如何使用這些組件上,并沒有相關的最佳實踐提供指導。對于新接觸 Spring 框架的開發人員來說,并不知道如何更好的使用這些組件。Spring 框架的另外一個常見問題是要快速創建一個可以運行的應用比較麻煩。Spring Boot 是 Spring 框架的一個新的子項目,用于創建 Spring 4.0 項目。它可以自動配置 Spring 的各種組件,并不依賴代碼生成和 XML 配置文件。Spring Boot 也提供了對于常見場景的推薦組件配置。Spring Boot 可以大大提升使用 Spring 框架時的開發效率,對于快速開發一個可運行的非大型的項目非常合適。
簡介從 Spring Boot 項目名稱中的 Boot 可以看出來,Spring Boot 的作用在于創建和啟動新的基于 Spring 框架的項目。它的目的是幫助開發人員很容易的創建出獨立運行和產品級別的基于 Spring 框架的應用。Spring Boot 會選擇最適合的 Spring 子項目和第三方開源庫進行整合。大部分 Spring Boot 應用只需要非常少的配置就可以快速運行起來。
Spring Boot 包含的特性如下:
* 創建可以獨立運行的 Spring 應用。 * 直接嵌入 Tomcat 或 Jetty 服務器,不需要部署 WAR 文件。 * 盡可能的根據項目依賴來自動配置 Spring 框架。 * 不需要傳統的Sring項目繁多的 XML 配置文件。
通過 Spring Boot,創建新的 Spring 應用變得非常容易,而且創建出的 Spring 應用符合通用的最佳實踐。
官方文檔上有這樣一段介紹:
代碼示例Learn what you can do with Spring Boot ?
Spring Boot offers a fast way to build applications. It looks at your classpath and at beans you have configured, makes reasonable assumptions about what you’re missing, and adds it. With Spring Boot you can focus more on business features and less on infrastructure.
For example:Got Spring MVC? There are several specific beans you almost always need, and Spring Boot adds them automatically. A Spring MVC app also needs a servlet container, so Spring Boot automatically configures embedded Tomcat.
Got Jetty? If so, you probably do NOT want Tomcat, but instead embedded Jetty. Spring Boot handles that for you.
Got Thymeleaf? There are a few beans that must always be added to your application context; Spring Boot adds them for you.
These are just a few examples of the automatic configuration Spring Boot provides. At the same time, Spring Boot doesn’t get in your way. For example, if Thymeleaf is on your path, Spring Boot adds a SpringTemplateEngine to your application context automatically. But if you define your own SpringTemplateEngine with your own settings, then Spring Boot won’t add one. This leaves you in control with little effort on your part.
Spring Boot doesn"t generate code or make edits to your files. Instead, when you start up your application, Spring Boot dynamically wires up beans and settings and applies them to your application context.Spring Boot doesn"t generate code or make edits to your files. Instead, when you start up your application, Spring Boot dynamically wires up beans and settings and applies them to your application context.
1.在IDEA中創建一個項目,和一個helloworld模塊:
目錄結構如圖:
在pom.xml文件中引入Spring-boot的依賴:
org.springframework.boot spring-boot-starter-parent 1.5.7.RELEASE 4.0.0 jar org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-maven-plugin com.lzumetal.springboot.helloworld.Application
再創建兩個類:
第一個是Application.java,用來啟動SpringBoot應用:
package com.lzumtal.springboot.helloworld; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Aplication.class, args); } }
第二個類HelloController.java用來響應web請求:
package com.lzumetal.springboot.helloworld.controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @RequestMapping("/home") String home() { return "Hello World!"; } @RequestMapping("/hello/{name}") String hello(@PathVariable("name") String name) { return "hello " + name + "!!!"; } }
2.運行
運行Aplication中的main()方法,控制臺打印啟動信息:
在瀏覽中訪問:http://localhost:8080/home
訪問:http://localhost:8080/hello/spring-boot
這樣示例就成功運行了。
補充說明1.@SpringbootApplication注解:
Spring Boot默認是掃描@SpringBootApplication注解的類(即啟動類)的同包以及子包下的類。
使用@SpringbootApplication注解 可以解決根類或者配置類頭上注解過多的問題,一個@SpringbootApplication相當于@Configuration,@EnableAutoConfiguration和@ComponentScan 并具有他們的默認屬性值
@SpringBootApplication is a convenience annotation that adds all of the following:
@Configuration tags the class as a source of bean definitions for the application context.
@EnableAutoConfiguration tells Spring Boot to start adding beans based on classpath settings, other beans, and various property settings.
Normally you would add @EnableWebMvc for a Spring MVC app, but Spring Boot adds it automatically when it sees spring-webmvc on the classpath. This flags the application as a web application and activates key behaviors such as setting up a DispatcherServlet.
@ComponentScan tells Spring to look for other components, configurations, and services in the hello package, allowing it to find the controllers.
2.@EnableAutoConfiguration注解(開啟自動配置):@EnableAutoConfiguration注解的作用在于讓 Spring Boot 根據應用所聲明的依賴來對 Spring 框架進行自動配置,這就減少了開發人員的工作量。
The second class-level annotation is @EnableAutoConfiguration. This annotation tells Spring Boot to “guess” how you will want to configure Spring, based on the jar dependencies that you have added. Since spring-boot-starter-web added Tomcat and Spring MVC, the auto-configuration will assume that you are developing a web application and setup Spring accordingly.
Starters and Auto-Configuration
Auto-configuration is designed to work well with “Starters”, but the two concepts are not directly tied. You are free to pick-and-choose jar dependencies outside of the starters and Spring Boot will still do its best to auto-configure your application.
第二個類級別注解是@EnableAutoConfiguration。這個注解告訴Spring Boot“猜測”將如何配置Spring,它是基于添加的jar依賴。 由于spring-boot-starter-web添加了Tomcat和Spring MVC,因此自動配置將假設正在開發一個Web應用程序并相應地設置Spring。
啟動器和自動配置(Starters & Auto-Configuration):
自動配置旨在與“Starters”配合使用,但這兩個概念不直接綁定。可以自由選擇和選擇起始者以外的jar依賴,Spring Boot仍將盡力自動配置應用程序。
3.main()方法
The main() method uses Spring Boot’s SpringApplication.run() method to launch an application. Did you notice that there wasn’t a single line of XML? No web.xml file either. This web application is 100% pure Java and you didn’t have to deal with configuring any plumbing or infrastructure.
“main”方法應用程序的最后一部分是主(main)方法。 這只是一個遵循Java約定的應用程序入口點的標準方法。main方法通過調用run來委托Spring Boot SpringApplication類。SpringApplication將引導應用程序,啟動Spring,從而啟動自動配置Tomcat Web服務器。需要傳遞Example.class作為run方法的參數來告訴SpringApplication,這是主要的Spring組件。args數組也被傳遞以暴露任何命令行參數。
4.繼承 spring-boot-starter-parent
作用是Spring-Boot為我們自動添加相關的依賴,如果不想使用Spring Boot中的默認版本,可以在pom.xml文件的properites標簽中指定我們自己想要引入的版本,這樣就可以覆蓋默認的版本。
比如想使用不同版本的Spring Data,具體如下:
Fowler-SR2
在properties標簽中還可以指定JDK編譯的版本和項目的編碼格式:
UTF-8 UTF-8 1.8
5.spring-boot-maven-plugin 插件
可以為SpringBoog項目提供Maven的操作方式,Spring Boot Maven plugin的5個Goals
* spring-boot:repackage,默認goal。在mvn package之后,再次打包可執行的jar/war,同時保留mvn package生成的jar/war為.origin * spring-boot:run,運行Spring Boot應用 * spring-boot:start,在mvn integration-test階段,進行Spring Boot應用生命周期的管理 * spring-boot:stop,在mvn integration-test階段,進行Spring Boot應用生命周期的管理 * spring-boot:build-info,生成Actuator使用的構建信息文件build-info.properties
這里介紹一下 spring-boot:repackage 和 spring-boot:run 這兩個。
spring-boot:repackage :可以將項目打包成fat jar(executable jar)后,命令是:
mvm package spring-boot:repackage,或者直接使用 mvm package,(如果使用 mvn spring-boot:repackage 則會報錯)。之后我們就可以直接 通過 java -jar 的命令來啟動這個 SpringBoot 項目(試了一下即使沒有配置 mainClass 也是成功的)
mvn spring-boot:run:在 pom.xml 文件所在的目錄下運行該命令即可啟動 SpringBoot 項目,和在 Application.java 中運行main()方法的結果是一樣的
The Spring Boot Maven plugin provides many convenient features:
It collects all the jars on the classpath and builds a single, runnable "über-jar", which makes it more convenient to execute and transport your service.
It searches for the public static void main() method to flag as a runnable class.
It provides a built-in dependency resolver that sets the version number to match Spring Boot dependencies. You can override any version you wish, but it will default to Boot’s chosen set of versions.
本文示例代碼已上傳到github: https://github.com/liaosilzu2...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76381.html
摘要:一概括,如果使用開發一個的應用創建一個項目并且導入相關包。創建一個編寫一個控制類需要一個部署應用的服務器如,特點設計目的是用來簡化新應用的初始搭建以及開發過程。啟動器可以和位于同一個包下,或者位于的上一級包中,但是不能放到的平級以及子包下。 一,Spring Boot 介紹 Spring Boot不是一個新的框架,默認配置了多種框架使用方式,使用SpringBoot很容易創建一個獨立運...
摘要:簡介本系列基于的官方文檔,除去了文檔中一些冗余的東西,加上了一些自己的理解,意圖是在于幫助更多初識的人來進行一次探險。本系列建議具有基礎和使用經驗的同學學習。至此,一個程序就編寫完畢了。 簡介 本系列基于Spring Boot 2.x 的官方文檔,除去了文檔中一些冗余的東西,加上了一些自己的理解,意圖是在于幫助更多初識Spring Boot的人來進行一次探險。 本系列建議具有Java基...
摘要:使用嵌入式容器,應用無需達成包。自動依賴與版本控制。準生產環境的運行時應用監控。告訴開啟自動配置功能,這樣自動配置才能生效。其組成為為的底層注解,表明給容器中導入一個組件,導入的組建由類提供。 Spring Boot——入門 spring boot簡化了spring的開發,是J2EE一站式解決方案。 Spring Boot 的優缺點 優點 快速創建獨立運行的服務,與主流框架集成。 使...
摘要:關于的自動配置,這個是重點之一,后面細說。在后續的學習中會慢慢學習到。紅色標記的就是已經掃描到了并初始化成功了。 以下內容,如有問題,煩請指出,謝謝 springboot出來也很久了,以前零散地學習了不少,不過很長時間了都沒有在實際中使用過了,忘了不少,因此要最近準備抽時間系統的學習積累下springboot,給自己留個根。 因為以前學過一些,這里就主要根據官方文檔來學習了,可能會根據...
摘要:前言以前總是利用創建工程來使用只知其然不知其所以然今天從搭建一個基于的的項目創建工程與安裝依賴利用或等創建一個工程一路即可此時的目錄結構如下修改安裝首先在中加入繼承的主程序和一些依賴然后的加入程序依賴使成為項目框架主程序 前言 以前總是利用start.spring.io創建spring-boot工程來使用 ,只知其然不知其所以然 今天從0搭建一個基于mvnen的spring-boot...
閱讀 1496·2021-10-11 10:59
閱讀 1857·2021-09-09 11:36
閱讀 1369·2019-08-30 15:55
閱讀 1322·2019-08-29 11:20
閱讀 3057·2019-08-26 13:39
閱讀 1458·2019-08-26 13:37
閱讀 1951·2019-08-26 12:11
閱讀 1313·2019-08-23 14:28