SpringBoot 常见注解及含义

说明:网络上有很多关于SpringBoot注解的文章,这里仅罗列常见的注解,并对其做下简略分类。某些注解可能不仅仅只在本文所罗列的某类中,在其它类中或许也会用到,这里的分类仅以常用为主。

入口类:

    @SpringBootApplication:标注该类为启动类。包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文。 @EnableAutoConfiguration:自动载入应用程序所需的所有Bean。 @ComponentScan:组件扫描,可自动发现和装配一些Bean。 @SpringBootConfiguration:相当于传统的xml配置文件。

测试类:

    @RunWith:参数化运行容器。如果只是简单单元测试,可去掉该注解。 @SpringBootTest:Spring将加载所有被管理的bean,基本等同于启动了整个服务,此时便可以开始功能测试。 @Test:JUnit单元测试,可进行时间测试或异常测试等。

Repository:

    @Repository:只能标注在 DAO 类上,常用作持久层Bean标注。 @NoRepositoryBean:一般用作父类的repository,有这个注解,Spring不会去实例化该repository。

实体类:

    @Entity:标注该类是一个实体化Bean。 @Table:标注该类到数据库中的数据表相对应。 @Id:标注主键,作用于某变量。 @Column:标注某变量对应于数据库中的某字段。 @Query:标注某方法将要使用JPQL(自定义查询语言)。

配置类:

    @Configuration:相当于传统的xml配置文件。 @Bean:相当于传统的xml配置文件的<bean>。会将作用于的方法返回值装载入Spring容器。

Service类:

    @Service:自动配置该类交由Spring容器管理。相当于@Component,只不过这里使用@Service不仅表明其为Bean,而且为Service层。

通用类:

    @Resource :作用相当于@Autowired,自动装配Bean组件。默认按照名称装配。 @Component:泛指组件。当组件不容易分为Controller,Service或Repository时可用该注解标注属于Bean并且交由Spring容器管理。 @Autowired:自动装配Bean组件。默认按照类型装配,常与@Qualifier使用。

Controller类:

    @Controller:标注该类为一控制层类,被标注的方法或类可以直接通过返回String跳转到jsp、ftl、html等模版页面,同时SpringBoot容器会管理该类。 @RequestMapping:该类将请求地址映射起来(相当于使用配置的URL访问该类或该方法)。 @RestController:相当于@ResponseBody + @Controller,被标注的方法或类只能返回String、Object、Json等实体对象,不能跳转到模版页面。 @ResponseBody:标注该方法将java对象转为json格式的数据,常与@Controller配合使用。

事务类:

    @Transactional:该注解作用于一个类或方法上,说明该类或方法需要事务支持。
经验分享 程序员 微信小程序 职场和发展