1. 程式人生 > >Intellij建立簡單Springboot專案

Intellij建立簡單Springboot專案

Intellij建立簡單Springboot專案

 

第一步:選擇建立新專案——file-new-project

 

第二步:選擇專案型別——Spring Initializr-next

 第三步:輸入專案資訊——Spring Initializr-next

 第四步:選擇Spring組建——web-web(勾選)

第五步:修改專案名稱和專案路徑(預設即可)——Finish

第六步:寫一個Demo Controller層(controller的程式碼必須和SpringbootDemoApplication.java位於同級目錄或之下)

 

//Main方法,專案從這裡iahsi啟動,是專案建立時自動生成的;

package com.example.springboot_demo;

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); } }

 

 

//自定義Controller方法(注意@RestController的使用)

package com.example.springboot_demo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class DemoController {

    @RequestMapping(
"/login") public String login(){ return "login success!"; } }

 

第七步:啟動專案,並用瀏覽器訪問專案

//啟動日誌輸出


  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.0.RELEASE)

2018-11-29 09:47:16.011  INFO 14668 --- [           main] c.e.s.SpringbootDemoApplication          : No active profile set, falling back to default profiles: default
2018-11-29 09:47:17.710  INFO 14668 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2018-11-29 09:47:17.734  INFO 14668 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2018-11-29 09:47:17.735  INFO 14668 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/9.0.12
2018-11-29 09:47:17.899  INFO 14668 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2018-11-29 09:47:17.899  INFO 14668 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1802 ms
2018-11-29 09:47:17.933  INFO 14668 --- [           main] o.s.b.w.servlet.ServletRegistrationBean  : Servlet dispatcherServlet mapped to [/]
2018-11-29 09:47:17.939  INFO 14668 --- [           main] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2018-11-29 09:47:17.940  INFO 14668 --- [           main] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2018-11-29 09:47:17.940  INFO 14668 --- [           main] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'formContentFilter' to: [/*]
2018-11-29 09:47:17.940  INFO 14668 --- [           main] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2018-11-29 09:47:18.203  INFO 14668 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2018-11-29 09:47:18.482  INFO 14668 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2018-11-29 09:47:18.487  INFO 14668 --- [           main] c.e.s.SpringbootDemoApplication          : Started SpringbootDemoApplication in 3.183 seconds (JVM running for 4.749)

 

 

 備註:一開始在DemoController上用@Controller註解,發現不起效果;原來@RestController和@Controller是有區別的。

通過檢視@RestController的原始碼發現:@RestController註解 = @ResponseBody + @Controller

package org.springframework.web.bind.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.core.annotation.AliasFor;
import org.springframework.stereotype.Controller;

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
    @AliasFor(
        annotation = Controller.class
    )
    String value() default "";
}

 

 參考資料:

1- https://blog.csdn.net/xyc_csdn/article/details/67672198

2- https://www.cnblogs.com/shuaifing/p/8119664.html