随笔分类 - spring
spring学习记录
摘要:springboot tomcat的配置选项大全 server. Port = xxxx server. Address = server. contextPath = server. displayName = server. servletPath = server. contextParame
阅读全文
摘要:把传统的web项目迁移到SpringBoot中,少不了web.xml中的context param、Servlet、Filter和Listener等定义的迁移。 对于Servlet、Filter和Listener相关定义转换相对来说比较明确: Servlet定义的迁移 一般servlet的迁移 Fa
阅读全文
摘要:Spring中EmptyResultDataAccessException异常产生的原理及处理方法 Spring中使用JdbcTemplate的queryForObject方法,当查不到数据时会抛出如下异常: 使用Debug进行调试时,发现是在DataAccessUtils的requiredSing
阅读全文
摘要:Spring boot 内置tomcat禁止不安全HTTP方法 在tomcat的web.xml中可以配置如下内容,让tomcat禁止不安全的HTTP方法 Spring boot使用内置tomcat,没有web.xml配置文件,可以通过以下配置进行,简单来说就是要注入到Spring容器中
阅读全文
摘要:编写LUA脚本 该脚本功能:先检查redis中某个key的值是否与期望的值V1一致,如果一致则将其修改为新的值V2并返回true,否则返回false。其实就是CAS。 注意,lua脚本中的变量都要是local 的,不可以是全局变量。否则会报错。详见 http://doc.redisfans.com/
阅读全文
摘要:在微服务架构中,存在着那么多的服务单元,若一个单元出现故障,就会因依赖关系形成故障蔓延,最终导致整个系统的瘫痪,这样的架构相较传统架构就更加的不稳定。为了解决这样的问题,因此产生了断路器模式。 什么是断路器 断路器模式源于Martin Fowler的Circuit Breaker一文。“断路器”本身
阅读全文
摘要:flyway是一个开源的数据库迁移工具。类似于数据库的版本控制工具。flyway的数据库修改文件默认放在resource下的db.migration文件夹中,以V{version_number}__{description}的格式命名。各脚本的执行信息会在数据库的schema_version表中做详
阅读全文
摘要:前面的章节中,我们介绍了使用@Async注解来实现异步调用,但是,对于这些异步执行的控制是我们保障自身应用健康的基本技能。本文我们就来学习一下,如果通过自定义线程池的方式来控制异步调用的并发。 定义线程池 在springboot主类中定义一个线程池 使用线程池 在定义了线程池之后,我们如何让异步调用
阅读全文
摘要:准备工作 1.自定义appender的实现 log4j提供的输出器实现自Appender接口,要自定义appender输出到MongoDB,只需要继承AppenderSkeleton类,并实现几个方法即可完成。 在pom.xml中引入下面依赖: 实现MongoAppender 配置log4j.pro
阅读全文
摘要:之前介绍了在《Spring boot中使用log4j》,仅通过log4j.properties对日志级别进行控制,对于需要多环境部署的环境不是很方便,可能我们在开发环境大部分模块需要采用DEBUG级别,在测试环境可能需要小部分采用DEBUG级别,而在生产环境时我们又希望采用INFO级别。这个时候,我
阅读全文
摘要:我们知道,Spring Boot中默认日志工具为logback,但是对于习惯了log4j的开发者,Spring Boot依然可以很好的支持,只是需要做一些小小的配置功能。Spring Boot使用log4j只需要一下几步 引入log4j依赖 在创建Spring Boot工程时,我们引入了spring
阅读全文
摘要:在单数据源的情况下,Spring Boot的配置非常简单,只需要在application.properties文件中配置连接参数即可。但是往往随着业务量发展,我们通常会进行数据库拆分或是引入其他数据库,从而我们需要配置多个数据源,下面基于之前的JdbcTemplate和Spring-data-jpa
阅读全文
摘要:我们在做Web应用的时候,请求处理过程中发生错误是非常常见的情况。Spring Boot提供了一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面用来展示异常内容。springboot默认的错误页面效果如下: 虽然,Spring Boot中实现了默认
阅读全文
摘要:引入依赖 Spring Boot提供的数据访问框架Spring Data Redis基于Jedis。可以通过引入spring-boot-starter-redis来配置依赖关系。 参数配置 在application.properties中加入Redis服务端的相关配置,具体说明如下: 其中sprin
阅读全文
摘要:SpringBoot内部使用Commons Logging来记录日志,但是默认也提供了对常用日志组件的支持,如:Log4j,Logback等。每种Logger都可以通过配置使用控制台或者文件输出日志内容。 日志格式化 默认的日志输出如下: 输出内容元素具体如下: 时间日期-精确到毫秒 日志级别-ER
阅读全文
摘要:在Spring Boot中,我们只需要通过使用@Async注解就能简单的将原来的同步函数变为异步函数,为了让@Async注解能够生效,还需要在Spring Boot的主程序中配置@EnableAsync。实例如下: 创建Task类,Task里面包含三个方法,分别是:doTaskOne,doTaskT
阅读全文
摘要:我们在编写Spring Boot应用中经常会遇到这样的场景,比如:我需要定时地发送一些短信、邮件之类的操作,也可能会定时地检查和监控一些标志、参数等。 创建定时任务 在Spring Boot中编写定时任务是非常简单的事,下面通过实例介绍如何在Spring Boot中创建定时任务,实现每过5秒输出一下
阅读全文
摘要:本文介绍在Spring Boot基础下配置数据源和通过JdbcTemplate编写数据访问的示例。 数据源配置 在我们访问数据库的时候,需要先配置一个数据源,下面分别介绍一下几种不同的数据库配置方式。 首先,为了连接数据库需要引入jdbc支持,在pom.xml中引入如下配置: 嵌入式数据库支持 嵌入
阅读全文
摘要:在开发rest api的时候,为了减少与其他团队平时开发期间的频繁沟通成本,传统做法我们会创建一份RESTful API文档来记录所有接口细节,然而这样的做法有以下几个问题: 1.由于接口众多,并且细节复杂(需要考虑不同的HTTP请求类型、HTTP头部信息、HTTP请求内容等),高质量地创建这份文档
阅读全文
摘要:从Spring3.1开始,Spring提供了两个MultipartResolver的实现用于处理multipart请求,分别是:CommonsMultipartResolver和StandardServletMultipartResolver。CommonsMultipartResolver使用co
阅读全文