环境
jdk1.8_73apache-maven-3.5.3springboot 2.0.0.RELEASEeclipse Oxygen.3a Release (4.7.3a)
一、创建一个maven工程
1、选择类型为Maven project
如下图所示,路径File>New>Other>Maven Project
2、点击Next,勾选Create a simple project

3、点击Next,输入如下项目信息
| 栏目 | 作用 |
|---|---|
| Group Id | 一般为域名的反写,这里是:cn.myforever |
| Artifact Id | 项目的名称,这里是:springboot-hellospringboot |
| version | 版本,这里是:0.0.1-SNAPSHOT |
| Packaging | 类型,因为SpringBoot是直接main方法运行的,所以这里是:jar,当然也可以选择war 然后打包到tomcat等容器运行 |

填完后点击Finish即可
4、maven工程项目结构如下所示
| 目录 | 用途 |
|---|---|
| src/main/java | 放java代码 |
| src/main/resource | 放静态文件,配置文件以及页面 |
| src/test/java | 放测试java代码(比较少用) |
| src/test/resource | 放测试静态文件,配置文件以及页面(比较少用) |
| pom.xml | mavenjar包依赖配置文件 |

二、pom.xml文件引入springboot2.0的依赖
<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>cn.myforever</groupId><artifactId>springboot-hellospringboot</artifactId><version>0.0.1-SNAPSHOT</version><!-- Maven parent 目的,聚合工程、继承关系 --><!--Spring parent 目的: 统一整合第三方框架依赖信息 (SpringBoot 支持依赖 不需要写版本号) --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.1.RELEASE</version></parent><dependencies><!-- -springboot 整合Web组件 整合SpringMVC 就会把传统方式的SpringMVC依赖的jar全部给下载来,引入spring-boot-starter-web 帮你整合好所有相关的依赖jar包, 原理 maven依赖传递(spring-boot-starter-parent中,整合号相关 jar依赖信息)--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies></project>
| 依赖 | 作用 |
|---|---|
| spring-boot-starter-parent | 在pom.xml中引入spring-boot-start-parent,spring官方的解释叫什么stater poms,它可以提供dependency management,也就是说依赖管理,引入以后在申明其它dependency的时候就不需要version了,后面可以看到 |
| spring-boot-starter-web | springweb 核心组件 |
| spring-boot-maven-plugin | 如果我们要直接Main启动spring,那么以下plugin必须要添加,否则是无法启动的。(我测试的时候是不需要的,但是在打包的时候需要) |
三、编写controller,代码如下
package cn.myforever.controller;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController //这个相当于@Controller +@ResponseBody 的集合体 返回的是json格式@SpringBootApplicationpublic class HelloSpringBootController {@RequestMapping("/hello")public String hello() {return "My name is SpringBoot";}public static void main(String[] args) {SpringApplication.run(HelloSpringBootController.class, args);}}
- 在上加上RestController @Controller +@ResponseBody 的集合体 返回的是json格式
- @SpringBootApplication 加入该注解,则该类的main方法就是启动springboot容器的方法
四、启动项目和测试
右键直接用java application的方法启动该类,启动成功后控制台会有如下图日志
默认是在8080端口,浏览器访问路径 http://localhost:8080/hello
页面会回显My name is SpringBoot就表示启动成功,springboot2.0项目搭建成功
五、SpringBoot的启动方式
1、启动方式一
@EnableAutoConfiguration //只能启动本类public class HelloSpringBootController{....public static void main(String[] args) {SpringApplication.run(HelloSpringBootController.class, args);}}
该注解只能启动本类,不能启动别的类,比如如果别的类也是controller,那么启动这个将不能识别到别的类
2、启动方式二
@ComponentScan(basePackages = "cn.myforever.controller") //控制扫包范围,可以启动扫描包下的所有controller(当然得有@controller注解的类)@EnableAutoConfigurationpublic class App {...public static void main(String[] args) {SpringApplication.run(App.class, args);}}
这种方式的好处就是可以启动所有扫包下面的类,包括子包,但是若是有多个包,就得全部写上,是一个数组例如:
basePackages= {“cn.forever.controller”,”cn.forever.brotherController”}
3、启动方式三
@SpringBootApplicationpublic class App {public static void main(String[] args) {//想要用main方法启动,则需要加上注解@EnableAutoConfiguration 这是第一种启动方式//springboot内置了tomcatSpringApplication.run(App.class, args);}}
推荐用这种方式,这种方式当前包下或者子包下所有的类都可以扫到
结语
到此,建立一个SpringBoot项目就成功啦,顺便还介绍了一些SpringBoot的三种启动方式,可能有人会问,为什么可以直接用main方法启动,是因为SpringBoot内置了tomcat,并且默认端口是8080,这些都是可以改的。让我们继续去学习SpringBoot2.0吧。
转载请注明出处随笔博客
