Spring Boot 入门 - 基础篇(1)- 创建工程

创建方法
可以通过以下三种方式来创建Spring Boot工程
  • Spring Initializr(Web界面)
  • Spring Boot CLI(命令行工具)
  • Spring Boot IDE(Eclipse、IntelliJ IDEA、Spring STS等)
创建的Spring Boot工程,开发语言可以是Java或Groovy,构建类型可以是Maven或Gradle。结合自己熟悉的选择,一般以Java的Maven工程居多。

SpringBoot工程从创建到执行大体如下:


(1)Spring Initializr
访问 https://start.spring.io/ 点击Switch to the full Version 可以切换到更详细的设置页面。


可以看到最终下载ZIP文件的URL如下:
引用
https://start.spring.io/starter.zip?type=maven-project&bootVersion=1.5.1.RELEASE&baseDir=spring-boot-demo1&groupId=com.rensanning.springboot&artifactId=spring-boot-demo1&name=spring-boot-demo1&description=Demo+project+for+Spring+Boot&packageName=com.rensanning.springboot&packaging=jar&javaVersion=1.8&language=java&autocomplete=&generate-project=&style=web


解压到 D:\springbootsample\spring-boot-demo1 后通过“mvn spring-boot:run”启动即可。
引用
D:\>cd D:\springbootsample\spring-boot-demo1
D:\springbootsample\spring-boot-demo1>mvn spring-boot:run



启动完成后可以看到以下日志
引用
2017-02-07 15:02:57.115  INFO 3980 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-02-07 15:02:57.119  INFO 3980 --- [           main] c.r.s.SpringBootDemo1Application         : Started SpringBootDemo1Application in 2.226 seconds (JVM running for 4.758)


(2)Spring Boot CLI

下载安装Spring Boot CLI
引用
1) 从官网下载spring-boot-cli-1.5.1.RELEASE-bin.zip
http://repo.spring.io/release/org/springframework/boot/spring-boot-cli/
2) 解压到 D:\spring-1.5.1.RELEASE\
3) 将 D:\spring-1.5.1.RELEASE\bin 添加到环境变量PATH里。
4) 确认 D:\springbootsample>spring --version
Spring CLI v1.5.1.RELEASE


创建Spring Boot项目
D:\springbootsample>mkdir spring-boot-demo2
D:\springbootsample>cd spring-boot-demo2
D:\springbootsample\spring-boot-demo2>spring init -d=web -g=com.rensanning.springboot -a=spring-boot-demo2 --package-name=com.rensanning.springboot --name=spring-boot-demo2 -x
Using service at https://start.spring.io
Project extracted to 'D:\springbootsample\spring-boot-demo2'
D:\springbootsample\spring-boot-demo2>mvn spring-boot:run


启动完成后可以看到以下日志
引用
2017-02-07 15:07:08.778  INFO 7624 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-02-07 15:07:08.785  INFO 7624 --- [           main] c.r.s.SpringBootDemo2Application         : Started SpringBootDemo2Application in 2.35 seconds (JVM running for 5.529)


spring init 命令参数说明:
引用
-d(dependencies 依赖包)
-g(Group Id)
-a(Artifact Id)
--package-name(Package name)
--name(Project name)
-x(Extract compatible archives)

详细内容查看:
引用
$ spring help init


无论哪种创建方式都是要访问https://start.spring.io来获取模板工程代码,
所以甚至可以使用CURL或HTTPie这些第三方工具来创建,比如:
引用
curl https://start.spring.io/starter.zip
     -d dependencies=web,data-jpa,jms,ws
     -d packaging=war
     -d type=gradle-project
     -o SpringBootCurlWebProject.zip

引用
http -v start.spring.io/starter.zip dependencies=web baseDir=demo -d


导入工程
引用
$ mvn eclipse:eclipse
[INFO] Wrote Eclipse project for "demo" to D:\springbootsample\spring-boot-demo2.

或者直接使用Eclipse导入工程,Menu - File - Import - Maven - Existing Maven Projects

创建gradle工程
D:\springbootsample>mkdir spring-boot-demo3
D:\springbootsample>cd spring-boot-demo3
D:\springbootsample\spring-boot-demo3>spring init -d=web -g=com.rensanning.springboot -a=spring-boot-demo3 --package-name=com.rensanning.springboot --name=spring-boot-demo3 -x --build=gradle
D:\springbootsample\spring-boot-demo3>gradle bootRun


引用
2017-02-07 15:15:14.081  INFO 8128 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-02-07 15:15:14.086  INFO 8128 --- [           main] c.r.s.SpringBootDemo3Application         : Started SpringBootDemo3Application in 2.171 seconds (JVM running for 2.474)


也可以打包成jar后执行
引用
D:\springbootsample\spring-boot-demo1>mvn clean package
D:\springbootsample\spring-boot-demo1>java -jar target/spring-boot-demo1-0.0.1-SNAPSHOT.jar



引用
D:\springbootsample\spring-boot-demo3>gradle build
D:\springbootsample\spring-boot-demo3>java -jar build/libs/spring-boot-demo3-0.0.1-SNAPSHOT.jar



(3)IDE
STS:Spring Tool Suite https://spring.io/tools/sts/all

创建工程
Menu - File - New - Spring Starter Project








运行工程
Menu - Run - Run As - Spring Boot App




访问 http://localhost:8080/

***因为没有任何controller,所以看到的是404页面。


(4)文件夹构成
引用
│  .gitignore
│  mvnw
│  mvnw.cmd
│  pom.xml
└─src
    ├─main
    │  ├─java
    │  │  └─com
    │  │      └─example
    │  │              SpringBootDemo3Application.java
    │  └─resources
    │      │  application.properties
    │      ├─static
    │      └─templates
    └─test
        └─java
            └─com
                └─example
                        SpringBootDemo3ApplicationTests.java




@SpringBootApplication
public class SpringBootDemo4Application {

	public static void main(String[] args) {
		SpringApplication.run(SpringBootDemo4Application.class, args);
	}
}

@SpringBootApplication = @Configuration + @ComponentScan + @EnableAutoConfiration

默认扫描的package是启动Application类所在的package。

<?xml version="1.0" encoding="UTF-8"?>
<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.rensanning.springboot</groupId>
	<artifactId>spring-boot-demo4</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>spring-boot-demo4</name>
	<description>Demo project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.1.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>


(5)输出“Hello World”

新建一个HelloController类。
@RestController
public class HelloController {
	
    @RequestMapping("/")
    public String index() {
        return "Hello world from Spring Boot!";
    }
    
}



再次访问 http://localhost:8080/


(6)Spring Boot工程中如果有多个main()函数,需要指定启动类

<properties>
    <!-- The main class to start by executing java -jar -->
    <start-class>com.rensanning.springboot.SpringBootDemoApplication</start-class>
</properties>


或者

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <mainClass>com.rensanning.springboot.SpringBootDemoApplication</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>

猜你喜欢

转载自rensanning.iteye.com/blog/2355933