- @SpringBootApplication
- @SpringBootConfiguration:表示配置类,implement Configuration,并会吧当前类声明的Bean标记的注解纳入Spring容器中,并且实例名就是方法名。
- @EnableAutoConfiguration:自动配置,根据我们添加的组件jar完成默认配置,如spring-bpoot-starter-web组件的jar的pom依赖,默认配置springmvc和tomcat。
- ComponentScan:扫描当前包及子包下被《Component、Controller、Service、Repository》标记的类并纳入到spring容器中进行管理。等价于context:component-scan的xml配置文件中的配置项。
- ServletComponentScan:Servlet、Filter、Listener可直接通过WebServlet、WebFilter、WebListener注解自动注册,这样通过注解无需其他配置。
MapperScan:spring-boot支持mybatis组件的一个注解,指定mybatis接口类的路径,即可完成对mybatis接口的扫描。他和mapper注解是一样的作用,不同的地方扫描入口不一样,mapper需要添加在每一个mapper接口类上,大多情况都是规划好工程目录后,通过MapperScan注解路径配置完成mapper接口的注入。
参数请求
RestController:是Controller和ResponseBody的结合。请求格式普通风格
- PathVariable:路径变量注解
- @RequestParam接收的参数是来自HTTP请求体或请求url的QueryString中。
- getxxx(@RequestParam(“code”) String userCode);
required
表示是否必须,默认为true
,必须。defaultValue
可设置请求参数的默认值。value
为接收url的参数名(相当于key值)
- @RequestBody接收的参数是来自requestBody中,即请求体。一般用于处理非 Content-Type: application/x-www-form-urlencoded编码格式的数据,比如:application/json、application/xml等类型的数据。
- getSubComCodeSql(@RequestBody SubComCodeReqDto subComCodeReqDto);
- GET请求中,因为没有HttpEntity,所以@RequestBody并不适用。
- POST请求中,通过HttpEntity传递的参数,必须要在请求头中声明数据的类型Content-Type,SpringMVC通过使用
- HandlerAdapter 配置的HttpMessageConverters来解析HttpEntity中的数据,然后绑定到相应的bean上。
标记组件
- Componment
- Controller:表面是一个控制器类,配合ResquestMapping(默认GET)使用拦截请求,请求完成后转向视图解析器。微服务时前后端分离,请求后端只关注数据处理,后端返回如果json,需要配合ResponseBody注解完成,这样需要三个注解。
- Service:标记业务层组件,我们会将业务逻辑处理的类都会加上这个注解交给spring容器。事务的切面也会配置在这一层。
- Repository:注解类为DAO对象,管理操作数据库的对象。总的来看Component、Service、Controller、Repository是spring注解,注解后可被spring框架所扫描并注入到spring容器来进行管理。Component是通用注解,其他三个是扩展,方便解耦维护开发。尽量少Component。
- 持久层
- Transactional:可声明事务,可添加在类或者方法上。spring boot中不用单独配置事务管理,一般情况是我们会在Service层添加了事务注解,即可开启事务,要注意的是,事务的开启只能在public方法上。并且主要事务切面的回滚条件,正常我么你配置rollbackfor exception时,如果在方法里捕获了异常就会导致事务切面配置的失效。
- @RequestParam
- @RequestBody
- @RequestBody
- @PostMapping
- @RequestMapping
@Controller
+@ResponseBody
=@RestController
Feign
API
- FeignClient()
- PostMapping()
- ResquestBody
- ResponseBody
区别:Autowired和Resource
- 都可用来装配bean,都可写在字段上,或者卸载setter方法上。
- Autowired:
- Spring提供
- 默认按照type,若想使用名称结合@Autowired() @Quailfier(“baseDao”);若允许null设置@Autowired(required = false)
- Resource :
- JDK自带
- 默认按照name,若不知道name注解在字段时默认字段名,setter方法默认属性名,当找不到名称匹配的bean时才按照类型进行匹配。
- 但是若name属性一旦指定,就只会按照名称装配。