首页 > 其他分享 >Spring常用注解 以及 SpringBoot常用注解

Spring常用注解 以及 SpringBoot常用注解

时间:2022-09-18 19:56:01浏览次数:104  
标签:常用 SpringBoot Spring bean 默认 Bean 注解

Spring常用注解 以及 SpringBoot常用注解

既然提到了这个概念, 那就从Spring先说起. SpringBoot就是封装后的Spring, 相对于Spring, Boot省去了很多配置, 也是很好的解决了Spring的"配置地狱"的缺点

Spring的常用注解

注入

注解 说明
@Controller 标注一个控制器组件类
@Service 标注一个业务层O组件类
@Repository 标注一个DAO组件类
@Component 标注一个普通的Spring Bean类

以上四个本质上属于同一类注解, 用法相同 / 功能相

注解 说明
@Autowired ⽤于为类的属性、构造器、⽅法进⾏注值
@Resource 它并不属于spring的注解,⽽是来⾃于JSR-250。其默认情况下按照bean的名称进⾏注⼊,当找不到匹配项时会按照类型装
@Value 从properties⽂件中的取值赋给修饰的字段
@Primary ⾃动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为⾸选者,否则将抛出异常
@Lazy ⽤于注解类,延迟初始化。
@Named 和@Component功能相同。@Named可以有值,如果没有值⽣成的Bean名称默认和类名相同

@Autowired:⽤于为类的属性、构造器、⽅法进⾏注值

默认情况下,其依赖的对象必须存在(bean可⽤),如果需要改变这种默认⽅式,可以设置其required属性为false。默认按类型装配,如果我们想使⽤按名称装配,可以结合@Qualifier注解⼀起使⽤。如:

@Autowired@Qualifier("BeanName") ,存在多个实例时使⽤

注解 说明
@Configuration 把⼀个类作为⼀个IoC容器,它的某个⽅法头上如果注册了@Bean,就会作为这个Spring容器中的Bean

Scope

@Scope注解是 Spring IOC 容器中的一个作用域,在 Spring IOC 容器中,他用来配置Bean实例的作用域对象。@Scope 具有以下几种作用域:

用法: @Scope("singleton") 也是默认

作用域 说明
singleton 单实例的(单例)(默认)   ----全局有且仅有一个实例
prototype 多实例的(多例)   ---- 每次获取Bean的时候会有一个新的实例
reqeust 同一次请求 ----request:每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP request内有效
session 同一个会话级别 ---- session:每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP session内有效

MVC

注解 说明
@RequestMapping 是⼀个⽤来处理请求地址映射的注解,可⽤于类或⽅法上。⽤于类上,表⽰类中的所有响应请求的⽅法都是以该地址作为⽗路径
@RequestParam ⽤于绑定request请求参数到指定的⽅法
@PathVariable ⽤于⽅法修饰⽅法参数,会将修饰的⽅法参数变为可供使⽤的uri变量(可⽤于动态绑定)
@RequestHeader,@CookieValue 处理request header部分的注解
@RequestParam 作⽤是提取和解析请求中的参数。@RequestParam⽀持类型转换,类型转换⽬前⽀持所有的基本Java
@RequestBody 有个默认属性required,默认是true,当body⾥没内容时抛异常
@SessionAttributes 即将值放到session作用域中, 写在class上面
@ModelAttribute 将数据添加到模型对象中,用于视图页面展示时使用。
@ResponseBody 放在controller上, 返回数据不再是网页, 而是JSON(或xml)
@RestController @ResponseBody+@Controller的合体
@ResponseStatus 修饰类或方法, 返回前端, 一般为状态码(404 或 500)

aop

注解 说明
@Aspect 标明该类为切⾯类,并启⽤AspectJ注解,注:在使⽤时要同@Component⼀起使⽤,否则不会被扫描到加⼊容器
@Pointcut 定义切⼊点
@Before 定义前置通知,在⽬标⽅法执⾏前执⾏
@After 定义后置通知,在⽬标⽅法执⾏后执⾏,不论是⽬标⽅法执⾏正常后退出,还是抛出异常后退出,均会被执⾏
@Around 定义环绕通知,在⽬标⽅法执⾏前后嵌⼊相关业务逻辑
@AfterReturning ⽬标⽅法执⾏正常退出后执⾏
@AfterThrowing ⽬标⽅法执⾏抛出异常后执⾏

注:@Aspect、@Pointcut、@Before、@Around、@After、@AfterReturning、@AfterThrowing属于spring aop模块

注解 说明
@PostConstruct 在构造⽅法和init⽅法(如果有的话)之间得到调⽤,且只会执⾏⼀次。
@PreDestory 注解的⽅法在destory()⽅法调⽤后得到执⾏
@Transactional 在处理dao层或service层的事务操作时,譬如删除失败时的回滚操作,可⽤到@Transactional注解
@ControllerAdvice 控制器异常处理
@ExceptionHandler Controller中有方法加此注解, 那其他方法中没有捕获的异常就会以参数的形式传入添加此注解的方法上

SpringBoot注解

Spring的注解SpringBoot肯定能使得啦, 但是还是添加了一些新注解的啦

启动类

注解 说明
@SpringBootApplication SpringBoot项目的启动类

翻看源码, 发现 此注解 包含以下三个注解

注解 说明
@SpringBootConfiguration 作用与@Configuration作用相同, 声明此类为配置类
@EnableAutoConfiguration 是SpringBoot实现自动化配置的核心注解, 通过这个注解把Spring应用所需的bean注入容器中
@ComponentScan 动态确定扫描范围, 默认情况下, 它扫描所有类型, 并且扫描范围是此注解所在配置类包及子包的类

MVC

注解 说明
@GetMapping 相当于@RequestMapping(method=RequestMethod.GET)
@PostMapping 相当于@RequestMapping(method=RequestMethod.POST)
@PutMapping 相当于@RequestMapping(method=RequestMethod.PUT)
@DeleteMapping 相当于@RequestMapping(method=RequestMethod.DELETE)
@PatchMapping 相当于@RequestMapping(method=RequestMethod.PATCH)

测试

注解 说明
@RunWith(SpringRunner.class) RunWith就是一个运行容器, @RunWith(JUnit4.class)就是指用JUnit4来运行
@SpringBootTest SpringBoot用于测试的注解, 可指定启动类或者测试环境

标签:常用,SpringBoot,Spring,bean,默认,Bean,注解
From: https://www.cnblogs.com/devour-zuan-blog/p/16704391.html

相关文章