SpringMVC配置的替代方案 自定义DispatherServlet配置 我们之前在SpittrWebAppInitializer所编写的三个方法仅仅是必须要重载的abstract方法.但还有更多的方法可以进行重载,从而实现额外的配置. 例如customizeRegistration().在AbstractAnnotationConfigDispatcherServletInitializer将DispatcherServlet主车道Servlet容器后,就会调用该方法,并将Servlet注…
Spring实战第六章学习笔记----渲染Web视图 理解视图解析 在之前所编写的控制器方法都没有直接产生浏览器所需的HTML.这些方法只是将一些数据传入到模型中然后再将模型传递给一个用来渲染的视图.尽管我们编写了几个JSP视图但控制器不关心这些. 将控制器请求处理的逻辑和视图中的渲染实现解耦是SpringMVC的一个重要特性.而控制器只通过逻辑视图名来了解视图,这时就需要Spring视图解析器了. SpringMVC定义了一个名为ViewResolver的接口,大致如下所示: public i…
Spring实战第五章学习笔记----构建Spring Web应用程序 Spring MVC基于模型-视图-控制器(Model-View-Controller)模式实现,它能够构建像Spring框架那样灵活和松耦合的Web应用程序. Spring MVC起步 跟踪Spring MVC的请求…
Spring实战第四章学习笔记----面向切面的Spring 什么是面向切面的编程 我们把影响应用多处的功能描述为横切关注点.比如安全就是一个横切关注点,应用中许多方法都会涉及安全规则.而切面可以帮我们模块化横切关注点.而当我们要重用通用功能时,最常见的面向编程技术是继承或委托.但当整个应用都用相同的基类继承会导致整个对象体系脆弱,而委托会使调用变复杂.切面则提供了取代继承和委托的另一种方案.在使用面向切面编程时,我们仍然在一个地方定义通用功能,但是可以通过声明的方式定义这个功能要以何种方式在何…
Spring Cloud(七):配置中心(Git 版与动态刷新)[Finchley 版]  发表于 2018-04-19 |  更新于 2018-04-24 |  Spring Cloud Config 是 Spring Cloud 团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分.其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息.加密 / 解密信息等访问接口:而客户端则是微…
RxJava2实战---第七章 合并操作符和连接操作符 RxJava的合并操作符: startWith():在数据序列的开头增加一项数据. merge:将多个Observable合并为一个. mergeDelayError():合并多个Observable,让没有错误的Observable都完成后再发射错误通知. zip():使用一个函数组合多个Observable发射的数据集合,然后再发射这个结果. combineLatest():当两个Observable中的任何一个发射一个数据时,通知一个…
学习资料:<Activiti实战> 第七章  Spring容器集成应用实例(五)普通表单 第六章中介绍了动态表单.外置表单.这里讲解第三种表单:普通表单. 普通表单的特点: 把表单内容写在表现层(JSP.JSF.HTML)文件中 一个用户任务对应一个页面 业务数据和流程数据分离 适用于业务相对固定但复杂.流程相对固定但表现层变化多的情况 因为普通表单中,业务数据和流程数据是分离的,所以存在统一事务管理的问题.要保证Activiti和业务数据操作在同一个事务中执行.前面集成Spring时的事务管…
学习资料:<Activiti实战> 第七章 Activiti与容器集成 本章讲解activiti-spring可以做的事情,如何与现有系统集成,包含bean的注入.统一事务管理等. 7.1 流程引擎工厂 7.1.1 ProcessEngine 创建processEngine的方法有三种: 通过配置文件 测试中通过ActivitiRule 通过ProcessEngines类 7.1.2 ProcessEngineFactory 与spring集成的目的有两个: 通过spring统一管理Proce…
上一章节,我们讲解了服务网关zuul,本章节我们从git和本地两种存储配置信息的方式来讲解springcloud的分布式配置中心-Spring Cloud Config. 一.Spring Cloud Config简介: Spring Cloud Config项目是一个解决分布式系统的配置管理方案.它包含了Client和Server两个部分,server提供配置文件的存储.以接口的形式将配置文件的内容提供出去,client通过接口获取数据.并依据此数据初始化自己的应用. 二.新建springcl…
一.概述 RememberMe 是指用户在网站上能够在 Session 之间记住登录用户的身份的凭证,通俗的来说就是用户登陆成功认证一次之后在制定的一定时间内可以不用再输入用户名和密码进行自动登录.这个过程中通过服务端发送一个 cookie 给客户端浏览器保存,下次浏览器再访问服务端时服务端能够自动检测客户端的 cookie,根据 cookie 值触发自动登录操作.   Spring Security中的 Remember-Me 功能通常有两种实现方式. 一种是简单的使用加密来保证基于 cook…
1.Spring中bean 的多种作用域 单例(Singleton):整个应用中只创建一个bean 的实例,Spring默认创建单例的bean: 原型(Prototype):每次注入or通过Spring应用上下文获取时,创建一个新的bean实例: 会话(Session):在web应用中,为每个会话创建一个bean实例,例如用户购物车的bean: 请求(Request):在web应用中,为每个请求创建一个bean实例: 2.设置会话(Session)作用域 @Component @Scope{ v…
利用Direct3D绘制几何体(续) 学习目标 学会一种无须每帧都要刷新命令队列的渲染流程,由此来优化程序的性能 了解另外两种跟签名参数类型:根描述符和根常量 探索如何在程序中生成和绘制常见的几何体,如栅格.圆台和球体 研究如何通过动态顶点缓冲区来更新CPU中的顶点数据,并且向GPU中上传顶点新的位置信息 7.6. 细探根签名 在前面我们已经介绍过跟签名,它定义了在绘制调用之前,需要绑定到渲染流水线上的资源,以及这些资源如何映射到着色器的输入寄存器中. 7.6.1 .根参数 根签名是由一系列根参…
利用Direct3D绘制几何体(续) 学习目标 学会一种无须每帧都要刷新命令队列的渲染流程,以此来优化性能 了解另外两种根签名参数类型:根常量和根描述符 探索如何在程序中生成和绘制常见的几何体:如栅格.圆台和球体 研究怎样通过动态顶点缓冲区来更新CPU中的顶点数据,并且向GPU上传顶点的新的位置信息 7.1 帧资源 首先先回顾一下CPU和GPU并行工作的情形,CPU构建并提交命令列表,同时还需要执行一些必要的工作,而GPU则负责处理命令队列中的各种命令.我们的目标则是使CPU和GPU持续工作,从…
Spring Cloud(九):配置中心(消息总线)[Finchley 版]  发表于 2018-04-19 |  更新于 2018-05-07 |  我们在 Spring Cloud(七):配置中心(Git.Refresh) 中讲到,如果需要客户端获取到最新的配置信息需要执行refresh,我们可以利用 Webhook 的机制每次提交代码发送请求来刷新客户端,当客户端越来越多的时候,需要每个客户端都执行一遍,这种方案就不太适合了.使用 Spring Cloud Bus 可以完美解决这一问题.…
本章节,我们讲解springcloud重要组件:微服务网关Zuul.如果有同学从第一章看到本章的,会发现我们已经讲解了大部分微服务常用的基本组件. 已经讲解过的: 一起来学Spring Cloud | 第一章 :如何搭建一个多模块的springcloud项目 一起来学Spring Cloud | 第二章:服务注册和发现组件 (Eureka) 一起来学Spring Cloud | 第三章:服务消费者 (负载均衡Ribbon) 一起来学Spring Cloud | 第四章:服务消费者 ( Feign…
Spring Cloud(八):配置中心(服务化与高可用)[Finchley 版]  发表于 2018-04-19 |  更新于 2018-04-26 |  本文接之前的<Spring Cloud(七):配置中心(Git.Refresh)>,继续来说说 Spring Cloud Config 的使用. 先来回顾一下,在前文中我们完成了什么: 构建了 config-server,连接到 Git 仓库 在 Git 上创建了一个 config-repo 目录,用来存储配置信息 构建了 config-…
之前一直在看<Spring实战>第三版,看到第五章时发现很多东西已经过时被废弃了,于是现在开始读<Spring实战>第四版了,章节安排与之前不同了,里面应用的应该是最新的技术. 本章中,将会接触到Spring MVC基础,以及如何编写控制器来处理web请求,如何通明地绑定请求参数到业务对象上,同时还可以提供数据校验和错误处理的功能. Spring MVC初探 跟踪Spring MVC请求 请求会由DispatcherServlet分配给控制器(根据处理器映射来确定),在控制器完成处…
已经想不起来上一次买技术相关的书是什么时候了,一直以来都习惯性的下载一份电子档看看.显然,如果不是基于强烈的需求或强大的动力鞭策下,大部分的书籍也都只是蜻蜓点水,浮光掠影. 就像有位同事说的一样,有些书没有真真切切的经历过,你去看,看了就是看了,只是没有留下多少印象.我回头仔细想了想,大概就是这样,好比你去看设计模式相关的书籍,了解到了适配器模式,但是还是不够深刻.比如说某天你去面试的时候别人会问你,"你了解过适配器模式么,你有过这个模式的开发经历么,你能否画出你使用适配器模式的UML图...&…
文章目录 1. 环境依赖 2. 状态和事件 2.1. 状态枚举 2.2. 事件枚举 3. 状态机配置4. 状态监听器 3.1. 初始化状态机状态 3.2. 初始化状态迁移事件 5. 总结 6. 源代码 Spring StateMachine 让状态机结构更加层次化,可以帮助开发者简化状态机的开发过程. 之前,我们使用二维数组实现状态机机制,现在,我们来用 Spring StateMachine 进行改造. 环境依赖 修改 POM 文件,添加 spring-statemachine-core 依赖…
文章目录 1. Spring Boot 集成 Java Mail 2. 单元测试 3. 源代码 Spring 对 Java Mail 有很好的支持.因此,Spring Boot 也提供了自动配置的支持. Spring Boot 集成 Java Mail Spring Boot 中使用 Java Mail 非常简单方便.修改 pom 文件,添加依赖. <dependency> <groupId>org.springframework.boot</groupId> <…
文章目录 1. FreeMaker 代替 JSP 作为页面渲染 2. 生成静态文件 3. 扩展阅读 4. 源代码 Spring Boot 提供了很多模板引擎的支持,例如 FreeMarker.Thymeleaf.这篇,我们看下 Spring Boot 如何集成和使用 FreeMarker. Spring Boot 中使用 FreeMarker 模板非常简单方便.如果想要使用FreeMarker 模板引擎,首先,修改 POM 文件,添加依赖. FreeMaker 代替 JSP 作为页面渲染 <de…
Spring实战第二章学习笔记----装配Bean 创建应用对象之间协作关系的行为通常称为装配(wiring).这也是依赖注入(DI)的本质. Spring配置的可选方案 当描述bean如何被装配时,Spring具有非常大的灵活性,它提供了三种主要的装配机制: 在XML中进行显示装配. 在Java中进行显示装配. 隐式的bean发现机制和自动装配. 在这本书中作者建议尽可能使用自动配置的机制.显示配置越少越好.而当你必须要显示配置bean时(比如有些代码不是你维护的,而你需要为这些代码装配bea…
Spring实战第一章学习笔记 Java开发的简化 为了降低Java开发的复杂性,Spring采取了以下四种策略: 基于POJO的轻量级和最小侵入性编程: 通过依赖注入和面向接口实现松耦合: 基于切面和惯例进行声明式编程: 通过切面和模板减少样板式代码: 1. 激发POJO的潜能 POJO简单的Java对象,实际上就是普通JavaBean. Spring不会因为自身API而弄乱了你的应用代码,它不会让你实现Spring规范的接口或继承Spring规范的类,所以在Sora构建的类中,它的类没有使用…
Spring Boot (七): Mybatis极简配置 1. 前言 ORM 框架的目的是简化编程中的数据库操作,经过这么多年的发展,基本上活到现在的就剩下两家了,一个是宣称可以不用写 SQL 的 Hibernate ,一个是对 SQL 非常友好的 Mybaties ,,两者各有特点,在企业级系统开发中可以根据需求灵活使用.发现一个有趣的现象:传统企业大都喜欢使用 Hibernate ,互联网行业通常使用 Mybatis . Hibernate 特点就是所有的 SQL 都用 Java 代码来生成…
用过 Spring Boot 的小伙伴都知道,我们只需要在项目中引入 spring-boot-starter-web 依赖,SpringMVC 的一整套东西就会自动给我们配置好,但是,真实的项目环境比较复杂,系统自带的配置不一定满足我们的需求,往往我们还需要结合实际情况自定义配置. 自定义配置就有讲究了,由于 Spring Boot 的版本变迁,加上这一块本身就有几个不同写法,很多小伙伴在这里容易搞混,今天松哥就来和大家说一说这个问题. 概览 首先我们需要明确,跟自定义 SpringMVC 相关…
Vue实战狗尾草博客后台管理平台第七章 本章内容为借助模块化来阐述Vuex的进阶使用. 在复杂项目的架构中,对于数据的处理是一个非常头疼的问题.处理不当,不仅对维护增加相当的工作负担,也给开发增加巨大的压力. 在大量的实战开发过程中,狗尾草总结出来的较为友好的方式是 使用一个单独的数据管理库去管理数据. 这样不会给页面增加额外的负担.且API的调用也属于数据处理/获取的部分.因此也放在数据管理下统一管理 注:本章节内容与狗尾草博客管理平台没有任何关系,仅作为Vuex的进阶使用来分享 对模块化的简…
前言 spring Boot中引入了自动配置,让开发者利用起来更加的简便.快捷,本篇讲利用RabbitMQ的自动配置为例讲分析下Spring Boot中的自动配置原理. 在上一篇末尾讲述了Spring Boot 默认情况下会为ConnectionFactory.RabbitTemplate等bean,在前面的文章中也讲到嵌入的Tomcat默认配置为8080端口 这些都属于Spring Boot自动配置的范畴,当然其自动配置相当多. EnableAutoConfiguration注解 在创建App…
文章目录 1. Spring Boot 集成异步任务 2. 单发服务模式 3. 请求应答模式 4. 源代码 Spring 对异步任务具有很好的支持.这篇文章,我们透过 Spring Boot 来讲解下单发服务模式和请求应答模式. Spring Boot 集成异步任务 在 Spring Boot 中使用 @EnableAsync 开启异步支持. @Configuration @EnableAsync public class AsyncConfig { } 现在,我们在 Spring Boot 中…
今天学习<Spring实战>第4章<面向切面的Spring>,根据4.3.3小节写出如下切面类: package proxy; import java.util.HashMap; import java.util.Map; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.…
相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础软件的安装 CentOS6安装各种大数据软件 第四章:Hadoop分布式集群配置 CentOS6安装各种大数据软件 第五章:Kafka集群的配置 CentOS6安装各种大数据软件 第六章:HBase分布式集群的配置 CentOS6安装各种大数据软件 第七章:Flume安装与配置 CentOS6安装各…