最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot學習之構建簡單項目搭建步驟詳解

 更新時間:2018年10月26日 11:36:14   作者:廚房小碼農  
這篇文章主要介紹了springboot學習之構建簡單項目搭建步驟詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

概述

相信對于Java開發(fā)者而言,spring和springMvc兩個框架一定不陌生,這兩個框架需要我們手動配置的地方非常多,各種的xml文件,properties文件,構建一個項目還是挺復雜的,在這種情況下,springboot應運而生,他能夠快速的構建spring項目,而且讓項目正常運行起來的配置文件非常少,甚至只需要幾個注解就可以運行整個項目。

總的說來,springboot項目可以打成jar包獨立運行部署,因為它內嵌servlet容器,之前spring,springMvc需要的大量依賴,可以通過starter來幫助我們簡化配置,當然還有其他好多優(yōu)點,這里就不一一贅述,小伙伴們可以自行搜索解答。

簡單項目構建

工具

eclipse maven

首先,我們新建一個maven項目,在eclipse左側右擊選擇new----》other,選擇新建Maven project

輸入group Id,artifact Id,點擊完成

這樣一個簡單的項目架子就完成了,但是啥都沒有,項目結構如下圖所示:

下面我們就開始配置搭建springboot項目。

1.添加依賴

完整porm代碼如下:

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.cfxmn.springboot</groupId>
  <artifactId>springbootDemo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <!-- 通過繼承spring-boot-starter-parent項目來獲得一些合理的默認配置 -->
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.6.RELEASE</version>
  </parent>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <!-- Spring Boot Web 依賴 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Spring Boot Test 依賴 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
    <!-- 使用Lombok可以減少很多重復代碼的書寫。比如說getter/setter/toString等方法的編寫 -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
    </dependency>
  </dependencies>
</project>

下面我們新建一些包和添加項目的啟動類,如下圖所示:

其中,控制器DemoController的內容非常簡單,內容如下:

package com.cfxmn.springboot.springbootDemo.controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import lombok.extern.slf4j.Slf4j;
@RestController
@Slf4j
public class DemoController {
  @PostMapping("/demo")

  public void demoTest() {

    // 這邊簡單起見,打印一下日志

    log.info("success call");

  }

}

可能有些同學對其中的幾個注解有些疑問,我這邊簡單說明下,

1.RestController

這個注解其實就是@ResponseBody + @Controller

2.PostMapping

這個注解其實就是@RequestMapping("xxxxxx", Method=RequestMethod.POST)

這兩個其實都是組合注解,簡化使用

我們再來看看,項目的啟動類SpringbootDemoApplication的內容:

package com.cfxmn.springboot.springbootDemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication

public class SpringbootDemoApplication {

  public static void main(String[] args) {

    SpringApplication.run(SpringbootDemoApplication.class, args);

  }
}

是的,你沒看錯,只要運行這個main方法,就能啟動這個spring項目,具體是怎么啟動的容器,我們之后再分析,其實主要就是在注解SpringBootApplication上。

下面我們就來運行下,看下啟動日志:

 .  ____     _      __ _ _

 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \

( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \

 \\/ ___)| |_)| | | | | || (_| | ) ) ) )

 ' |____| .__|_| |_|_| |_\__, | / / / /

 =========|_|==============|___/=/_/_/_/

 :: Spring Boot ::    (v1.5.6.RELEASE)

 

2018-10-25 23:52:41.985 INFO 1700 --- [      main] c.c.s.s.SpringbootDemoApplication    : Starting SpringbootDemoApplication on DESKTOP-KB78HJK with PID 1700 (E:\workspace\springbootDemo\target\classes started by gepengfa in E:\workspace\springbootDemo)

2018-10-25 23:52:41.990 INFO 1700 --- [      main] c.c.s.s.SpringbootDemoApplication    : No active profile set, falling back to default profiles: default

2018-10-25 23:52:42.088 INFO 1700 --- [      main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@7f416310: startup date [Thu Oct 25 23:52:42 CST 2018]; root of context hierarchy

2018-10-25 23:52:44.561 INFO 1700 --- [      main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)

2018-10-25 23:52:44.584 INFO 1700 --- [      main] o.apache.catalina.core.StandardService  : Starting service [Tomcat]

2018-10-25 23:52:44.588 INFO 1700 --- [      main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.16

2018-10-25 23:52:44.813 INFO 1700 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]    : Initializing Spring embedded WebApplicationContext

2018-10-25 23:52:44.813 INFO 1700 --- [ost-startStop-1] o.s.web.context.ContextLoader      : Root WebApplicationContext: initialization completed in 2733 ms

2018-10-25 23:52:45.074 INFO 1700 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]

2018-10-25 23:52:45.083 INFO 1700 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean  : Mapping filter: 'characterEncodingFilter' to: [/*]

2018-10-25 23:52:45.083 INFO 1700 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean  : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]

2018-10-25 23:52:45.083 INFO 1700 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean  : Mapping filter: 'httpPutFormContentFilter' to: [/*]

2018-10-25 23:52:45.085 INFO 1700 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean  : Mapping filter: 'requestContextFilter' to: [/*]

2018-10-25 23:52:45.582 INFO 1700 --- [      main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@7f416310: startup date [Thu Oct 25 23:52:42 CST 2018]; root of context hierarchy

2018-10-25 23:52:45.705 INFO 1700 --- [      main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/demo],methods=[POST]}" onto public void com.cfxmn.springboot.springbootDemo.controller.DemoController.demoTest()

2018-10-25 23:52:45.710 INFO 1700 --- [      main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)

2018-10-25 23:52:45.711 INFO 1700 --- [      main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)

2018-10-25 23:52:45.759 INFO 1700 --- [      main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]

2018-10-25 23:52:45.759 INFO 1700 --- [      main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]

2018-10-25 23:52:45.817 INFO 1700 --- [      main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]

2018-10-25 23:52:46.321 INFO 1700 --- [      main] o.s.j.e.a.AnnotationMBeanExporter    : Registering beans for JMX exposure on startup

2018-10-25 23:52:46.529 INFO 1700 --- [      main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)

2018-10-25 23:52:46.599 INFO 1700 --- [      main] c.c.s.s.SpringbootDemoApplication    : Started SpringbootDemoApplication in 5.092 seconds (JVM running for 5.764) 

從啟動日志標黃的部分可以看出,項目啟動成功了,訪問端口默認是8080(這個端口是可以改動的)

下面我們通過postMan請求下,

查看控制臺

2018-10-25 23:59:26.385 INFO 1700 --- [nio-8080-exec-2] c.c.s.s.controller.DemoController    : success call

說明調用成功。

到此,一個簡單的springboot項目就構建完成了,但這只是一個空的架子,內容還可載豐富。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 從JVM的內存管理角度分析Java的GC垃圾回收機制

    從JVM的內存管理角度分析Java的GC垃圾回收機制

    這篇文章主要介紹了從JVM的內存管理角度分析Java的GC垃圾回收機制,帶有GC是Java語言的重要特性之一,需要的朋友可以參考下
    2015-11-11
  • 深入理解LinkedHashSet集合的底層機制

    深入理解LinkedHashSet集合的底層機制

    這篇文章主要介紹了LinkedHashSet的底層機制詳解,LinkedHashSet根據元素的hashCode值來決定元素的存儲位置,同時使用鏈表維護元素的次序,?這使得元素看起來是以插入順序保存的,需要的朋友可以參考下
    2023-10-10
  • 詳解maven配置多倉庫的方法示例

    詳解maven配置多倉庫的方法示例

    這篇文章主要介紹了詳解maven配置多倉庫的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • java從list中取出對象并獲得其屬性值的方法

    java從list中取出對象并獲得其屬性值的方法

    這篇文章主要介紹了java從list中取出對象并獲得其屬性值的方法,大家參考使用
    2013-12-12
  • java程序中指定某個瀏覽器打開的實現方法

    java程序中指定某個瀏覽器打開的實現方法

    最近工作中遇到一個需求,是要利用java打開指定瀏覽器,整理后發(fā)現有四種解決的方法,所以想著分享出來,下面這篇文章主要給大家介紹了java程序中指定某個瀏覽器打開的實現方法,,需要的朋友可以參考下。
    2017-03-03
  • 實時計算知多少?

    實時計算知多少?

    這篇文章對滑動窗口計數的概念和關鍵代碼做了較為詳細解釋,讓我們對實時計算這一概念有了更深的了解,需要的朋友可以參考下
    2015-07-07
  • 認識Java中的Stub與StubQueue

    認識Java中的Stub與StubQueue

    StubQueue是用來保存生成的本地代碼的Stub隊列,隊列每一個元素對應一個InterpreterCodelet對象,InterpreterCodelet對象繼承自抽象基類Stub,下面我們介紹一下StubQueue類及相關類Stub、InterpreterCodelet類和CodeletMark類。需要的的下伙伴可以參考下面文字內容
    2021-09-09
  • java中將一個實體類復制到另一個實體類的3種方法示例

    java中將一個實體類復制到另一個實體類的3種方法示例

    這篇文章主要給大家介紹了關于java中將一個實體類復制到另一個實體類的3種方法,所謂實體類就是一個擁有Set和Get方法的類,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • Mybatis中的延遲加載案例解析

    Mybatis中的延遲加載案例解析

    這篇文章主要介紹了Mybatis中的延遲加載,場景結合案例分析非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-12-12
  • Java創(chuàng)建數組、賦值的四種方式詳解(聲明+創(chuàng)建+初始化?)

    Java創(chuàng)建數組、賦值的四種方式詳解(聲明+創(chuàng)建+初始化?)

    數組是一種數據結構,用來存儲同一類型值的集合一旦創(chuàng)建了數組,就不能再改變它的長度,下面這篇文章主要給大家介紹了關于Java創(chuàng)建數組、賦值的四種方式(聲明+創(chuàng)建+初始化?)的相關資料,需要的朋友可以參考下
    2024-04-04

最新評論

北安市| 娱乐| 临城县| 西峡县| 辽源市| 黎川县| 营山县| 宣汉县| 呼图壁县| 望谟县| 翁源县| 吉隆县| 宁陵县| 蓬莱市| 开鲁县| 边坝县| 桃江县| 吴川市| 安康市| 沅江市| 虞城县| 武冈市| 闽侯县| 崇明县| 凤城市| 会昌县| 长治县| 安福县| 阿拉善盟| 平顶山市| 凤阳县| 那坡县| 穆棱市| 建阳市| 泽普县| 普兰县| 阿图什市| 大石桥市| 津市市| 裕民县| 通州区|