spring常用注解

声明bean的注解

说明

@Component

使用在类上用于实例化Bean

@Repository

使用在Dao层类上用于实例化Bean

@Service

使用在Service层类上用于实例化Bean

@Controller

使用在Web层类上用于实例化Bean(SpringMVC中会讲到)

@Autowired

使用在字段上用于根据类型依赖注入

@Qualifier

结合@Autowired一起使用用于根据名称进行依赖注入

@Resource

相当于@Autowired+@Qualifier,按照名称进行注入

@Bean

使用在方法上,将该方法的返回值存储到Spring容器中,通常用于管理第三方类(不是自己定义的类)的bean<br /

@Value

注入普通属性

@Scope

标注Bean的作用范围

singleton : 唯一 bean 实例,Spring 中的 bean 默认都是单例的。

prototype : 每次请求都会创建一个新的 bean 实例。

request : 每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP request 内有效。

session : 每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP session 内有效。

@PostConstruct

使用在方法上标注该方法是Bean的初始化方法

@PreDestroy

使用在方法上标注该方法是Bean的销毁方法

@Transactional

在需要进行事务控制的类或是方法上开启事务

@Configuration

用于指定当前类是一个 Spring配置类,当创建容器时会从该类上加载注解

@ComponentScan

用于指定Spring在初始化容器时要扫描的包。

作用和在Spring的xml配置文件中的 <context:component-scan base-package=“com.qfedu” />一样。

@PropertySource

用于加载.properties文件中的配置

@Import

用于导入其他配置类

@MapperScan

扫描特定包下的mapper

@EnableTransactionManagement

配置事务的注解驱动

@runWith

–@RunWith就是一个运行器

–@RunWith(JUnit4.class)就是指用JUnit4来运行

–@RunWith(SpringJUnit4ClassRunner.class),让测试运行于Spring测试环 境,以便在测试开始的时候自动创建Spring的应用上下文

–@RunWith(Suite.class)的话就是一套测试集合

springMVC常用注解

注解

说明

@Controller

指定这是一个控制器类,这个注解的作用和@Component作用是一样的,用来配置bean让Spring容器进行管理。配置了@Controller注解之后,需要在SpringMVC配置文件中配置:


< bean class=“com.host.app.web.controller.MyController”/>


< context:component-scan base-package = “com.host.app.web” />//路径写到controller的上一层

@RequestMapping

用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

这个知识普通形式,当然还有rest风格,比如 @PostMapping,@GetMapper等等

@PathVariable

用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数。

@requestParam

@requestParam主要用于在SpringMVC后台控制层获取参数,类似一种是request.getParameter(“name”)

它有三个常用参数:defaultValue = “0”, required = false, value = “isApp”;defaultValue 表示设置默认值,required 铜过boolean设置是否是必须要传入的参数,value 值表示接受的传入的参数类型。

@ResponseBody

返回的数据不是html标签的页面,返回json时使用

@RequestHeader

接受请求 也就是地址栏?name=1中的那么的值

@CookieValue

接受cookit 的值

@RequestBody

接受请求体的内容

@RequestHeader

接受请求头的信息

全局异常处理

说明

@ControllerAdvice

包含@Component。可以被扫描到。统一处理异常。

@ExceptionHandler(Exception.class)

用在方法上面表示遇到这个异常就执行以下方法。

springboot常用注解

注解

说明

@SpringBootApplication

申明让spring boot自动给程序进行必要的配置,这个配置等同于:

@Configuration ,@EnableAutoConfiguration 和 @ComponentScan 三个配置。

– @SpringBootConfiguration:标注当前类是配置类,这个注解继承自@Configuration。并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到srping容器中,并且实例名就是方法名。

– @EnableAutoConfiguration:是自动配置的注解,这个注解会根据我们添加的组件jar来完成一些默认配置,我们做微服时会添加spring-boot-starter-web这个组件jar的pom依赖,这样配置会默认配置springmvc 和tomcat。

– @ComponentScan:扫描当前包及其子包下被@Component,@Controller,@Service,@Repository注解标记的类并纳入到spring容器中进行管理。等价于context:component-scan的xml配置文件中的配置项。

@SpringBootTest

一般配合@RunWith(SpringJUnit4ClassRunner.class)使用

@SpringBootTest替代了spring-test中的@ContextConfiguration注解,目的是加载ApplicationContext,启动spring容器。

使用@SpringBootTest时并没有像@ContextConfiguration一样显示指定locations或classes属性,原因在于@SpringBootTest注解会自动检索程序的配置文件,检索顺序是从当前包开始,逐级向上查找被@SpringBootApplication或@SpringBootConfiguration注解的类。