
spring
文章平均质量分 84
木鱼-
过一天就要进步一点,而且不知道也会更多,还有每天都会忘记一点。所以每天还得做功课
展开
-
@TransactionalEventListener的使用和实现原理
很明显,这里的TransactionSynchronization接口只是抽象了一些行为,用于事务事件发生时触发,这些行为在Spring事务中提供了内在支持,即在相应的事务事件时,其会获取当前所有注册的TransactionSynchronization对象,然后调用其相应的方法。平时我们在完成某些数据的入库后,发布了一个异步事件,此时使用的是@EventListener,然后在这个事件中,又去对刚才入库的数据进行查询,从而完成后续的操作。等时候才去进行Event的处理,来达到事务同步的目的。转载 2025-02-09 18:00:19 · 139 阅读 · 0 评论 -
SpringIoc 容器之 Aware
Aware 是 Spring 提供的一个标记超接口,指示 bean 有资格通过回调样式的方法由 Spring 容器通知特定的框架对象,以获取到容器中特有对象的实例的方法之一。实际的方法签名由各个子接口确定,但通常只包含一个接受单个参数的 void 返回方法。转载 2024-06-24 16:22:01 · 77 阅读 · 0 评论 -
spring 约定优于配置 spring boot约定大于配置
就会自动的帮我们导入 SpringMVC 的相关依赖(包括 Json 支持的 Jackson 和数据校验的 Hibernate Validator)和一个内置的 Tomcat 容器,这使得在开发阶段可以直接通过 main 方法或是 JAR 包独立运行一个 WEB 项目。当你觉得不合适的时候,可以用更少的改动,满足你的需要。约定优于配置,也有很多人解读为:约定大于配置,约定好于配置,习惯大于配置等。约定优于配置也就是说:系统,类库,框架应该提供有合理的默认值,而非要求提供不必要的配置。原创 2024-05-15 14:00:36 · 590 阅读 · 0 评论 -
Spring Aware接口执行时机源码深度解读
Spring中有这样一种标记接口的存在Aware,只要是spring管理的bean实现了Aware接口,那么spring就会在bean创建的某个时机将相应的资源注入到该spring bean中,比如ApplicationContextAware, 会将spring 应用上下文ApplicationContext自动注入到bean中。转载 2024-04-25 17:14:49 · 186 阅读 · 0 评论 -
ResourceBundleMessageSource 和 ReloadableResourceBundleMessageSource的区别
3).小结:ResourceBundleMessageSource从classloader中加载资源文件,可以找到,ReloadableResourceBundleMessageSource加载时,默认使用DefaultResourceLoader,他会先判断资源path是否带有classpath:前缀,如果有,用 ClassPathResource去加载资源文件,如果没有试着用文件协议的url去访问,再没有就在contextPath即WEB-INF下查找。原创 2024-04-17 15:15:50 · 605 阅读 · 0 评论 -
Spring Bean 注册顺序优先级总结
@Bean 方法参数注入@Configurationpublic class MytestConfigure { @Bean public BeanA beanA(BeanB demoB){ System.out.println("bean A init"); return new BeanA(); } //注参数List也一样,同上。 @Bean public BeanA2 beanA2(List beanB转载 2024-03-05 15:51:04 · 1026 阅读 · 0 评论 -
spring事务方法调用不生效的场景
日常开发中,我们经常使用到spring事务。最近一位朋友去美团面试,被问了这么一道面试题:Spring 事务在哪几种情况下会不生效?今天田螺哥跟大家聊聊,spring事务不生效的15种场景。原创 2024-02-29 15:42:06 · 1237 阅读 · 0 评论 -
validation-api与hibernate-validator;@Validated与@Valid工作原理
Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR-303规范),配合BindingResult可以直接提供参数验证结果。@Validated:提供了一个分组功能,可以在入参验证时,根据不同的分组采用不同的验证机制,这个网上也有资料,不详述。在检验Controller的入参是否符合规范时,使用@Validated或者@Valid在基本验证功能上没有太多区别。原创 2023-12-15 14:37:15 · 1439 阅读 · 0 评论 -
‘parent.relativePath‘ points at com.xxx instead of org.springframework.boot:spring-boot-starter的快速解决
</parent>加入 <relativePath/> 即可解决报错。在<parent>转载 2023-11-09 10:08:56 · 1047 阅读 · 1 评论 -
Spring探秘,妙用BeanPostProcessor
Spring探秘,妙用BeanPostProcessor转载 2023-03-03 14:25:22 · 902 阅读 · 0 评论 -
使用spring validation完成数据后端校验-自定义校验的注解-判断是否为空
使用spring validation完成数据后端校验转载 2022-07-26 14:42:39 · 2140 阅读 · 0 评论 -
springboot的druid监控配置
druid的配置文档链接:https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFilter本文的在这要说明spring中配置类写法的配置Druid监控:原创 2021-11-30 14:34:04 · 596 阅读 · 0 评论 -
spring @Configuration 注解配置
环境准备操作系统信息系统系统:centos7.2三台服务器:10.211.55.11/12/13安装包:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.rpmhttps://artifacts.elastic.co/downloads/kibana/kibana-6.3.2-x86_64.rpmhttps://artifacts.elastic.co/downloads/logsta原创 2021-06-21 10:15:35 · 387 阅读 · 0 评论 -
Spring Integration Testing(集成测试)- @IntegrationTest
先上代码如:@DirtiesContext(classMode = AFTER_EACH_TEST_METHOD)@WebAppConfiguration@IntegrationTest@SpringApplicationConfiguration(classes = {RibbonDiscoveryFilterTest.Application.class})@RunWith(SpringJUnit4ClassRunner.class)public class RibbonDiscoveryF转载 2021-06-18 09:37:55 · 1485 阅读 · 0 评论 -
HandlerMethodArgumentResolver完美解决 springmvc注入参数多传报错
作为一个后端开发,能友好兼容前端参数传入错误等问题,在前端发布不小心多传一个参数导致系统错误的问题,一个广告系统是零容忍的,所以为了不犯错误,后端接收参数必须摒弃spring 的自动注入@RequestBody,1、那么我们就要自定义解析器重写HandlerMethodArgumentResolver的两个方法package com.qlkj.jgt.flow.app.resolver;import com.alibaba.fastjson.JSONObject;import com.f转载 2021-03-16 14:42:12 · 827 阅读 · 0 评论 -
Spring Cloud Gateway来开发了API网关,REST API接口返回JSON超过256K时报错问题
查看Spring Core 5.1.14.RELEASE的AbstractDataBufferDecoder类,发现以下说明:设置maxInMemorySize值的说明原因:/***配置可随时缓冲的字节数限制*需要聚合输入流。这可能是*解码为单个{@code DataBuffer},*{@链接java.nio.ByteBuffer文件ByteBuffer},{@code byte[]},*{@链接org.springframework.core.io.资源资源}、{@code S原创 2021-02-24 16:40:28 · 2225 阅读 · 1 评论 -
Spring-AOP SpringBoot自动配置和启动Spring AOP
SpringBoot会使用@Conditional*注解来进行判断是否需要自动启动AOP,如果classpath下有spring-aop的 jar 和有EnableAspectJAutoProxy类等,它就会自动开启spring-aop。并且此自动配置类还能通过SpringBoot的配置文件application.properties中配置的AOP相关属性进行选择,使用哪一种代理模式,非常智能。package org.springframework.boot.auto...转载 2020-10-16 10:26:18 · 2487 阅读 · 0 评论 -
Spring Cloud实战小贴士:turbine如何聚合设置了context-path的hystrix数据
之前在spring for all社区看到这样一个问题:当actuator端点设置了context-path之后,turbine如何聚合数据?首先,我们要知道actuator端点设置了context-path是什么意思?也就是说,此时spring boot actuator的端点都有了一个前缀,比如: management.context-path=/xxx 如果设置了上面的参数,那个对于收集hystrix数据的端点将变为:/xxx/hystrix.stream,如果我们还是拿上一转载 2020-10-09 11:01:53 · 249 阅读 · 0 评论 -
Spring源码分析之IOC循环依赖详解
public class DefaultSingletonBeanRegistry extends SimpleAliasRegistry implements SingletonBeanRegistry {...protected Object getSingleton(String beanName, boolean allowEarlyReference) { //首先检查一级缓存中是否存在 Object singletonObject = this.singletonObjects....原创 2020-09-25 09:23:33 · 189 阅读 · 0 评论 -
Spring的任务执行器(TaskExecutor)和任务调度器(TaskScheduler)
一、任务执行和调度(Task Execution and Scheduling)1、介绍 Spring框架使用TaskExecutor和TaskScheduler接口分别为异步执行和任务调度提供抽象。Spring还提供了那些接口的实现,这些接口在应用服务器环境中支持线程池或委托给CommonJ。最终,在公共接口背后使用这些实现抽象出了Java SE 5、Java SE 6和Java EE环境之间的差异。 Spring还提供集成类,用于支持使用计时器(JDK sin...转载 2020-09-09 09:17:35 · 19320 阅读 · 1 评论 -
java NamedParameterJdbcTemplate和JdbcTemplate两者的关系和区别是什么?
Jdbctemplate是java最先出现的最底层的封装。namedParameterJdbcTemplate是对Jdbctemplat的在封装。jdbcTemplate提供的主要方法:execute:用于执行任何Sql语句,一般用于DDL;Update:用于执行增、改、删等语句;batchUpdate:用于执行批处理相关语句;Query、queryForXXX:用于执行查询相关语句;call方法:用于执行存储过程、函数相关语句。在jdbcTemplate中,Sql参数使用占位符转载 2020-06-24 09:52:37 · 905 阅读 · 0 评论 -
在应用层通过spring特性解决数据库读写分离
https://www.iteye.com/blog/jinnianshilongnian-1720618如何配置mysql数据库的主从?单机配置mysql主从:http://my.oschina.net/god/blog/496常见的解决数据库读写分离有两种方案1、应用层http://neoremind.net/2011/06/spring实现数据库读写分离目前的一些解决方案需要在程序中手动指定数据源,比较麻烦,后边我会通过AOP思想来解决这个问题。2、...转载 2020-05-27 10:26:59 · 192 阅读 · 0 评论 -
Spring钩子方法和钩子接口的使用详解
https://www.sohu.com/a/166804449_714863前言SpringFramework其实具有很高的扩展性,只是很少人喜欢挖掘那些扩展点,而且官方的Refrence也很少提到那些Hook类或Hook接口,至于是不是Spring官方有意为之就不得而知。目前看到的Spring的一些对外开放的扩展点、Hook接口或者Hook类,如果有什么错误,希望多多交流指正,一切...转载 2020-04-24 13:52:42 · 588 阅读 · 0 评论 -
spring事件广播机制
https://blog.youkuaiyun.com/liereli/article/details/79928024打个比方,当我们和其他公司进行业务接口对接时,我们这边需要保存或者修改某些数据,但是保存和修改这些数据对整个流程没有太大的影响,这个时候我们应该怎么做呢?是的,我们要考虑异步去保存或者修改数据,但怎么去异步保存数据呢?这个时候我们就可以使用事件广播来做这个操作看过spring源码的大...转载 2020-04-24 09:42:23 · 908 阅读 · 0 评论 -
Spring 钩子之BeanFactoryPostProcessor和BeanPostProcessor的源码学习
https://www.jianshu.com/p/a90a3e617ba6BeanFactoryPostProcessor和BeanPostProcessor这两个接口都是初始化bean时对外暴露的入口之一,和Aware类似(PS:关于spring的hook可以看看Spring钩子方法和钩子接口的使用详解讲的蛮详细)本文也主要是学习具体的钩子的细节,以便于实际开发中我们能有效率,例如如何在s...转载 2020-04-22 11:06:53 · 200 阅读 · 0 评论 -
springboot整合docker部署实现两种构建Docker镜像方式
https://www.jb51.net/article/158870.htmDocker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。docker的应用场景web应用的自动化打包和发布;自动化测试...转载 2020-04-14 16:06:08 · 1257 阅读 · 0 评论 -
spring中BeanPostProcessor之一:InstantiationAwareBeanPostProcessor
https://www.cnblogs.com/teach/p/12639363.htmlspring中BeanPostProcessor之一:InstantiationAwareBeanPostProcessor(01)在spring中beanPostProcessor绝对是开天辟地的产物,给了程序员很多自主权,beanPostProcessor即常说的bean后置处理器。一、概览...转载 2020-04-06 16:01:02 · 929 阅读 · 0 评论 -
Spring Boot处理全局统一异常的两种方法与区别
https://www.jb51.net/article/162919.htm前言在后端发生异常或者是请求出错时,前端通常显示如下Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.Fri Jun 07 15:...转载 2020-03-31 10:26:21 · 269 阅读 · 0 评论 -
浅析servlet的ServletContextListener与Spring的ApplicationListner
https://www.it610.com/article/4956002.htm1.简单剖析JSP中session、appliactioon创建过程在JSP中使用的session、application、pageContext的创建其实是在Servlet容器中实现的,JSP页面被在Servlet容器中会被转换为HttpServlet的一个子类(以tomcat为例,转换后的文件存储...转载 2020-02-27 11:27:51 · 1567 阅读 · 0 评论 -
Spring中引入增强(IntroductionAdvice)的底层实现原理
作为一名程序员,舆论一直在告诫我,要有自己的博客,要记录并懂得和别人分享你的技术心得。然而,遗憾的是,每当我有所收获,并为之兴奋,准备下笔要和别人分享之时,我蓦然发现,已经有N位程序员同仁,在N年前,就已经记录过并分享过无数多次该技术要点了。此时,我又何必多此一举的弄一个N+1呢?多年过去,依旧是白纸一张。不过,在等待多年后,我已经按耐不住了,我的机会终于来了,这一次,无论外面如何春暖花开,如...转载 2020-01-17 13:43:35 · 404 阅读 · 0 评论 -
Spring Factories
该文章转载自:https://blog.youkuaiyun.com/lvoyee/article/details/82017057Spring Boot中有一种非常解耦的扩展机制:Spring Factories。这种扩展机制实际上是仿照Java中的SPI扩展机制来实现的。什么是 SPI机制SPI的全名为Service Provider Interface.大多数开发人员可能不熟悉,因为这个是针...转载 2019-12-17 09:48:25 · 242 阅读 · 0 评论 -
Spring异步任务处理,@Async的配置和使用
这个注解用于标注某个方法或某个类里面的所有方法都是需要异步处理的。被注解的方法被调用的时候,会在新线程中执行,而调用它的方法会在原来的线程中执行。这样可以避免阻塞、以及保证任务的实时性。适用于处理log、发送邮件、短信……等。注解的应用范围:类:表示这个类中的所有方法都是异步的方法:表示这个方法是异步的,如果类也注解了,则以这个方法的注解为准相关的配置:<task:annota...转载 2019-12-16 14:23:10 · 218 阅读 · 0 评论 -
Spring Boot gradle
最近有写一个电子订单商务网站,使用JAVA8,SPRING,ANGULARJS对项目使用的技术和大家分享。第一次写博客,哪有不对需要改正的请联系改正。因为是项目是我给别人做的无法提供源码见谅,我尽最大努力让大家能看懂。首先从项目的构建开始,我采用的gradle构建项目,使用的版本是2.4。开发环境用的IDEA 14,项目数据库使用的是SQL SERVER。Spring Boot转载 2016-11-30 17:36:07 · 1484 阅读 · 0 评论 -
Spring注解详解
概述注释配置相对于 XML 配置具有很多的优势:它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO 的属性名、类型等信息,如果关系表字段和 PO 属性名、类型都一致,您甚至无需编写任务属性映射信息——因为这些信息都可以通过 Java 反射机制获取。注释和 Java 代码位于一个文件中,而转载 2016-11-18 16:15:06 · 288 阅读 · 0 评论 -
spring数据源配置
配置一个数据源 Spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是 C3P0。可以在Spring配置文件中利用这两者中任何一个配置数据源。 DBCP数据源 DBCP类包位于 /lib/jakarta-commons/commons-dbcp.jar,DBCP是一个依赖 Jakarta commons-pool对象池机制的数据库连转载 2016-11-18 16:22:09 · 255 阅读 · 0 评论 -
SpringMVC之RequestContextHolder分析
作者:本科IT人链接:https://zhuanlan.zhihu.com/p/24293062来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。最近遇到的问题是在service获取request和response,正常来说在service层是没有request的,然而直接从controlller传过来的话解决方法太粗暴,后来发现了SpringMVC转载 2016-12-10 17:35:11 · 42988 阅读 · 3 评论 -
【SpringMVC学习05】SpringMVC中的参数绑定总结
转载自:http://blog.youkuaiyun.com/eson_15/article/details/51718633众所周知,springmvc是用来处理页面的一些请求,然后将数据再通过视图返回给用户的,前面的几篇博文中使用的都是静态数据,为了能快速入门springmvc,在这一篇博文中,我将总结一下springmvc中如何接收前台页面的参数,即springmvc中的参数绑定问题。转载 2017-01-06 09:09:53 · 301 阅读 · 0 评论 -
spring学习之springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void。下面将对具体的一一进行说明:ModelAndViewJava代码 @RequestMapping("/show1") public ModelAndView show1(HttpServletReq转载 2017-01-06 09:28:07 · 332 阅读 · 0 评论 -
SSM框架Web程序的流程(Spring SpringMVC Mybatis)
持久层:DAO层(mapper) DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此, DAO层的设计首先是设计DAO的接口, 然后在Spring的配置文件中定义此接口的实现类, 然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰, DAO层的数据源配置,以及有关数据库连接转载 2017-03-02 16:44:47 · 736 阅读 · 0 评论 -
使用 Java 配置进行 Spring bean 管理
https://www.ibm.com/developerworks/cn/webservices/ws-springjava/Spring bean 是使用传统的 XML 方法配置的。在这篇文章中,您将学习使用基于纯 Java 的配置而非 XML 来编写 Spring bean 并配置它们。本文将介绍可用来配置 bean 的多种注释。此外还将演示基于 Java 的配置,将它与基于转载 2017-05-17 09:22:02 · 281 阅读 · 0 评论