zoukankan      html  css  js  c++  java
  • 《spring boot 实战》读书笔记

    前言:虽然已经用spring boot开发过一套系统,但是之前都是拿来主义,没有系统的,全面的了解过这套框架。现在通过学习《spring boot实战》这本书,希望温故知新。顺便实现自己的spring cloud代码模板和练习Sping cloud 2.0框架的使用

    一、spring基础

    1.声明Bean的注解:

      @Component:组件,没有明确的角色

      @Service:业务逻辑层使用

      @Respository:dao层使用

      @Controller:表现层使用

    2.注入Bean的注解:

      @Autowired:spring提供的注解

      @Inject和@Resource:java标准提供

    3.配置类注解:

      @Configuration:声明配置类

      @ComponentScan:扫描指定路径下的Bean

    4.java配置:

      @Configuration:声明配置类

      @Bean:注解在方法上,当前方法的返回值,声明为一个bean

    5.关于注解配置和java配置:全局配置(如数据库、MVC的相关配置)使用java配置,业务场景下的bean,直接使用注解配置(@Service、@Component...)

    6.常见的AOP技术有两个,分别是Filter和代理模式(也可以称为过滤器和拦截器),Filter是基于回调函数(请看《Java回调机制解析》),代理模式是基于Java反射技术,代理模式又分为静态代理和动态代理,动态代理就是拦截器的简单实现。(过滤器和拦截器的区别可参见《过滤器和拦截器的区别》)

    7.spring内部提供了Bean之间的消息通信机制:application event

    二、spring高级话题

    1.spring aware: spring框架中有很多xxxAware的接口,提供了spring容器的服务。比如ResourceLocaderAware提供了对资源加载的服务。

    2.多线程:通过TaskExecutor这个执行器来实现并发任务,它的一个实现ThreadPoolTaskExecutor是基于线程池实现的。

      @EnableAsync:开启对异步任务的支持

      @Async:声明是一个异步任务

    3.计划任务

      @EnableScheduling:开启对计划任务的支持

      @Scheduled:声明是一个计划任务,可以支持多种类型的计划(cronfixDelayfixRate)

    4.条件注解:根据自定义的条件,生成bean

      @Conditional

    5.组合注解与元注解:可以使用组合注解来代替多个元注解来使用

    6.@Enable*注解的工作原理:直接导入配置、依据条件选择配置类、动态注册Bean

    7.测试:测试框架(spring-test)

    三、 Sping MVC

    1.MVC:Model+View+Controller

    2.三层架构:展现层+应用层+数据访问层

    3.实际上,MVC只存在三层架构的展现层

    4.注解说明:

      @Controller:spring MVC里的controller类的注解

      @RequestMapping:路径映射,会继承注解在类上的路径

      @ResponseBody:指定返回数据,放在body里

      @RequestBody:放在参数前面,将request的body里的数据解析到参数对象中

      @PathVariable:用来解析路径,restful风格的http请求,会把资源ID,放在路径里,可以通过它来解析

      @RestController:组合注解(常用),组合了@Controller和@ResponseBody注解

    5.SpingMVC基本配置

      1)静态资源映射

      2)拦截器配置

      3)@ControllerAdvice:全局配置

      4)@ExceptionHandler:异常处理

      5)@InitBinder:处理前台请求参数到model中的绑定值

      6)ModelMapping:处理绑定值

    6.其它配置,参考API(WebMvcConfigAdapter)  

    7.高级配置

      1)文件上传配置

      2)自定义HttpMessageConverter:处理http请求的数据

      3)服务器推送技术:SSE、servlet3.0+

    8.Spring MVC的测试:控制器的测试

    四、实战SpringBoot

    1.tomcat配置(SSL配置)

    2.Favicon配置

    3.WebSocket配置

    4.事务

    5.缓存

    6.NoSql

    7.安全控制:认证和授权

    8.批处理(Spring Batch):定时任务

    9.异步消息

    10.系统集成(Spring Integration):不同系统之间传递数据

     11.应用监控:actuator、SSH

    附录:

    1.其它注解声明:

      1)事务处理:@Transcational

      2)数据缓存:@Cacheable

      3)APO切面相关:@Aspect、@After、@Before、@Around

      4)创建bean的方式:@Scope,示例@Scope("prototype")表示每次新建都创建一个bean,相当于new一个。@Scope("singleton"),为默认配置,表示每次都是单例的,共享一个实例

      5)注入“值”:@Value,示例:

        @Value("需要赋值的字符串"):直接给变量赋值

        @Value("#{systemProperties[]'os.name'}"):获取操作系统属性

        @Value("classpath:com/.../test.txt"):注入文件资源

        @Value("http://www.baidu.com"):注入网址资源

      6)Bean的初始化和销毁:@Bean(initMethod="init",destroyMethod="destroy")

      7)@Profile("dev"):可以通过spring的profiles.active参数,来实例化不同的bean

     

  • 相关阅读:
    Mybatis基本用法--下
    Mybatis基本用法--中
    Mybatis基本用法--上
    Java规范推荐
    jquery、js获取页面高度宽度等
    linux ssh -l 命令运用
    div的onblur事件
    js获取url中的参数方法
    div内部元素居中
    oracle排序
  • 原文地址:https://www.cnblogs.com/xujanus/p/9076922.html
Copyright © 2011-2022 走看看