随笔分类 - 【框架】Spring
摘要:
本文基于spring-boot-starter-data-jpa:2.7.17分析 SpringBoot 里集成Jpa自动配置是如何处理的 通过分析SpringBoot 自动配置核心源码可以找到JpaRepositoriesRegistrar类,这个类的父类是抽象类AbstractRepositor
阅读全文

摘要:Spring Data Spring Data 帮助我们避免了一些样板式代码,比如我们要定义一个接口,可以直接继承接口ElasticSearchRepository接口,这样Spring Data就帮助我们实现了操作documents基础的CURD方法,在ES里index类似RDBMS里table的
阅读全文
摘要:前言 Spring Bean生命周期是常见的面试题,也是日常开发中经常用到的技术点,在应用开发中,常常需要执行一些特殊的初始化工作,如建立数据库连接,打开网络连接,又比如在一些业务bean里,你想拿到Spring IOC容器,又或者是想拿到一些已经实例化的Bean。同时,在服务结束时,也有一些销毁销
阅读全文
摘要:什么是RestTemplate Synchronous client to perform HTTP requests, exposing a simple, template method API over underlying HTTP client libraries such as the
阅读全文
摘要:前言 年初面试时接触到一道面试题,在聊到SpringMVC时提到了SpringMVC的开发者为何要设计父子容器呢,又或者说是父子容器的设计有什么更实际的作用呢? 首先要理解对于一个web应用,当其部署在web容器上时,容器会为其提供一个全局上下文环境ServletContext,这个上下文环境将为后
阅读全文
摘要:前言 在使用rabbitmq时,我们可以通过消息持久化来解决服务器因异常崩溃而造成的消息丢失。除此之外,我们还会遇到一个问题,当消息生产者发消息发送出去后,消息到底有没有正确到达服务器呢?如果不进行特殊配置,默认情况下发送的消息是不会给生产者返回任何响应的,也就是默认情况下生产者并不知道消息是否正常
阅读全文
摘要:前言 该篇主要实现秒杀业务层,秒杀业务逻辑里主要包括暴露秒杀接口地址、实现秒杀业务逻辑。同时声明了三个业务类:Exposer、SeckillExecution、SeckillResult。 Exposer主要用来实现暴露接口时一个md5的加密,防止用户在客户端篡改数据。根据seckillid生成md
阅读全文
摘要:前言 该篇教程主要关注MyBatis实现底层的接口,把MyBatis交给Spring来托管。数据库连接池用的c3p0。数据库用的MySQL。主要有2个大类:秒杀商品的查询、秒杀明细的插入。 准备工作 1、数据库脚本。先初始化数据库,这里主要有2张表:seckill【秒杀商品表】、success_ki
阅读全文
摘要:前言 该篇主要实现客户端和服务的交互。在第一篇概况里我已经贴出了业务场景的交互图片。 客户端交互主要放在seckill.js里来实现。页面展现基于jsp+jstl来实现。 准备工作 1、配置web.xml。web.xml里配置springmvc前端控制器时需要把spring托管的3个xml全部加载。
阅读全文
摘要:前言 本教程使用SpringMVC+Spring+MyBatis+MySQL实现一个秒杀系统。教程素材来自慕课网视频教程【https://www.imooc.com/learn/631】。有感兴趣的可以直接看慕课网视频,老师讲的不错,整个系统设计思路也很清晰。本文是我学习Spring时的一手资料,这
阅读全文
摘要:前言 上篇主要从编程式事务和声明式事务注解的形式来了解了事务,而这篇我们针对AOP的方式来实现事务。先回顾下事务的基础知识事务的隔离级别和事务的传播行为。使用aop 配置事务时注意引用aspectjweaver,要不然程序启动起来就会报错,找不到相关类 事务隔离级别 隔离级别是指若干个并发的事务之间
阅读全文
摘要:前言 spring事务管理包含两种情况,编程式事务、声明式事务。而声明式事务又包括基于注解@Transactional和tx+aop的方式。那么本文先分析编程式注解事务和基于注解的声明式事务。 编程式事务管理使用TransactionTemplate或者PlatformTransactionMana
阅读全文
摘要:前言 上篇文章我觉的使用拦截器虽然方便快捷,但是在使用读串还是写串上你无法控制,我更希望我们像jdbc那样可以手动控制我使用读写串,那么这篇则在sqlsession的基础上实现读写分离, 这种方式则需要手动实现daoImpl。 项目结构 开发环境 SpringMVC+MyBatis+SQL Serv
阅读全文
摘要:前言 基于mybatis的AbstractRoutingDataSource和Interceptor用拦截器的方式实现读写分离,根据MappedStatement的boundsql,查询sql的select、insert、update、delete,根据起判断使用读写连接串。 开发环境 Spring
阅读全文
摘要:前言 使用SpringMVC4集成ehcache来缓存服务器数据。 开发环境 SpringMVC4、ehcache2.6、 项目结构 SpringMVC 集成ehcache 1、pom.xml 2、springmvc-servlet.xml 主要就是开启cache注解,同时导入spring cach
阅读全文
摘要:前言 前面整合完了SpringMVC+MyBatis,自然也少不了SpringMVC+Hibernate,严格来说Hibernate才是我们真正想要的ORM框架么。只记得最初学习hibernate时,又是config.xml又是hml.xml,各种的xml。 今天试着用SpringMVC4整合Hib
阅读全文
摘要:前言 以前用Asp.net MVC+uploadify上传文件,最近学习SpringMVC,所以就用SpringMVC+uploadify做个上传文件的demo。 刚开始用form表单的方式提交,在Controller Action中用@RequestParam MultipartFile file
阅读全文
摘要:前言 在基于SpringMVC+MyBatis的开发过程中,我们希望能看到自己手写SQL的执行情况,在开发阶段我们可以配置log4j在控制台里基于debug模式查看,那么上线后,在生产声我们想查看SQL的执行情况呢,这时候就该druid出场了,druid自带一些监控界面,可以监控SQL、监控Web、
阅读全文
摘要:前言 说起整合自然离不开ssm,我本身并不太喜欢ORM,尤其是MyBatis,把SQL语句写在xml里,尤其是大SQL,可读性不高,出错也不容易排查。 开发环境 idea2016、SpringMVC4、Mybatis3 项目结构 SSM整合 1、pom.xml 2、web.xml 3、applica
阅读全文
摘要:前言 没有美工的时代自然少不了对应的模板视图开发,jsp时代我们用起来也很爽,物极必反,项目大了,数据模型复杂了jsp则无法胜任。 开发环境 idea2016、jdk1.8、tomcat8.0.35 spring 4.3.6、velocity1.6、velocity-tools 2.0 Spring
阅读全文