什么是SpringBoot?SprintBoot入门指南

前言

最近在学习Spring Boot,觉得学习有所小成,因此前来分享一下学习成果,同时为这段时间的学习进行总结,希望对其他正在学习Spring Boot的同学有所帮助。

1、什么是Spring Boot?

Spring Boot是一个很快捷的框架,配置很少,因为Spring Boot 诞生最重要的目的就是为了简化开发,他可以将一个Spring 集成的Web工程简化到令人发指的地步。
学习Spring Boot之前,希望读者已经掌握eclipse的maven版本管理工具,以及对Spring ,SpringMVC有一定的基础。
接下来我们就来快速的学习Spring Boot吧。

Spring Boot的主要功能:

想要详细学习请参考 Spring Boot学习文档

(1)自动导入依赖

以往的开发需要导入很多依赖,但其实很多依赖都是有关联性的。比如一个基于Spring 的Web工程,那你肯定需要tomcat 还有spring ,springmvc,这些是最起码需要的。那么Spring boot猜得到你需要,那么自动就帮你引入了。

(2)自动配置工程

以往使用Spring的开发,配置是在所难免的,配置bean,开启注解,一系列繁琐的操作,Spring Boot都帮你搞定了,Spring Boot提倡 “约定优于配置” 只要你按照约定来搭建你的项目,那配置什么的我帮你搞定~
总而言之,Spring Boot所做的一切就是为了减少配置。

2、使用maven创建一个Web工程

使用eclipse开发,新建一个maven工程,选择appweb架构。
在这里插入图片描述

3、添加Spring Boot的依赖

首先需要让该工程继承spring boot的依赖,继承后即可根据场景自动导入需要用到的依赖。

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.13.RELEASE</version>
	</parent>

Spring Boot支持各种场景,根据当前的场景导入依赖。Spring Boot的启动器统一使用spring-boot-starter-*的格式命名,具体支持哪些场景,可以查看官方文档13.5章 Spring Boot学习文档
当下我们添加一个spring-boot-starter-web 的依赖,表示你正在开发一个web工程。

	<!-- web项目的springboot的依赖 -->
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency>

注意:我们继承了spring boot父类后,对于父工程中已有的依赖我们就无需指定版本号了。

4、构建工程

首先创建了一个com包,该包下创建了一个Application类。该类是Spirng Boot架构中最重要的一个类,我们称为入口类,运行它就是运行整个项目。

在这里插入图片描述

Application类。这是一个Spring Boot项目最基本需要的类

package com;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
public class Application {

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

}

首先这个入口类必须在项目的根目录,Spring Boot会根据该入口类所在包进行扫描,帮助Spring自动装配被标记的Bean。
其次该类必须使用@SpringBootApplication注解修饰,表明这是一个入口类。@SpringBootApplication是一个复合注解,由@ComponentScan,和@SpringBootConfiguration,@EnableAutoConfiguration三个注解组成。

(1)@EnableAutoConfiguration的作用启动自动的配置。
(2)@ComponentScan,扫描当前包及其子包下被@Component,@Controller,@Service,@Repository注解标记的类并纳入到spring容器中进行管理。
(3)@SpringBootConfiguration继承自@Configuration,二者功能也一致,标注当前类是配置类,并会将当前类内以@Bean注解标记的方法的实例纳入到srping容器中,并且实例名就是方法名。

然后必须有一个mian方法,主方法中调用SpringApplication.run(Application.class, args)方法。里面的参数就是当前类的Class对象和mian方法的参数。
运行该方法即是开启tomcat,以及一系列初始化操作。
实际上,只需要这一个类就可以运行这个工程了。但毕竟是一个Web工程,我们再来创建一个控制器试试效果。

com.controller包下的HelloController类

package com.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

	@GetMapping("hello")
	public String Hello(){
		return "hello world!";
	}
}

这也是一个很简单的控制器。
@RestController注解,由@ResponseBody,和@Controller两个注解组成

(1)@ResponseBody注解表示直接返回字符串。
(2)@Controller注解表示这是一个控制器类,交由Spring容器管理。

@GetMapping注解,设置该控制器的访问路径,并且只能使用Get方式访问。
最后该控制器返回一个“hello world!”字符串,在浏览器显示。

5运行

我们来运行Application方法。运行后控制台信息如下:
在这里插入图片描述
只要红点不消失,那就是运行成功了。
可以看到启动的tomcat端口是8080.这是Spring Boot默认设置的。当然可以修改。我们之后再提。
然后我们在网页上输入 http://localhost:8080/hello 。就可以看到效果了。
在这里插入图片描述
至此,我们可以看出,一共就只有2个类。没有任何配置,我们就将控制器交给了Spring容器管理,也没有部署项目至tomcat,直接就在网页上显示了。可以看出Spring Boot简化了大量的配置。

6、application.properties配置文件

application.properties文件,也可以使用application.yml文件。建议保存在src/mian/resources目录下,如此Spring Boot会自动找到该文件进行配置,我们需要修改的大部分配置信息,都可以放在该文件下,这里我们以application.yml文件为例。
在这里插入图片描述
yml全称yaml文件,同样是配置文件,只不过稍微换了下格式而已,相比xml文件简洁了不少,比properties文件更有层次感,效果如下:

server:
    port: 8081
#以下该工程用不到,起示例作用,忽略即可。
#spring:
    #datasource:
       # driver-class-name: com.mysql.jdbc.Driver
       # url: jdbc:mysql://localhost:3306/test
       # username: root
       # password: root
#mybatis:
    # mapperLocations: classpath:mybatis/mapper/*.xml

server:
port: 8081
该配置修改tomcat端口为8081。在properties文件中的写法则是server.port=8081。
具体规则请参考Spring Boot学习文档
修改后再运行,就必须使用8081端口访问控制器了。我就不再赘述。

总结

以上便是我总结的经验了,不敢说尽善尽美,觉得实践完后就算入门了,建议看完后又不懂的地方再多多查阅资料,看看官方文档。之后我还会写一篇Spring Boot集成SSM框架的博客。有兴趣的同学,可以关注我,期待我的下次更新。
近期所写博客相信对刚开始工作的同学有很大帮助,建议同学们关注我,我会将我的学习成果总结至此。感谢支持。

猜你喜欢

转载自blog.csdn.net/qq_42068856/article/details/84544648