2024-03-25 分類: 網站建設
一、spring boot簡介
spring boot是最近非常流行的,在spring的框架上改進的框架。該框架的目的是為了提高開發(fā)人員的速度,降低配置的難度等等,極大了簡化了開發(fā)流程。具體的詳細的說明請參考官方文檔。在日常工作中,由于需要搭建一套環(huán)境或者框架的機會非常的少,大部分都是在原有的基礎上開發(fā),所以當讓你搭建一個簡單的框架,就會出現各種各樣的困難,比如說,我在搭建的一個服務器的時候,準備了一個小的demo,原以為非常的簡單,結果遇到了各種各樣的問題,而發(fā)現網上的博客都是零零散散的講一些點,很難有一個完整的流程,包括可能會遇到的問題。這里對搭建一個簡單的項目流程做一個詳細的總結,方便日后參考,同時這一篇博客也是為了下一篇博客tengine反向代理服務器搭建做一點前置的基礎準備。
二、spring boot搭建web項目
好了廢話,不多說,下面正式開始單間一個web項目,使用的工具是eclipse來進行搭建,創(chuàng)建一個maven工程。下面開啟貼圖模式,這前面的過程都是非常的簡單,網上也有大量的參考資料,這里為了保證一個完整性,開始貼圖。
首先就是很簡單,右擊-->new-->project 選擇maven project
然后選擇一個默認的配置即可,一般包含的文件都會在里面。
這里填寫好group id其實就是包名,后面也可以更改的,還有artifiact id就是工程名稱,然后單擊完成,就創(chuàng)建一個簡單的maven工程。
具體的工程目錄如下所示
按照上面的流程建好了工程之后,可以查看到具體的工程目錄如下,這里作為一個web項目還缺少如下相關目錄用來存放web文件和配置文件。
src/main/resources //這個文件夾中存放的是配置文件例如application.properties 配置文件
src/main/webapp //這個文件夾中存放的是前端的文件html,jsp、css
這些文件夾手動添加即可,添加完成之后,具體得到的如下圖所示:
要想把這個項目跑起來,需要做一下幾個步驟:
1. 首先需要配置一下pom.xml文件,引入spring-boot的相關依賴文件 ,這個是最基本的包,里面包含了運行的相關組件,例如tomcat,以及其他的jar包
org.springframework.boot
spring-boot-starter-parent
1.5.10.RELEASE
org.springframework.boot
spring-boot-starter-web
這樣就能啟動一個spring-boot的web項目,其中內嵌了相關的tomcat服務器,接下里是至關重要的,因為如果不引入下面的jar包,在調整jsp的頁面的時候直接看到的是變成了下載的模式,筆者也是在這個地方郁悶了半天,百度上找了好多的例子,大部分都沒講到這個方面,故而在這里重點說明一下
javax.servlet
jstl
org.apache.tomcat.embed
tomcat-embed-jasper
provided
引入了這個jar之后呢,才能對jsp進行解析,編譯,到這里之后,相關的依賴基本上都算引入完成。接下來要做的是配置application.properties配置文件,這里面也是有一堆坑在這里。默認的情況下,這個配置文件是不需要配置的,服務器也可以啟動起來。但是很多同學在搭建玩項目之后,進行的跳轉的時候,不是報找不到頁面,就是解析錯誤。因為在這個配置文件中需要指定一下需要跳轉的jsp頁面的路徑,即,具體在哪個文件夾下面,添加如下配置:
默認的位置是src/main/webapp 這里可以更換,比如/page/ 那么目錄就變成了src/main/webapp/pages
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
這里面還有一個坑,在新版本的spring boot中是按上面的配置,但是在老的版本中是如下的用法,名稱不一樣,這里需要注意一下,否則對于新學者來說,又要懵逼半天了...
spring.view.prefix=/
spring.view.suffix=.jsp
然后需要創(chuàng)建jsp的頁面了,在添加的源碼包src/main/webapp的下面添加jsp文件,注意,webapp是默認的路徑,如果想繼續(xù)分類,則可以在該文件夾下面進行添加,比如說添加一個pages文件夾,jsp文件都放在這里面,那么spring.mvc.view.prefix=/pages/ 否則會找不到對應的文件。大體的目錄結構如下所示:
|----src/main/webapp
|------index.jsp
|------pages
|----page.index
對于jsp頁面中,就寫入一點簡單的測試語句就行了
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
hello world!!!
name=${name } welcome!
好了,上面的步驟都完成之后,這里,只要編寫簡單的Controller即可,這里面提供了兩個跳轉路徑一個是/home,一個是/home/page,一個是攜帶返回值,一個沒有返回相應結果。
@Controller
public class HomeController {
@RequestMapping(value="/home")
public String home(){
System.out.println("redirect to home page!");
return "index";
}
@RequestMapping(value="/home/page")
@ResponseBody
System.out.println("go to the home page!");
mode.addObject("name", "zhangsan");
return mode;
}
}
然后在App類中,添加如下代碼:
@SpringBootApplication
public class App
{
public static void main( String[] args )
{
SpringApplication.run(App.class);
}
}
寫好上面的Controller之后,在App類上面右擊,選擇Run Application執(zhí)行main函數,看到控制臺輸出如下,說明spring boot啟動成功
. ____ _ __ _ _
/\\ / ____ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | _ | _| | _ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
|____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: 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.150 INFO 64878 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity
名稱欄目:springboot搭建web項目完整流程,以及遇到的一些坑坑洼洼總結
當前鏈接:http://jinyejixie.com/news29/321729.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站改版、云服務器、網站導航、關鍵詞優(yōu)化、網站排名、服務器托管
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容