SpringBoot相关注解讲解

导读:本篇文章讲解 SpringBoot相关注解讲解,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

在这里插入图片描述

摘要

针对@xxx注解进行讲解:

  1. @RestController
  2. @PathVaribale和@RequestParam区别
  3. @EqualsAndHashCode(callSuper = false)
  4. @RequestParam
  5. @RequestBody
  6. @InsertProvider
  7. @SelectKey
  8. @SelectProvider(type=xxxx.class,method=”xxxx”)
  9. @ServletComponentScan
  10. @SpringBootApplication
  11. @ImportResource
  12. @ConfigurationProperties
  13. @Import
  14. @interface :元注解以及自定义注解
  15. @Results
  16. @Data注解 与 lombok
  17. @Resource与@Autowired用法区别
  18. 测试类注解@RunWith(SpringRunner.class)
  19. 测试类注解@SpringBootTest(classes = CalculateExecuteEngineApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
  20. @NotNull @NotEmpty @NotBlank 使用场景
  21. @PostConstruct注解
  22. @Service(“xxx”)
  23. @Qualifier(“xxx”)

1.@RestController :

组合注解,Controller纳入spring容器,完成异步响应
在这里插入图片描述

2.@PathVaribale和@RequestParam区别:

在这里插入图片描述
帖子详情:https://blog.csdn.net/u010412719/article/details/69788227

3.@EqualsAndHashCode(callSuper = false)

-》 这个注解的作用就是自动的给model bean实现equals方法和hashcode方法,且不调用父类的属性

4.@RequestParam :

用于将请求参数区数据映射到功能处理方法的参数上

5.@RequestBody :

主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。
@RequestBody(required=false) 表示xxx对象可以不传入

6.@InsertProvider :

@Insert和@InsertProvider都是用来在实体类的Mapper类里注解保存方法的SQL语句。不同的是,@Insert是直接配置SQL语句,而@InsertProvider则是通过SQL工厂类及对应的方法生产SQL语句,这种方法的好处在于,我们可以根据不同的需求生产出不同的SQL,适用性更好。

7.@SelectKey :

何获在插入后,获取自增主键id的值,自动放到pojo的id属性
@InsertProvider(type = BusinessRulesItemSqlProvider.class, method = “addBusinessRulesItem”)
@SelectKey(statement = “SELECT LAST_INSERT_ID()”, keyProperty = “id”, before = false, resultType = Long.class)
在这里插入图片描述

8.@SelectProvider(type=xxxx.class,method=”xxxx”)

用自定义的provider类构造SQL语句,type 属性用于指定获取sql语句的指定类,method 属性用于指定类中要执行获取sql语句的方法
@Results注解来映射查询结果集到实体类属性。

9.@ServletComponentScan :

在SpringBootApplication上使用@ServletComponentScan注解后,Servlet、Filter、Listener可以直接通过@WebServlet、@WebFilter、@WebListener注解自动注册,无需其他代码。

10.@SpringBootApplication :

springboot启动类中==@SpringBootApplication = @Configuration + @EnableAutoConfiguration + @ComponentScan==
@Configuration的注解类标识这个类可以使用SpringIoC容器作为bean定义的来源。@Bean注解告诉Spring,一个带有@Bean的注解方法将返回一个对象,该对象应该被注册为在Spring应用程序上下文中的bean。
在这里插入图片描述
@EnableAutoConfiguration:能够自动配置spring的上下文,试图猜测和配置你想要的bean类,通常会自动根据你的类路径和你的bean定义自动配置。

	@ComponentScan:会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository,@Controller。

11.@ImportResource :

springboot启动类中==@ImportResource==用于加载其他的配置文件。Eg:yml或xml文件,不然只默认加载application的配置文件。

12.@ConfigurationProperties :

spring boot 使用 -》==@ConfigurationProperties ==: 把配置文件的信息,读取并自动封装成实体类
@EnableConfigurationProperties注解的作用是:使得使用 @ConfigurationProperties 注解的类生效。

13.@Import

有时没有把某个类注入到IOC容器中,但在运用的时候需要获取该类对应的bean

14.@interface :元注解以及自定义注解

在这里插入图片描述

在这里插入图片描述

15.@Results:

在这里插入图片描述

16.@Data注解 与 lombok

在这里插入图片描述

17.@Resource与@Autowired用法区别

在这里插入图片描述
详情:https://blog.csdn.net/magi1201/article/details/82590106?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2

在这里插入图片描述
详情:↓ https://blog.csdn.net/modelsetget/article/details/82285568

18.测试类注解@RunWith(SpringRunner.class)

在这里插入图片描述

19.测试类注解@SpringBootTest(classes = CalculateExecuteEngineApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

在这里插入图片描述

20.@NotNull @NotEmpty @NotBlank 使用场景

在这里插入图片描述

21.@PostConstruct注解

在这里插入图片描述

22.@Service(“xxx”)

@service(“xxx”)括号里的xxx是要实现的类的一个对象名,比如在一个Student实现类上加上@Service(“student”),括号里面就是给实例化后的Student对象取个名字。。。
这是在一个接口有多个实现类的情况下区分实现类的方式。。。。
比如Student实现了Person接口,在你的controller里面@Autowired(自动装配) Person时,假如这时Person还有另一个实现类User,为了确定实例化Student还是User,
@Service括号里面的东西就有用了,
@Autowired
@Qualifier(“xxx”) —合格者,多个实现时,表示实现的具体是哪一个。xxx是@service(“xxx”)中的xxx
private Person person;

23.@Qualifier(“xxx”)

Qualifier的意思是合格者,通过这个标示,表明了哪个实现类才是我们所需要的;
@Autowired默认按照类型匹配注入bean,如果有多个实现类,搭配@Qualifier(“实现类名称”)表明注入的是哪一个实现类的bean:
比如:
@Autowired
@Qualifier(“TestServiceImpl1”)
private TestService testService; //注入的就是TestServiceImpl1这个实现类,注意如果该实现类使用了诸如@Service(“beanName”)这种注解,那么TestServiceImpl1就是beanName;
而@Resource默认按照名称匹配注入bean,而且可以使用name作为属性来确定实际注入的bean
比如:
@Resource(name = “TestServiceImpl1”)
private TestService testService;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/106265.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!