第四节 SpringBoot中的注解符使用
Spring的一个核心功能是IOC,就是将Bean初始化加载到容器中,Bean是如何加载到容器的,可以使用Spring注解方式或者Spring XML配置方式。Spring注解方式减少了配置文件内容,更加便于管理,并且使用注解可以大大提高了开发效率!注解本身是没有功能的,和xml一样,注解和xml都是一种元数据,元数据即解释数据的数据,也就是所谓的配置。
1.Spring Boot 核心注解
核心注解是@SpringBootApplication
,它主要由@SpringBootConfiguration
,@EnableAutoConfiguration
和@ComponentScan
这三个构成。
@EnableAutoConfiguration
是由 @AutoConfigurationPackage
和@Import(EnableAutoConfigurationImportSelector.class)
这两个组成的。
@AutoConfigurationPackage
是自动配置包,包括了一个@Import
注解,给容器导入了自动配置包的注册器,AutoConfigurationPackages.Registrar.class
:将主启动类的所在包及包下面所有子包里面的所有组件扫描到Spring容器
@Import(AutoConfigurationImportSelector.class)
:导入自动配置导入选择器组件,AutoConfigurationImportSelector.class
:自动配置导入选择器,主要是从类路径下的META-INF/spring.factories中获取资源
@ComponentScan
:扫描包,该注解默认会扫描该类所在的包下所有的配置类
2.控制器注解
@Controller
:标注于任意一个类上,声明该类属于Controller。通常该注解会与@ResponseBody
,@RequestBody
等注解搭配使用。
@RestController
:标注于任意一个类上,声明该类属于Controller。与@Controller
不同的是,@RestController
可以返回JSON内容,而单独@Controller
则不可以。@RestController
无法跳转页面。
@RequestMapping
:
作用:映射HTTP请求到某个具体方法。参数内容如下:
- value:请求的URL;
- method:HTTP请求方式,可选值
- RequestMethod.GET,RequestMethod.POST等;
- consumes:媒体类型,可选值有"application/json"等;
- produces:相应的媒体类型,可选值有"application/json"等;
- params:请求的参数;
- headers:请求的HTTP头的值。
@ResponseBody
:标注某个被访问的方法返回类型前,该方法将会返回JSON类型而不是String或其它类型。需要注意的是,访问路径结尾必须是以.json
结尾,否则可能报错。
@RequestBody
:将json格式的数据转为java对象。
@PathVariable
:将URL中的值映射到方法参数中。在@RequestMapping
或其它的括号内使用{}
来获取变量,在被调用的方法参数类型前使用该注解。
@GetMapping
:标注于某个方法上,声明该类被访问的方式为Get类型。
@PostMapping
:标注于某个方法上,声明该类被访问的方式为Post类型。
3.服务层注解
@Service
:用于标注业务层组件,默认名称为类名。
@Slf4j
:用作日志输出,在该类添加了该注释之后,就可以在代码中直接引用log.info( ) 打印日志了,该注解需要lombok插件
@Transactional
:是声明式事务管理,在接口实现类或接口实现方法上添加,只有public的方法才起作用,只读的接口不需要使用事务接口。
4. 持久层注解
@Repository
:主要用于数据库相关操作。
5.依赖注入注解
@Autowired
:是Spring对组件自动装配的一种方式。常用于在一个组件中引入其他组件。