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

springboot學習之構(gòu)建簡單項目搭建步驟詳解

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

概述

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

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

簡單項目構(gòu)建

工具

eclipse maven

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

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

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

下面我們就開始配置搭建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可以減少很多重復(fù)代碼的書寫。比如說getter/setter/toString等方法的編寫 -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
    </dependency>
  </dependencies>
</project>

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

其中,控制器DemoController的內(nèi)容非常簡單,內(nèi)容如下:

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的內(nèi)容:

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

說明調(diào)用成功。

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

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

相關(guān)文章

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

    從JVM的內(nèi)存管理角度分析Java的GC垃圾回收機制

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

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

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

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

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

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

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

    java程序中指定某個瀏覽器打開的實現(xiàn)方法

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

    實時計算知多少?

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

    認識Java中的Stub與StubQueue

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

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

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

    Mybatis中的延遲加載案例解析

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

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

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

最新評論

藁城市| 旌德县| 台北县| 吉木乃县| 迭部县| 枣强县| 前郭尔| 奇台县| 蓬溪县| 沐川县| 于都县| 瑞昌市| 沧州市| 精河县| 威海市| 广德县| 法库县| 华池县| 泗水县| 且末县| 太湖县| 贡嘎县| 宁化县| 大同市| 雷山县| 吕梁市| 谷城县| 沙田区| 张家港市| 萝北县| 商南县| 益阳市| 额尔古纳市| 嘉荫县| 寻乌县| 云龙县| 安吉县| 沅陵县| 九龙城区| 舒兰市| 新昌县|