前言:虽然已经用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:声明是一个计划任务,可以支持多种类型的计划(cron\fixDelay\fixRate)

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

 

《spring boot 实战》读书笔记的更多相关文章

  1. csapp读书笔记-并发编程

    这是基础,理解不能有偏差 如果线程/进程的逻辑控制流在时间上重叠,那么就是并发的.我们可以将并发看成是一种os内核用来运行多个应用程序的实例,但是并发不仅在内核,在应用程序中的角色也很重要. 在应用级 ...

  2. CSAPP 读书笔记 - 2.31练习题

    根据等式(2-14) 假如w = 4 数值范围在-8 ~ 7之间 2^w = 16 x = 5, y = 4的情况下面 x + y = 9 >=2 ^(w-1)  属于第一种情况 sum = x ...

  3. CSAPP读书笔记--第八章 异常控制流

    第八章 异常控制流 2017-11-14 概述 控制转移序列叫做控制流.目前为止,我们学过两种改变控制流的方式: 1)跳转和分支: 2)调用和返回. 但是上面的方法只能控制程序本身,发生以下系统状态的 ...

  4. CSAPP 并发编程读书笔记

    CSAPP 并发编程笔记 并发和并行 并发:Concurrency,只要时间上重叠就算并发,可以是单处理器交替处理 并行:Parallel,属于并发的一种特殊情况(真子集),多核/多 CPU 同时处理 ...

  5. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  6. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  7. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

  8. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

  9. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  10. Web高级征程:《大型网站技术架构》读书笔记系列

    一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...

随机推荐

  1. Icarscan VCI is definitely the update variation of Start iDiag

    Start iCarScan is alternative of Super X431 iDiag, it’ll make your Android smartphone or tablet righ ...

  2. Linux centos7 下 svn 服务器搭建

    摘自:https://www.cnblogs.com/mymelon/p/5483215.html 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在 ...

  3. vue 组件之间 的通信

      组件之间通信: 同级组件之间通信:两个组件定义应用到同一个vue实例之下: <div id="webapp" class="box">    & ...

  4. Oracle之现有表上建新表、操作符、字符函数

    #PLSQL技术培训15页PPT利用现有表创建表(百度) 说明:做新操作前要对旧表备份  具体百度 语法: create table <new_table_name> as select ...

  5. P3804 【模板】后缀自动机

    P3804 [模板]后缀自动机 后缀自动机模板 详情可见luogu题解板块 #include<iostream> #include<cstdio> #include<cs ...

  6. Java axis2.jar包详解及缺少jar包错误分析

    Java  axis2.jar包详解及缺少jar包错误分析 一.最小开发jar集 axis2 开发最小jar包集: activation-1.1.jar axiom-api-1.2.13.jar ax ...

  7. 利用cgi编程实现web版man手册

    董老师前几天给我们布置了3道作业,第三道作业是cgi程序设计. 题目: web服务器cgi接口功能的实现 要求: 能调用cgi程序并得到返回结果: cgi程序能接受参数并得到返回结果: 使用两种或以上 ...

  8. mybatis generator 生成中文注释

    mybatis generator默认生成 的注释太奇葩了,完全不能拿到生产去用,不过幸亏提供了接口可以自己扩展.长话短说,要生成如下的domain, package com.demo.domain; ...

  9. 【题解】Luogu UVA1411 Ants

    原题传送门 博客里对二分图匹配的详细介绍 这道题是带权二分图匹配 用的是KM算法 我们要知道一个定理:要使线段没有相交,要使距离总和最小 我们先把任意一对白点.黑点的距离算一下 然后运用KM算法 因为 ...

  10. 《web前端设计基础——HTML5、CSS3、JavaScript》 张树明版 简答题简单整理

    web前端设计基础——HTML5.CSS3.JavaScript 简答题整理 第一章 (1)解释一下名词的含义:IP地址.URL.域名   iP定义了如何连入因特网,以及数据如何在主机间传输的标准. ...