SpringBoot常用注解
主类注解
一、@SpringBootApplication
@SpringBootApplication 是一个复合注解,通常作用于主类(启动类)上,包含了 @SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan这三个注解。
@SpringBootConfiguration :标注当前类为配置类,继承于@Configuration。会将当前类声明的带有@Bean注解的一个或多个方法注入到spring容器中。
@EnableAutoConfiguration:自动配置的注解,根据声明的jar来进行自动配置
@ComponentScan:扫描当前包及其子包下被@Component,@Controller,@Service,@Repository注解标记的类并纳入到spring容器中进行管理。等价于context:component-scan的xml配置文件中的配置项。
二、@MapperScan
@MapperScan与@Mapper的区别在于@Mapper需要加在每一个接口类上,而@MapperScan则可以通过扫描包的方式将路径下的Mapper接口类统一注入。
注意需要添加注解:
<dependency>
<groupld>org.mybatis.spring.boot</groupld>
<artifactld>mybatis-spring-boot-starter</artifactld>
<version>${mybatis.springboot.version}</version>
</dependency>
Controller层注解
@Controller
@Controller注解表明此类为控制器类,和 @RequestMapping配合使用来拦截请求,如果不在method中设置请求参数则默认为get和post。
@RestController
@RestController 是 @controller和 @ResponseBody的结合,同样可以和 @RequestMapping配合拦截请求。
同时为了简化代码就有了所谓的 Rest风格请求方式。
普通风格 | Rest风格 |
---|---|
@RequestMapping(value=“”,method = RequestMethod.GET) | @GetMapping(value =“”) |
@RequestMapping(value=“”,method = RequestMethod.POST) | @PostMapping(value =“”) |
@RequestMapping(value=“”,method = RequestMethod.PUT) | @PutMapping(value =“”) |
@RequestMapping(value=“”,method = RequestMethod.DELETE) | @DeleteMapping(value =“”) |
@PathVariable
路径变量注解,@RequestMapping中用{}来定义url部分的变量名
@RequestMapping(value="/{activityId}",method=RequestMethod.GET)
public void Test(@PathVariable("activityId")Long activityId){}
@Autowired
@Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。
servcie层注解
@Service
@Service用来注明此类为业务层的组件,将带有@Service的类注入到spring容器中。
@Resource
@Resource和@Autowired一样都可以用来装配bean,都可以标注字段上,或者方法上。
@Autowired只按照byType 注入;@Resource默认按byName自动注入,也提供按照byType 注入;
持久层注解
@Repository & @Mapper
使用@mapper后,不需要在spring配置中设置扫描地址,通过mapper.xml里面的namespace属性对应相关的mapper类,spring将动态的生成Bean后注入到ServiceImpl中。
@repository则需要在Spring中配置扫描包地址,然后生成dao层的bean,之后被注入到ServiceImpl中