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

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

SpringBoot工程从创建到执行大体如下:
[img]http://dl2.iteye.com/upload/attachment/0122/9271/b33a58aa-08a0-3503-9d1d-af6c34189917.jpg[/img]

[b](1)Spring Initializr[/b]
访问 [url=https://start.spring.io/]https://start.spring.io/[/url] 点击Switch to the full Version 可以切换到更详细的设置页面。
[img]http://dl2.iteye.com/upload/attachment/0122/9273/c8614842-0b89-30a2-bb54-8f5a3b18837d.jpg[/img]

可以看到最终下载ZIP文件的URL如下:
[quote]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[/quote]

解压到 D:\springbootsample\spring-boot-demo1 后通过“mvn spring-boot:run”启动即可。
[quote]D:\>cd D:\springbootsample\spring-boot-demo1
D:\springbootsample\spring-boot-demo1>mvn spring-boot:run[/quote]
[img]http://dl2.iteye.com/upload/attachment/0122/9275/3029d440-7a4e-37ac-af51-608688df56e9.jpg[/img]

启动完成后可以看到以下日志
[quote]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)[/quote]

[b](2)Spring Boot CLI[/b]

[b]下载安装Spring Boot CLI[/b]
[quote]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[/quote]

[b]创建Spring Boot项目[/b]
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


启动完成后可以看到以下日志
[quote]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)[/quote]

[b]spring init 命令参数说明:[/b]
[quote]-d(dependencies 依赖包)
-g(Group Id)
-a(Artifact Id)
--package-name(Package name)
--name(Project name)
-x(Extract compatible archives)[/quote]
详细内容查看:
[quote]$ spring help init [/quote]

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

导入工程
[quote]$ mvn eclipse:eclipse
[INFO] Wrote Eclipse project for "demo" to D:\springbootsample\spring-boot-demo2.[/quote]
或者直接使用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

[img]http://dl2.iteye.com/upload/attachment/0122/9277/f67a9458-d512-358e-aa27-00c6e41df8d5.jpg[/img]
[quote]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)[/quote]

也可以打包成jar后执行
[quote]D:\springbootsample\spring-boot-demo1>mvn clean package
D:\springbootsample\spring-boot-demo1>java -jar target/spring-boot-demo1-0.0.1-SNAPSHOT.jar[/quote]
[img]http://dl2.iteye.com/upload/attachment/0122/9279/9bfcb614-e5bb-3536-8093-46f6c0375579.jpg[/img]

[quote]D:\springbootsample\spring-boot-demo3>gradle build
D:\springbootsample\spring-boot-demo3>java -jar build/libs/spring-boot-demo3-0.0.1-SNAPSHOT.jar[/quote]
[img]http://dl2.iteye.com/upload/attachment/0122/9281/2c9f7012-0b6a-31e8-840b-b3f5d399df0b.jpg[/img]

[b](3)IDE[/b]
STS:Spring Tool Suite [url=https://spring.io/tools/sts/all]https://spring.io/tools/sts/all[/url]

[b]创建工程[/b]
[b]Menu - File - New - Spring Starter Project[/b]
[img]http://dl2.iteye.com/upload/attachment/0122/9283/7ddac6ff-2bc7-3f79-8fb0-e2078c829c71.jpg[/img]

[img]http://dl2.iteye.com/upload/attachment/0122/9285/e1737ea8-c71e-3dc7-b6c8-80721a2b46df.jpg[/img]

[img]http://dl2.iteye.com/upload/attachment/0122/9287/9a7d68bf-9e85-3f70-907a-04b41c761b4b.jpg[/img]

[img]http://dl2.iteye.com/upload/attachment/0122/9289/bc1ef42b-2632-3130-ad89-ee8dd628b018.jpg[/img]

[b]运行工程[/b]
[b]Menu - Run - Run As - Spring Boot App[/b]
[img]http://dl2.iteye.com/upload/attachment/0122/9291/a6c33eed-6a48-32b5-9bde-3e495dad603f.jpg[/img]

[img]http://dl2.iteye.com/upload/attachment/0122/9305/28973e4e-08af-353a-8b57-7fa6c7490712.jpg[/img]

访问 http://localhost:8080/

***因为没有任何controller,所以看到的是404页面。
[img]http://dl2.iteye.com/upload/attachment/0122/9307/de93301f-dd33-3d37-9259-83ce93a829e8.jpg[/img]

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

[img]http://dl2.iteye.com/upload/attachment/0122/9297/5537b8ce-febe-3dbf-90dc-d00f5858b2ac.jpg[/img]

@SpringBootApplication
public class SpringBootDemo4Application {

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

[b]@SpringBootApplication = @Configuration + @ComponentScan + @EnableAutoConfiration[/b]

[color=blue]默认扫描的package是启动Application类所在的package。[/color]

<?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>


[b](5)输出“Hello World”[/b]

新建一个HelloController类。
@RestController
public class HelloController {

@RequestMapping("/")
public String index() {
return "Hello world from Spring Boot!";
}

}

[img]http://dl2.iteye.com/upload/attachment/0122/9309/09be5daa-555f-38ee-9242-b4f9c2681094.jpg[/img]

再次访问 http://localhost:8080/
[img]http://dl2.iteye.com/upload/attachment/0122/9301/0877da46-d9e5-3995-8de3-61f8a831e7aa.jpg[/img]

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

<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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值