说明:网络上有很多关于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
:该注解作用于一个类或方法上,说明该类或方法需要事务支持。