SpringBoot中常用的注解有哪些

技术SpringBoot中常用的注解有哪些这篇文章主要介绍了SpringBoot中常用的注解有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、@Sp

这篇文章主要介绍了回弹中常用的注解有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、@SpringBootApplication

此注解是Spring Boot项目的基石,创建回弹项目的应用时会默认加上

@回弹应用

publicclassSpringSecurityApplication应用程序应用程序{

publicationstativitmain(Strings[]args){ 0

springapplication。run(springsecurityaapplication,args);

}

} @回弹应用看作@配置,@启用自动配置,@组件扫描注解的集合

@EnableAutoConfiguration:启用回弹的自动配置机制

@ComponentScan:扫描被@组件/@服务/@控制器注解的比恩,注解默认会扫描该类所在的包下所有类

@Configuration:允许在春天上下文中注册额外的豆或导入其他配置类

二、@Bean

憨豆对象注册春季国际奥委会容器与使用豆对象是整个春天框架的重点,其中@豆就是一个将方法作为春豆对象注册的一种方式

packagecom.edu。水果;

//定义一个接口

公共接口cefruitt {

//没有方法

}

/*

*定义两个子类

*/

packagecom.edu。水果;

@配置

public class applemissionfulitinteger {//将苹果类约束为整数类型

}

packagecom.edu。水果;

@配置

公共类ginsen implesfuitstring {//将人参类约束为线类型

}

/*

*业务逻辑类

*/

打包。edu。服务;

@配置

公共班级水果服务{

@自动连线

privateAppleapple

@自动连线

女贞人参;

//定义一个产生豆的方法

@Bean(名称='getApple ')

公共水果?getApple(){ 0

系统。出去。println(苹果。GetClass().getName().hashCode);

System.out.println(人参。getClass().getName().hashCode);

returnnewApple();

}

}

/*

*测试类

*/

@ RunWith(blockjunit 4级跑者。类)

publicclassConfig{

公共配置(){ 0

super(' class path : sprint-水果。XML ');

}

@测试

公共void测试(){ 0

超级棒。GetBean(' GetAppLe ');//这个豆从哪来,

//从上面的@豆下面的方法中返回的是一个

Apple类实例对象
    }
}

三、@Autowired

@Autowired自动注入注解,最常用的一种注解将对象自动导入到类中,注解自动装配bean的类

四、Component家族

@Component:通用注解,当不知道Bean在哪一层时,可以使用@Component注解标注。
@Repository: 对应持久层—Dao层的注解,用于操作数据库相关
@Service: 对应服务层的注解,用来连接Dao层做逻辑处理
@Controller:对应Spring MVC控制层,主要接收用户请求并调用service返回给前端页面

五、@RestController

@RestController注解是@Controller注解和@ResponseBody注解的合集,用来返回Json格式给页面(带Rest格式的就是返回的Json文本)

六、@Scope

声明Spring Bean的作用域

@Scope("singleton")
public Person personSingleton(){
    return new Person();
}

Spring Bean的四种作用域:singleton,prototype,request,session

七、@Configuration

一般声明配置类,使用@Component或者@Configuration

@Configurantion
public class AppConfig{
    @Bean
    public TransferService transferService(){
        return new TransferServiceImpl();
    }
}

八、@RequsetMapping

@RequsetMapping是处理HTTP请求的最通用注解

@RequestMapping("/users")
public ResponseEntity<List<User>> getAllUsers(){
    return userRepository.findAll();
}

八、@GetMapping

一般声明配置类,使用@Component或者@Configuration

九、@Configuration

@GetMapping 就等价于@RequestMapping(value="/users",method =RequsetMethod.GET)

即使用@GetMapping就相当用接收GET方法了

@GetMapping("/users")
public ResponseEntity<List<User>> getAllUsers(){
    return userRepository.findAll();
}

十、@PostMapping

@PostMapping 就等价于@RequestMapping(value="/users",method =RequsetMethod.POST)

即使用@PostMapping就相当用接收Post方法了

@PostMapping("/users")
public ResponseEntity<List<User>> getAllUsers(){
    return userRepository.findAll();
}

十一、@PutMapping

@PutMapping("/users/{userId}")等价于@RequestMapping(value = “/users/{userId}”,method = RequestMethod.PUT)

@PutMapping("/users/{userId}")
public ResponseEntity<User> updateUser(@PathVariable (value ="userId")Long userId, @Valid @RequestBody UserUpdateRequest userUpdateRequest){
...
}

十二、@DeleteMapping

@DeleteMapping("/users/{userId}")等价于@RequestMapping(value ="/users/{userId}",method = RequestMethod.DELETE)

@DeleteMapping("/users/{userId}")
public ResponseEntity deleteUser(@PathVariable(value = "userId) Long userId){
...
}

十三、@ParhVariable和@RequestParam

@PathVariable 用于获取路径参数, @RequestParam用于获取查询参数

@GetMapping("/users/{userId}/teachers")
public List<Teacher> getUserRelatedTeachers(@PathVariable("userId") Long userId,@RequestParam(value = "type",required = false) String type){
...
}

其中@PathVariable是获取请求中的{userId}值,@RequestParam则是url读取请求中type的值

比如我们url请求中/users/{123456}/teachers?type=Chinese 则我们在Controller获取到的就是userId = 123456 , type = Chinese

另在@RequestParam中 value=“参数名” required = “true/false”(true表示参数不允许不存在,false表示参数允许不存在) defaultValue="" 设置defaultValue时默认required为false。

十四、@RequestBody

用于读取Request请求的body部分,且Content-Type为application/json格式数据,接收到数据后会自动将数据绑定在Java对象上,系统会使用HttpMessageConverter来讲请求的body中的json字符串转换为Java对象

@PostMapping("/sing-up")
public ResponseEntity signUp(@RequsetBody @Valid UserRegisterRequest userRegisterRequest){
    userService.save(userRegisterRequest);
    return ResponseEntity.ok().build()'
}

SpringBoot中常用的注解有哪些

这就是典型的RequestBody在Post请求里进行传输数据当后端Controller接收到json格式的数据后,直接就会生成Java对象映射到UserRegisterRequest类上,这样就可以直接将userRegisterRequest对象进行存储。顺便说一下@Valid注解是用

来验证数据格式是否符合要求,如果符合要求则通过,不符合要求,提示注解中message信息

十五、读取配置信息

读取application.yml的注解

wuhan2020: 武汉加油!中国加油!
my-profile:
  name: name
  email: XXXX@qq.com
library:
  location: dalian
  books:
    - name: name1
      description: description1
    - name: name2
      description: description2
    - name: name3
      description: description3

1.@Value

使用@Value("${property}")读取简单的配置信息

@Value("${wuhan2020}")
String wuhan2020;

2.@ConfigurationProperties

通过@ConfigurationProperties读取配置信息并与bean绑定

@Component
@ConfigurationProperties(prefix = "library")
class LibraryProperties{
    @NotEmpty
    private String location;
    private List<Book> books;
    @Data
    @ToString
    static class Book{
        String name;
        String description;
    }
}

十六、@Qualifier

当有多个同一类型的Bean时,可以用@Qualifier(“name”)来指定。与@Autowired配合使用。@Qualifier限定描述符除了能根据名字进行注入,但能进行更细粒度的控制如何选择候选者,具体使用方式如下:

@Autowired 
@Qualifier(value = “demoInfoService”) 
private DemoInfoService demoInfoService;

十七、@MapperScan

spring-boot支持mybatis组件的一个注解,通过此注解指定mybatis接口类的路径,即可完成对mybatis接口的扫描。

它和@mapper注解是一样的作用,不同的地方是扫描入口不一样。@mapper需要加在每一个mapper接口类上面。所以大多数情况下,都是在规划好工程目录之后,通过@MapperScan注解配置路径完成mapper接口的注入。

添加mybatis相应组建依赖之后。就可以使用该注解。

SpringBoot中常用的注解有哪些

十八、@CrossOrigin

@CrossOrigin(origins = “”, maxAge = 1000) 这个注解主要是为了解决跨域访问的问题。这个注解可以为整个controller配置启用跨域,也可以在方法级别启用。

十九、@ControllerAdvice

@ControllerAdvice 和 @RestControllerAdvice:通常和@ExceptionHandler、@InitBinder、@ModelAttribute一起配合使用。

@ControllerAdvice 和 @ExceptionHandler 配合完成统一异常拦截处理。

@RestControllerAdvice 是 @ControllerAdvice 和 @ResponseBody的合集,可以将异常以json的格式返回数据。

如下面对数据异常返回的统一处理。

SpringBoot中常用的注解有哪些

二十、资源导入注解

@ImportResource @Import @PropertySource 这三个注解都是用来导入自定义的一些配置文件。

@ImportResource(locations={}) 导入其他xml配置文件,需要标准在主配置类上。

导入property的配置文件 @PropertySource指定文件路径,这个相当于使用spring的标签来完成配置项的引入。

@import注解是一个可以将普通类导入到spring容器中做管理

二十一、@Transactional

通过这个注解可以声明事务,可以添加在类上或者方法上。

在spring boot中 不用再单独配置事务管理,一般情况是我们会在servcie层添加了事务注解,即可开启事务。要注意的是,事务的开启只能在public 方法上。并且主要事务切面的回滚条件。正常我们配置rollbackfor exception时 ,如果在方法

里捕获了异常就会导致事务切面配置的失效。

感谢你能够认真阅读完这篇文章,希望小编分享的“SpringBoot中常用的注解有哪些”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/143177.html

(0)

相关推荐

  • vue权限控制按钮显示隐藏(vue按钮级别权限控制)

    技术vue按钮怎么实现权限控制这篇文章主要讲解了“vue按钮怎么实现权限控制”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue按钮怎么实现权限控制”吧!一、步骤1.定义

    攻略 2021年12月23日
  • 香港多IP香港多IP服务器可以做游戏代理吗

    技术香港多IP香港多IP服务器可以做游戏代理吗很多玩家候经常会发现无论是steam还是psn虽然游戏下载升级很快但是联机的时候质量很差,那么如何解决这一问题呢,不少用户想到利用游戏加速器,但是现在很多游戏加速器都推出了V

    礼包 2021年10月22日
  • C++中怎么使用工厂函数

    技术C++中怎么使用工厂函数本篇内容介绍了“C++中怎么使用工厂函数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!如果在

    攻略 2021年11月29日
  • 如何修改IIS目录的ASP.NET版本

    技术如何修改IIS目录的ASP.NET版本这篇文章将为大家详细讲解有关如何修改IIS目录的ASP.NET版本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一个用于修改虚拟目录的ASP.

    攻略 2021年11月19日
  • 怎么使用物联网设备来确保儿童安全

    技术怎么使用物联网设备来确保儿童安全这篇文章将为大家详细讲解有关怎么使用物联网设备来确保儿童安全,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。IoT 设备是什么?IoT 设备是指那些在

    攻略 2021年10月26日
  • HBASE表如何迁移

    技术HBASE表如何迁移这篇文章主要介绍了HBASE表如何迁移,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。以下方法可以实现重命名,以及不同namespa

    攻略 2021年12月8日