SpringBoot常用注解

本文最后更新于:3 年前

类名上的注解

注解 使用位置 说明
@RestController 类名上 相当于@ResponseBody加@Controller
@Controller 类名上 声明该类时一个SpringMVC Controller 对象
@Service 类名上 声明一个业务处理类(实现非接口类)
@Repository 类名上 声明数据库访问类(实现非接口类)
@Component 类名上 代表其是 Spring 管理类,常用在无法用@Service、@Repository 描述的类上,相当于通用的注解
@Configuration 类名上 声明该类是一个配置类,常与 @Bean 配合使用
@Resource 类名上、属性或构造函数参数上 默认按照 byName 自动注入
@Autowired 类名上、属性或构造函数参数上 默认按照 byType 自动注入
@RequetsMapping 类名上或方法上 如果用在类上,则表明所有响应请求的方法都是以该地址作为父路径的
@Transactional 类名上或方法上 用于处理事务
@Qualifier 类名上或属性上 为 @Bean 指定名称,随后再通过名字引用Bean

@RestController

​ 用于返回JSON、XML等数据,但不能返回HTML页面。

​ 相当于注解@ResponseBody 和注解 @Controller 合在一起使用。

@Controller

​ 用于标注控制器层,在MVC开发模式中代表 C(控制器)。

​ 主要用于构建MVC模式的程序。

@Service

​ 用于声明一个业务处理类(实现非接口类),用于标记服务层,处理业务逻辑。

@Repository

​ 用于标记业务访问层

@Component

​ 用于把普通的POJO实例化到 Spring 容器中。

​ 当类不属于注解@ConTroller 和@Service等时,就可以使用注解@Component来标注这个类。

​ 可以配合CommandLineRunner 使用,以便在程序启动后执行一些基础任务。

@Configuration

​ 用于标注配置类,可以由 Spring 容器自动处理。

​ 作为Bean的载体,用来指示一个类声明、一个或者多个@Bean方法,在运行时为这些Bean生成BeanDefinition和服务请求。

@Resource

​ @Resource和@Autowired都可以用来装配Bean,也可以写在字段或者Setter 方法上。

@Autowired

​ 表示被修饰的类需要注入对象。Spring会扫描所有被 @Autowired 标注的类,然后根据类型在IoC容器中找到匹配的类进行注入。

​ 被@Autowired注解后的类不再需要导入文件。

@RequetsMapping

​ 用来处理请求地址映射,用在类或者方法上。如果用在类上,则表示类中的所有响应请求的方法都是以该路径作为父路径的。

​ 该注解的6个属性:

  • Params:指定Request中必须包含某些参数值,才让该方法处理。
  • Headers:指定Request中必须包含某些指定的header值,才能让该方法处理请求。
  • Value:指定请求的实际地址,指定的地址可以是URL template 模式。
  • Method:指定请求的Method类型,如GET、POST等。
  • Consumes:指定处理请求的提交内容类型Ontent-Type。
  • Produces:指定返回的内容类型。只有当 Request 请求头中的Accept 类型中包含该指定类型时才返回。

@Transactional

可以用在 接口、借口方法、类、类方法。

Spring不建议在 接口或者接口方法上使用该注解,因为该注解只有使用在基于接口的代理时才会生效。

如果异常被捕获(try{ }catch{ })了,事务就不回滚了。如果想让食物回滚,则必须再往外抛出异常(try{ }catch{ throw Exception })。

@Qualifier

用于标注哪一个实现类才是需要注入的。

@Qualifier的参数名称为被注入的类中的注解@Service标注的名称。

@Qualifier和@Autowired一起使用:

1
2
@Autowired
@Qualifier("articleService")

@Resource和@Qualifier的不同

@Resource自带name属性。

方法名上的注解

明天再写


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!