个人随笔
目录
二、快速入门-Hello SpringBoot2.0
2020-09-11 22:29:25

环境

  1. jdk1.8_73
  2. apache-maven-3.5.3
  3. springboot 2.0.0.RELEASE
  4. 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的依赖

  1. <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">
  2. <modelVersion>4.0.0</modelVersion>
  3. <groupId>cn.myforever</groupId>
  4. <artifactId>springboot-hellospringboot</artifactId>
  5. <version>0.0.1-SNAPSHOT</version>
  6. <!-- Maven parent 目的,聚合工程、继承关系 -->
  7. <!--Spring parent 目的: 统一整合第三方框架依赖信息 (SpringBoot 支持依赖 不需要写版本号) -->
  8. <parent>
  9. <groupId>org.springframework.boot</groupId>
  10. <artifactId>spring-boot-starter-parent</artifactId>
  11. <version>2.0.1.RELEASE</version>
  12. </parent>
  13. <dependencies>
  14. <!-- -springboot 整合Web组件 整合SpringMVC 就会把传统方式的SpringMVC依赖的jar全部给下载来,引入spring-boot-starter-web 帮你整合好所有相关的依赖jar包, 原理 maven依赖传递(spring-boot-starter-parent中,整合号相关 jar依赖信息)-->
  15. <dependency>
  16. <groupId>org.springframework.boot</groupId>
  17. <artifactId>spring-boot-starter-web</artifactId>
  18. </dependency>
  19. </dependencies>
  20. </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,代码如下

  1. package cn.myforever.controller;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. import org.springframework.web.bind.annotation.RestController;
  6. @RestController //这个相当于@Controller +@ResponseBody 的集合体 返回的是json格式
  7. @SpringBootApplication
  8. public class HelloSpringBootController {
  9. @RequestMapping("/hello")
  10. public String hello() {
  11. return "My name is SpringBoot";
  12. }
  13. public static void main(String[] args) {
  14. SpringApplication.run(HelloSpringBootController.class, args);
  15. }
  16. }
  1. 在上加上RestController @Controller +@ResponseBody 的集合体 返回的是json格式
  2. @SpringBootApplication 加入该注解,则该类的main方法就是启动springboot容器的方法

四、启动项目和测试

右键直接用java application的方法启动该类,启动成功后控制台会有如下图日志

默认是在8080端口,浏览器访问路径 http://localhost:8080/hello
页面会回显My name is SpringBoot就表示启动成功,springboot2.0项目搭建成功

五、SpringBoot的启动方式

1、启动方式一

  1. @EnableAutoConfiguration //只能启动本类
  2. public class HelloSpringBootController{
  3. ....
  4. public static void main(String[] args) {
  5. SpringApplication.run(HelloSpringBootController.class, args);
  6. }
  7. }

该注解只能启动本类,不能启动别的类,比如如果别的类也是controller,那么启动这个将不能识别到别的类

2、启动方式二

  1. @ComponentScan(basePackages = "cn.myforever.controller") //控制扫包范围,可以启动扫描包下的所有controller(当然得有@controller注解的类)
  2. @EnableAutoConfiguration
  3. public class App {
  4. ...
  5. public static void main(String[] args) {
  6. SpringApplication.run(App.class, args);
  7. }
  8. }

这种方式的好处就是可以启动所有扫包下面的类,包括子包,但是若是有多个包,就得全部写上,是一个数组例如:
basePackages= {“cn.forever.controller”,”cn.forever.brotherController”}

3、启动方式三

  1. @SpringBootApplication
  2. public class App {
  3. public static void main(String[] args) {
  4. //想要用main方法启动,则需要加上注解@EnableAutoConfiguration 这是第一种启动方式
  5. //springboot内置了tomcat
  6. SpringApplication.run(App.class, args);
  7. }
  8. }

推荐用这种方式,这种方式当前包下或者子包下所有的类都可以扫到

结语

到此,建立一个SpringBoot项目就成功啦,顺便还介绍了一些SpringBoot的三种启动方式,可能有人会问,为什么可以直接用main方法启动,是因为SpringBoot内置了tomcat,并且默认端口是8080,这些都是可以改的。让我们继续去学习SpringBoot2.0吧。
转载请注明出处随笔博客:bowtie:

 276

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2