Spring Boot 是由 Pivotal 團隊提供的全新框架,專注於Spring平臺和第三方開發庫,簡化了基於Spring的產品開發,開發時只需少量的Spring配置就可以完成項目結構的初始搭建。
Spring Boot使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力於在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。
Spring Boot主要有如下核心功能:
1.獨立運行的Spring項目
Spring Boot可以以jar包的形式來運行,運行一個Spring Boot項目我們只需要通過java -jar xx.jar類運行。非常方便。
2.內嵌Servlet容器
Spring Boot可以內嵌Tomcat、Jetty和Undertow,這樣我們無需以war包的形式部署項目。
3.提供starter簡化Maven配置
使用Spring或者SpringMVC我們需要添加大量的依賴,而這些依賴很多都是固定的,這裡Spring Boot 通過starter能夠幫助我們簡化Maven配置。
4.自動配置Spring
5.準生產的應用監控
提供產品級特性,比如指標測量、健康檢查、外部配置等。
6.無代碼生成和xml配置
Spring Boot 系統要求
Spring Boot 2.0.0.RELEASE需要Java 8或9以及 Spring Framework 5.0.4.RELEASE或更高版本。為Maven 3.2+和Gradle 4提供了明確的構建支持。
spring boot搭建web項目
下面正式開始單間一個web項目,使用的工具是eclipse來進行搭建,創建一個maven工程。下面開啟貼圖模式,這前面的過程都是非常的簡單,網上也有大量的參考資料,這裡為了保證一個完整性,開始貼圖。
首先就是很簡單,右擊-->new-->project 選擇maven project
然後選擇一個默認的配置即可,一般包含的文件都會在裡面。
這裡填寫好group id其實就是包名,後面也可以更改的,還有artifiact id就是工程名稱,然後單擊完成,就創建一個簡單的maven工程。
具體的工程目錄如下所示
按照上面的流程建好了工程之後,可以查看到具體的工程目錄如下,這裡作為一個web項目還缺少如下相關目錄用來存放web文件和配置文件。
[html]view plaincopy
src/main/resources //這個文件夾中存放的是配置文件例如application.properties 配置文件 src/main/webapp //這個文件夾中存放的是前端的文件html,jsp、css
這些文件夾手動添加即可,添加完成之後,具體得到的如下圖所示:
要想把這個項目跑起來,需要做一下幾個步驟:
1. 首先需要配置一下pom.xml文件,引入spring-boot的相關依賴文件 ,這個是最基本的包,裡面包含了運行的相關組件,例如tomcat,以及其他的jar包
[html]view plaincopy
[html]view plaincopy
這樣就能啟動一個spring-boot的web項目,其中內嵌了相關的tomcat服務器,接下里是至關重要的,因為如果不引入下面的jar包,在調整jsp的頁面的時候直接看到的是變成了下載的模式,筆者也是在這個地方鬱悶了半天,百度上找了好多的例子,大部分都沒講到這個方面,故而在這裡重點說明一下
[html]view plaincopy
引入了這個jar之後呢,才能對jsp進行解析,編譯,到這裡之後,相關的依賴基本上都算引入完成。接下來要做的是配置application.properties配置文件,這裡面也是有一堆坑在這裡。默認的情況下,這個配置文件是不需要配置的,服務器也可以啟動起來。但是很多同學在搭建玩項目之後,進行的跳轉的時候,不是報找不到頁面,就是解析錯誤。因為在這個配置文件中需要指定一下需要跳轉的jsp頁面的路徑,即,具體在哪個文件夾下面,添加如下配置:
[html]view plaincopy
#默認的位置是src/main/webapp 這裡可以更換,比如/page/ 那麼目錄就變成了src/main/webapp/pages spring.mvc.view.prefix=/ spring.mvc.view.suffix=.jsp
這裡面還有一個坑,在新版本的spring boot中是按上面的配置,但是在老的版本中是如下的用法,名稱不一樣,這裡需要注意一下,否則對於新學者來說,又要懵逼半天了...
[html]view plaincopy
spring.view.prefix=/ spring.view.suffix=.jsp
然後需要創建jsp的頁面了,在添加的源碼包src/main/webapp的下面添加jsp文件,注意,webapp是默認的路徑,如果想繼續分類,則可以在該文件夾下面進行添加,比如說添加一個pages文件夾,jsp文件都放在這裡面,那麼spring.mvc.view.prefix=/pages/ 否則會找不到對應的文件。大體的目錄結構如下所示:
[html]view plaincopy
|----src/main/webapp |------index.jsp |------pages |----page.index
對於jsp頁面中,就寫入一點簡單的測試語句就行了
[html]view plaincopy
好了,上面的步驟都完成之後,這裡,只要編寫簡單的Controller即可,這裡面提供了兩個跳轉路徑一個是/home,一個是/home/page,一個是攜帶返回值,一個沒有返回相應結果。
[java]view plaincopy
@Controllerpublicclass HomeController { @RequestMapping(value="/home") public String home(){ System.out.println("redirect to home page!"); return"index"; } @RequestMapping(value="/home/page") @ResponseBodypublic ModelAndView goHome(){ System.out.println("go to the home page!"); ModelAndView mode = new ModelAndView(); mode.addObject("name", "zhangsan"); mode.setViewName("index"); return mode; } }
然後在App類中,添加如下代碼:
[java]view plaincopy
@SpringBootApplicationpublicclass App { publicstaticvoid main( String[] args ) { SpringApplication.run(App.class); } }
寫好上面的Controller之後,在App類上面右擊,選擇Run Application執行main函數,看到控制檯輸出如下,說明spring boot啟動成功
[plain]view plaincopy
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v1.5.10.RELEASE) 2018-03-01 17:32:42.069 INFO 64878 --- [ main] com.spring.example.App : Starting App on fhldeMacBook-Air.local with PID 64878 (/Users/fhl/Documents/workspace1/spring-boot-example/target/classes started by fhl in /Users/fhl/Documents/workspace1/spring-boot-example) 2018-03-01 17:32:42.074 INFO 64878 --- [ main] com.spring.example.App : No active profile set, falling back to default profiles: default 2018-03-01 17:32:42.175 INFO 64878 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@1d8299fd: startup date [Thu Mar 01 17:32:42 CST 2018]; root of context hierarchy 2018-03-01 17:32:45.865 INFO 64878 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http) 2018-03-01 17:32:45.892 INFO 64878 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2018-03-01 17:32:45.895 INFO 64878 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.27 2018-03-01 17:32:46.530 INFO 64878 --- [ost-startStop-1] org.apache.jasper.servlet.TldScanner : At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 2018-03-01 17:32:46.542 INFO 64878 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2018-03-01 17:32:46.543 INFO 64878 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 4371 ms 2018-03-01 17:32:46.809 INFO 64878 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/] 2018-03-01 17:32:46.818 INFO 64878 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*] 2018-03-01 17:32:46.819 INFO 64878 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*] 2018-03-01 17:32:46.819 INFO 64878 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*] 2018-03-01 17:32:46.819 INFO 64878 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*] 2018-03-01 17:32:47.838 INFO 64878 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@1d8299fd: startup date [Thu Mar 01 17:32:42 CST 2018]; root of context hierarchy 2018-03-01 17:32:48.136 INFO 64878 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/home]}" onto public java.lang.String com.spring.example.controller.HomeController.home() 2018-03-01 17:32:48.137 INFO 64878 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/home/page]}" onto public org.springframework.web.servlet.ModelAndView com.spring.example.controller.HomeController.goHome() 2018-03-01 17:32:48.150 INFO 64878 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity
然後打開瀏覽器,輸入地址http://127.0.0.1:8080/home/page
看到返回結果如下所示,則表示跳轉成功:
————————————————————————————————
SSL證書是HTTP明文協議升級HTTPS加密協議的重要渠道,是網絡安全傳輸的加密通道。關於更多SSL證書的資訊,請關注數安時代(GDCA)。GDCA致力於網絡信息安全,已通過WebTrust 的國際認證,是全球可信任的證書籤發機構。GDCA專業技術團隊將根據用戶具體情況為其提供最優的產品選擇建議,並針對不同的應用或服務器要求提供專業對應的HTTPS解決方案。
閱讀更多 GDCA數安時代 的文章