随笔分类 - Spring
摘要:出于一些特殊需求,比如需要运行期修改三方依赖的配置(第三方无法配合,或者拒绝配合),需要一种方案可以在第三方类在其静态块加载属性前修改系统属性,使得支持运行期动态调整。 目前项目基于springboot2.x,但基于的原理1.x也可以支持。细节如下: springboot启动后,会驱动到Spring
阅读全文
摘要:Spring的属性绑定有很多种方式,比如: @Value+spel表达式; @ConfigurationProperties + spring-boot-configuration-processor依赖; 动态注册BeanPostProcessor,在定义的配置bean装配期间依赖Binder o
阅读全文
摘要:spring通过一个容器的概念,引入父子容器结构,实现bean的隔离&继承结构。 这种模式在很多场合都有类似的设计,比如Java的classloader机制,OSGi的bundle机制等。 这种机制的优势,在于将对象的作用范围进行约束。在复杂环境下,可以通过限定作用范围使得有冲突的内容和谐共存。 接
阅读全文
摘要:在springboot2.x集成log4j2时,始终无法关闭log4j2自身的日志输出。 已经做了如下配置: 在log4j2.xml的配置文件中,配置configuration的status属性为OFF; 确认系统所有地方无配置log4j2.debug; 如上配置都无法解决问题,只能从源码着手一探究
阅读全文
摘要:在引入Spring的Validated时,需要声明如下bean: @Beanpublic MethodValidationPostProcessor methodValidationPostProcessor() { return new MethodValidationPostProcessor(
阅读全文
摘要:部分跨域 部分跨域 @CrossOrigin注解支持类级别,方法级别添加。可以在controller类或者方法上添加,支持部分接口跨域。在两者上都添加时,方法级别的覆盖类级别的。 设置是否发送凭证,该值是在预请求的响应的“Access-Control-Max-Age”上设置的。该值决定在发起跨域请求
阅读全文
摘要:和tomcat远程调试近似的配置,主要的配置如下所示: 在启动springboot打包的jar时,将其加入参数中: 这样服务端就监听1009这个端口。 以idea示例: 配置一个remote,然后填写服务端的host&port就可以连上服务端发起远程调试。 如下所示:
阅读全文
摘要:SpringBoot中发起文件上传示例: 在这里文件上传文件的大小一般受2个地方的限制。 第一:运维一般会在nginx上对于request body 做个大小限制; 第二:springboot文件上传默认限制大小; 这里单说第二种限制如何处理。 有两种办法, 第一:在application.prop
阅读全文
摘要:在SpringBoot中,多环节的配置文件名基于application-{profile}.properties的格式,其中{profile}对应环境标识,比如: application-daily.properties 测试环境 application-gray.properties 灰度环境 a
阅读全文
摘要:使用mybatis springboot使用mybatis主要依赖 mybatis-spring-boot-starter 来实现。其提供了2中解决方案,一种是使用注解;另一种是简化后的传统的xml方式。 application.properties相关配置 在启动类上添加对mapper包的扫描@M
阅读全文
摘要:建立可执行的Jars和Wars bootJar用于构建可执行的Jar; bootWar用于构建可执行的war。 application.properties 不启动web服务器 不启动web服务器 spring.main.web-application-type=none 修改默认端口号 修改默认端
阅读全文
摘要:问题背景 项目使用SpringMVC4.1.X作为web框架,序列化框架选择Jackson。出于使用习惯以及性能考虑,将其切换到了fastjson。配置如下: 问题表现 如上配置后,一段时间后,线上出现故障。对接方反馈其请求成功,但是解析响应报文失败。故障表现如下: 如上所示,响应的Content-
阅读全文
摘要:说来惭愧,用SpringMVC做了2个web项目了,但是第一次纯属赶鸭子上架,连spring、jsp、servlet是啥都不知道的小家伙突然间要做一个web项目了。至今想来,还是很操蛋的。 不过用过之后,基础的web知识,springMVC+mybatis+mysql+dubbo的尝试就算有了。 第二次用就熟练多了,这次勇敢的用上了springSecurity,好吧,又被自己坑了。各种约定,各种名...
阅读全文