• @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属性一旦指定,就只会按照名称装配。