SpringBoot(一)

喜欢有帮助记得点赞哦,加关注不迷路

一、SpringBoot介绍

1.1 简介

我们第一次学习Spring框架时是否觉得器复杂的配置而退却,在第n次使用Spring框架时是否觉得反复的复制粘贴配置文件觉得厌烦?那么我们不妨试试SpringBoot来让我们更加快速容易上手,更方便快捷的构建Spring应用。

Spring Boot让我们的Spring应用变的更轻量化。比如:你可以仅仅依靠一个Java类来运行一个Spring应用。你也可以打包你的应用为jar并通过使用java -jar来运行你的Spring Web应用。

1.2 好处

为所有Spring开发者更快的入门

提供各种默认配置来简化项目配置

内嵌式容器简化Web项目

没有冗余代码生成和XML配置的要求

1.3 系统要求

Java 7及以上

Spring Framework 4.1.5及以上

本文采用Java 1.8.0_181Spring Boot 2.1.0

二、SpringBoot入门案例

2.1 创建Maven工程

创建一个普通的jar工程项目即可

2.2 引入pom依赖

<!-- 继承SpringBoot默认设置 -->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.0.RELEASE</version>
	</parent>

	<!-- SpringBoot的web组件 -->
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
	</dependencies>

	<!-- 作为可执行的jar包 -->
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

备注:

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必须要添加,否则是无法启动的。如果使用maven 的spring-boot:run的话是不需要此配置的。(我在测试的时候,如果不配置下面的plugin也是直接在Main中运行的。)

2.3 编写HelloWorld服务

@RestController
@EnableAutoConfiguration
public class SpringbootController {

	@RequestMapping("/hello")
	public String index() {
		return "hello-world";
	}
	//运行
	public static void main(String[] args) {
		SpringApplication.run(SpringbootController.class, args);
	}
}

备注:

1)@RestController

在类上使用RestController注解表示修饰该Controller中的所有方法返回JSON格式,无需在方法上使用@ResponseBody注解。

2)@EnableAutoConfiguration

让SpringBoot根据应用所声明的依赖对Spring框架进行自动配置,这个注解告诉SpringBoot根据添加的jar依赖猜测你想如何配置Spring。由于spring-boot-starter-web添加了Tomcat和Spring MVC,所以auto-configuration将假定你正在开发一个web应用并相应地对Spring进行设置

3)SpringApplication.run(SpringbootController.class, args);

将SpringbootController类标记为启动类

2.4 启动

2.4.1 启动方式1

直接运行类中的main方法,控制台打印如下

图有点丑,希望各位不要介意,我们从图中可以看出启动后有个小图标,下边是springboot的版本,还有一条很重要的信息是默认使用内置的tomcat启动的程序,端口号为8080

所以我们可以在地址中输入:localhost:8080/hello访问我们的控制器,还在页面上看到hello-world字样。

2.4.2 启动方式2

新建类,启动程序

//开启包扫描,启动该例子不用配置也行
@ComponentScan(basePackages="com.stt")
public class App {

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

三、SpringBoot的Web开发

3.1 访问静态资源

我们在开发web项目时,需要引入大量的js,css,图片等静态资源,SpringBoot默认将静态资源存放在classpath下,目录名须符合如下规则:

/static

/public

/resources

/META-INF/resources

例子:我们在项目的src/main/resources下创建static文件夹放一张图片,在地址栏中输入http://localhost:8080/图片名,如果在浏览器上显示图片则代表配置成功。

3.2 全局捕获异常

我们在写项目的过程中,遇到各种各样的异常都是很常见的,但是作为开发人员,是肯定不能将程序的异常暴露给用户的,我们需要对其进行友好提示,那么在springboot中,我们可以使用注解,在一个类中,把一些运行异常都写出来,这样方便项目在运行时更快速的捕捉到异常并给出提示。

我们新建一个Controller

@RestController
public class ExceptionController {

	@RequestMapping("/testException")
	public String testException() {
		int i = 10/0;
		return "exception";
	}
}

当我们通过浏览器输入http://localhost:8080/testException访问该方法时一定会出现错误

那么我们可以去新建一个类,专门用来捕获异常,这样在项目运行时,就可以拦截所有异常,具体实现请往下边看

@ControllerAdvice
public class GlobalExceptionHandler {

	@ExceptionHandler(RuntimeException.class)
	@ResponseBody
	public Map<String, Object> exceptionHandle(){
		Map<String,Object> map = new HashMap<String, Object>();
		map.put("code", "500");
		map.put("msg", "系统出错了,请稍后再试");
		return map;
	}
}

备注:

1)@ControllerAdvice

我们在类前加了一个@ControllerAdvice的注解,这个注解是controller的一个辅助类,最常用的就是作为全局异常处理的切面类

2)@ExceptionHandler

声明拦截的异常类型,也可以自定义类

通过上边的配置我们再次访问页面结果就不一样了

这里我们介绍了SpringBoot是什么和简单的使用以及访问静态资源和全局异常捕获。希望可以帮到大家

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石添的编程哲学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值