详解springboot测试类注解

目录
  • 创建一个TextHello类
    • 注解
    • 主启动类
    • 配置文件格式
  • 区别

创建一个TextHello类

TextHello类的代码如下

 @Controller
@RequestMapping("/hello")
public class TextHello {
@GetMapping("/hello")
@ResponseBody
public String hello(){
return "hello,程程呀";
}
}

我是在pom.xml文件中增加依赖如下

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>

在浏览器结果如下:

自动配置: pom.xml spring-boot-dependencies:核心依赖在父类工程中! 我们在写或者引入springboot依赖的时候不需要指定版本号,是因为有这些版本仓库 启动器

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>

启动器:就是springboot的启动场景 比如说spring-boot-starter-web,他就会帮助我们自动导入web环境下的所有依赖。 而springboot会将所有的场景都变成一个个的启动器

注解

@SpringBootApplication :包含@configuration,@ComponentScan,@EnableAutoConfiguration通常在主类上
@SpringBootConfiguration :springboot的配置
@Configuration :spring配置类
@Component :说明这也是一个spring的组件
@EnableAutoConfiguration :自动配置
@AutoConfigurationPackage :自动配置包
@ResponseBody:返回信息为json形式的数据。一般来说会直接使用@RestRestController标注。
@CrossOrigin:解决跨域问题。如果没做特殊处理,一般的@CrossOrigin都会加在控制层的类上。除非引入了gateway网关,就无需通过注解解决跨域。
@MapperScan:以往在使用@Mapper一个个定义mapper,有了@MapperScan之后,只需指定mapper包,就不需要一个个使用@Mapper注解了。
@EnableScheduling:开启定时任务,在类上使用。
@Value:将外部配置文件的值动态注入。。
@Transactional:声明式事务注解。
@Data:lombok下的注解,使用后就无需再写实体类的getter和setter方法。
@RestController:用于标注控制层组件,包含@Controller和@ResponseBody。

springboot所有的自动配置都是在启动的时候扫描并加载:spring.factories 所有的自动配置类都在这里面,但是不一定会生效,要对其进行判断对应start,就有了对应的启动器,有了启动器,自动装配才会生效,然后配置成功。

主启动类

@SpringBootApplication :标注这个类是一个springboot的应用:启动类下的所有资源被导入 springboot理解:自动装配,run() 全面接管springMVC配置!

Static:存放静态资源,比如:css,js,图片 Templates:模板文件 application.porperties:springboot的配置文件

配置文件格式

properties文件 :key-value的格式

yml文件 : 阶梯状的属性文件

区别

  • .yml 格式不支持 @PropertySource 注解导入配置。
  • properties文件和yml文件中有相同属性的时候,properties文件的优先级高于yml文件
  • 看上面的图:两个配置文件的格式不一样,他们配置形同的时候properties的优先级高于yml文件,但是建议使用yml文件,这个文件的结构更清晰。
(0)

相关推荐

  • 解决SpringBoot 测试类无法自动注入@Autowired的问题

    原来的测试类的注解: @RunWith(SpringRunner.class) @SpringBootTest 一直没法自动注入,后来在@SpringBootTest, 加入启动类Application后就可以了 @RunWith(SpringRunner.class) @SpringBootTest(classes = Application.class) 补充:spring boot项目单元测试时,@Autowired无法注入Service解决方式 首先确认: 测试类所在包名要和启动类一致

  • SpringBoot高版本修改为低版本时测试类报错的解决方案

    目录 高版本改低版本时测试类报错 比如在创建项目时默认的版本为2.2.2版本 然后我们修改为1.5.10的低版本 此时可以做如下修改 1.删除高版本默认导入的org.junit.jupiter.api.Test类 2.在类上添加注释@RunWith(SpringRunner.class) 3.将测试类和测试方法都修改为public 4.最后修改的测试类如下所示 高版本改低版本时测试类报错 有时在使用idea通过Spring Initailizr创建项目时,默认只能创建最近的版本的SpringBo

  • SpringBoot项目的测试类实例解析

    这篇文章主要介绍了SpringBoot项目的测试类实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1. package soundsystem; import static org.junit.Assert.*; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autow

  • Springboot测试类没有bean注入问题解析

    这篇文章主要介绍了Springboot测试类没有bean注入问题解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 其他乱七八糟配置就不扯了,先上项目结构图 配置好参数后我再src/test/java类测试访问数据库时发现bean没有正确的注入.值得注意的是,这个项目的启动类是叫App.java 所以我们必须在这个测试类上面加上注解: @RunWith(SpringRunner.class) @SpringBootTest(classes =

  • 详解springboot测试类注解

    目录 创建一个TextHello类 注解 主启动类 配置文件格式 区别 创建一个TextHello类 TextHello类的代码如下 @Controller @RequestMapping("/hello") public class TextHello { @GetMapping("/hello") @ResponseBody public String hello(){ return "hello,程程呀"; } } 我是在pom.xml文件

  • 详解SpringBoot启动类的扫描注解的用法及冲突原则

    背景 SpringBoot 启动类上,配置扫描包路径有三种方式,最近看到一个应用上三种注解都用上了,代码如下: @SpringBootApplication(scanBasePackages ={"a","b"}) @ComponentScan(basePackages = {"a","b","c"}) @MapperScan({"XXX"}) public class XXApplic

  • 详解springboot使用异步注解@Async获取执行结果的坑

    目录 一.引言 二.获取异步执行结果 1.环境介绍 2.错误的方式 3.正确方式 三.异步执行@Async注解 四.总结 一.引言 在java后端开发中经常会碰到处理多个任务的情况,比如一个方法中要调用多个请求,然后把多个请求的结果合并后统一返回,一般情况下调用其他的请求一般都是同步的,也就是每个请求都是阻塞的,那么这个处理时间必定是很长的,有没有一种方法可以让多个请求异步处理那,答案是有的. springboot中提供了很便利的方式可以解决上面的问题,那就是异步注解@Async.正确的使用该注

  • 详解Springboot如何通过注解实现接口防刷

    目录 前言 1.实现防刷切面PreventAop.java 1.1 定义注解Prevent 1.2 实现防刷切面PreventAop 2.使用防刷切面 3.演示 前言 本文介绍一种极简洁.灵活通用接口防刷实现方式.通过在需要防刷的方法加上@Prevent 注解即可实现短信防刷: 使用方式大致如下: /** * 测试防刷 * * @param request * @return */ @ResponseBody @GetMapping(value = "/testPrevent") @P

  • 详解SpringBoot定制@ResponseBody注解返回的Json格式

     1.引言 在SpringMVC的使用中,后端与前端的交互一般是使用Json格式进行数据传输,SpringMVC的@ResponseBody注解可以很好的帮助我们进行转换,但是后端返回数据给前端往往都有约定固定的格式,这时候我们在后端返回的时候都要组拼成固定的格式,每次重复的操作非常麻烦. 2.SpringMVC对@ResponseBody的处理 SpringMVC处理@ResponseBody注解声明的Controller是使用默认的.RequestResponseBodyMethodProc

  • 详解SpringBoot中@ConditionalOnClass注解的使用

    目录 一.@ConditionalOnClass注解初始 二.@ConditionalOnClass注解用法 1.使用value属性 2.使用name属性 三.@ConditionalOnClass是怎么实现的 四.总结 今天给大家带来的是springboot中的@ConditionalOnClass注解的用法.上次的@ConditionalOnBean注解还记得吗? 一.@ConditionalOnClass注解初始 看下@CodidtionalOnClass注解的定义, 需要注意的有两点,

  • 详解springboot中mybatis注解形式

    springboot整合mybatis对数据库进行访问,本实例采用注解的方式,如下: pom.xml文件 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.5.RELEASE</version> </parent> <pr

  • 详解springboot通过Async注解实现异步任务及回调的方法

    目录 前言 什么是异步调用? 1. 环境准备 2. 同步调用 3. 异步调用 4. 异步回调 前言 什么是异步调用? 异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必须等到上一步执行完后才能执行,异步调用则无需等待上一步程序执行完即可执行.异步调用可以减少程序执行时间. 1. 环境准备 在 Spring Boot 入口类上配置 @EnableAsync 注解开启异步处理.创建任务抽象类 AbstractTask,并实现三个任务方法 doTaskOne(),doTas

  • 详解SpringBoot注解读取配置文件的方式

    一.@Value读取application.properties配置文件中的值 application.properties配置文件 fileName=configName PropertiesConfig类文件 import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class PropertiesC

  • 详解SpringBoot中添加@ResponseBody注解会发生什么

    SpringBoot版本2.2.4.RELEASE. [1]SpringBoot接收到请求 ① springboot接收到一个请求返回json格式的列表,方法参数为JSONObject 格式,使用了注解@RequestBody 为什么这里要说明返回格式.方法参数.参数注解?因为方法参数与参数注解会影响你使用不同的参数解析器与后置处理器!通常使用WebDataBinder进行参数数据绑定结果也不同. 将要调用的目标方法如下: @ApiOperation(value="分页查询") @Re

随机推荐