1. 程式人生 > >java-springboot-tomcat 搭建

java-springboot-tomcat 搭建

一、優點
1.搭建一個 spring mvc 專案只需要1分鐘
2.不用配置 web.xml 和 各種xml
3.多種方式啟動專案
3.1 開發階段使用 mvn 命令執行
3.2 打成 war 包後,使用 java -jar 命令執行
3.3 打成 war 包後,部署到 tomcat 執行


二、資料
官網:http://projects.spring.io/spring-boot/


三、搭建第一個 springboot 專案
1.環境
ide:idea
jdk:1.7
springboot:1.5.6


2.建立 idea module,命名為 SbootDemo2
2.1 file=>new=>mudule...
2.2 選擇 Spring Initializr:module sdk 選擇 1.7,其他預設。下一步
2.3 填寫一些包資訊,packaging 選擇 war,java version 選擇 1.7;下一步
2.4 找到 web 節點,勾選 web 複選框,生成一個 web 專案;(這步很關鍵,可以生成一個 ServletInitializer 類);下一步
2.5 選擇生成路徑,點選 finish,完成一個 springboot 專案建立;


3.專案也可使用 spring 提供的線上生成工具,線上生成
地址:https://start.spring.io/


4.開啟專案將看到有兩個類

SbootDemo2Application.java //springboot 主專案,應用程式入口
ServletInitializer.java //tomcat 啟動入口



4.1 SbootDemo2Application.java ,mvn spring-boot:run 命令、java -jar 命令啟動支援

package com.example.demo;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
public class SbootDemo2Application {


	public static void main(String[] args) {
		System.out.println("...... 準備啟動");
		SpringApplication.run(SbootDemo2Application.class, args);
		System.out.println("...... 已啟動,訪問 http://local:8080/");
	}
}



4.2 ServletInitializer.java  tomcat 啟動支援
package com.example.demo;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.web.context.WebApplicationContext;


import javax.servlet.ServletContext;
import javax.servlet.ServletException;


/**
 * tomcat 啟動 spring boot
 */
public class ServletInitializer extends SpringBootServletInitializer {


	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
		System.out.println("...... configure");
		return application.sources(SbootDemo2Application.class);
	}


	@Override
	protected WebApplicationContext run(SpringApplication application) {
		System.out.println("...... run");
		return super.run(application);
	}


	public ServletInitializer() {
		super();
		System.out.println("...... ServletInitializer");
	}


	@Override
	public void onStartup(ServletContext servletContext) throws ServletException {
		System.out.println("...... onStartup");
		super.onStartup(servletContext);
	}


	@Override
	protected WebApplicationContext createRootApplicationContext(ServletContext servletContext) {
		System.out.println("...... createRootApplicationContext");
		return super.createRootApplicationContext(servletContext);
	}


	@Override
	protected SpringApplicationBuilder createSpringApplicationBuilder() {
		System.out.println("...... createSpringApplicationBuilder");
		return super.createSpringApplicationBuilder();
	}
}



5.新建一個 mvc 的 controller 


package com.example.demo;


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


import java.util.Date;


@RestController
public class HeloController {
    @RequestMapping("/")
    public String hello(){
        System.err.println("HeloController.hello();");
        return "hello demo2 ..."+ new Date();
    }
}





6.執行專案
6.1 mvn 命令執行

1>使用 cd 命令定位到專案根目錄
2>輸入 mvn spring-boot:run 命令
3>看到以下內容表示執行成功了
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.5.6.RELEASE)


4>開啟瀏覽器輸入:http://local:8080/ 檢視執行結果
5>springboot 預設使用 8080 埠,改變埠需要配置 application.properties 檔案


6.2 使用 java -jar 命令,執行專案
1> 使用 cd 命令定位到專案根目錄
2> 將專案打成 war 包; 命令:mvn clean package -Dmaven.test.skip=true
3> 複製已經打完的 war 包完整路徑,執行以下命令執行
java -jar /sboot-demo2/target/sboot-demo2-0.0.1-SNAPSHOT.war
4>看到以下內容表示執行成功了
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.5.6.RELEASE)


5>開啟瀏覽器輸入:http://local:8080/ 檢視執行結果
6>springboot 預設使用 8080 埠,改變埠需要配置 application.properties 檔案


6.3 部署到 tomcat 執行
1>將打成的 war 包,複製到 tomcat webapps 目錄,執行 bin 目錄中的 startup.sh 


6.4 配置開發環境中的 tomcat ,也可以使用 開發工具 執行