环境
jdk1.8_73
apache-maven-3.5.3
springboot 2.0.0.RELEASE
eclipse 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格式
@SpringBootApplication
public 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注解的类)
@EnableAutoConfiguration
public class App {
...
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
这种方式的好处就是可以启动所有扫包下面的类,包括子包,但是若是有多个包,就得全部写上,是一个数组例如:
basePackages= {“cn.forever.controller”,”cn.forever.brotherController”}
3、启动方式三
@SpringBootApplication
public class App {
public static void main(String[] args) {
//想要用main方法启动,则需要加上注解@EnableAutoConfiguration 这是第一种启动方式
//springboot内置了tomcat
SpringApplication.run(App.class, args);
}
}
推荐用这种方式,这种方式当前包下或者子包下所有的类都可以扫到
结语
到此,建立一个SpringBoot项目就成功啦,顺便还介绍了一些SpringBoot的三种启动方式,可能有人会问,为什么可以直接用main方法启动,是因为SpringBoot内置了tomcat,并且默认端口是8080,这些都是可以改的。让我们继续去学习SpringBoot2.0吧。
转载请注明出处随笔博客