2021
07-17
07-17
Spring的Xml和JavaConfig 扩展哪个好用
引言上一篇文章我们有怎么介绍到如何通过XML的形式来定义Spring的扩展《Spring面试高频题如何:自定义XMLschema扩展》,好多人都在吐槽现在都什么年代了,xml还有人再用吗?这玩意早就过时了吧,还有必要去掌握它吗?Spring官网都把这种方式放在最后面了,可想而知它的重要性到底怎样了?既然大家都吐槽了,那我们今天继续来介绍下基于注解的Spring扩展。JavaConfig配置扩展从Spring3.0开始Spring提供了JavaConfig的方式可以用...
继续阅读 >
问题:使用getServletContext().getRealPath()得到的是临时文件的路径。每次重启服务,这个临时文件的路径还会变更。类似下面这种路径:解决措施:在idea的启动配置里面配置工作区。在工作区下建立public文件夹。问题解决。原理解释:源码位置:org\springframework\boot\web\servlet\server\DocumentRoot.javaSpringBoot启动后,默认会把commonDocRoot设置成这三个目录(java项目www.fhadmin.org)。如...
目录一、@Configuration1.1未加@Configuration1.2加上@Configuration1.3Cglib动态代理二、源码跟踪2.1AnnotationConfigApplicationContext2.2AnnotationConfigApplicationContext#AnnotationConfigApplicationContext(Class<?>...annotatedClasses)2.3AbstractApplicationContext#refresh()2.4 AbstractApplicationContext#invokeBeanFactoryPostProcessors2.5PostProcessorRegistrationDelegate#invokeBeanFacto...
目录一、ImportResource1.1定义包和类1.2定义配置文件1.3定义JavaConfig类1.4测试代码二、运行一、ImportResource1.1定义包和类首先定义一个不会被ComponentScan扫描到的包outpackage,如下:在该包内创建一个类:packageoutpackage;importorg.springframework.stereotype.Service;@ServicepublicclassHelloService1{publicvoidmethod1(){System.out.println("class:HelloService1__method:method1");...
1.概述Feign用于服务间调用,它的内部实现是一个包含Ribbon(负载均衡)的**JDK-HttpURLConnection(Http)**调用。虽然调用形式是类似于RPC,但是实际调用是Http,这也是为什么Feign被称为伪RPC调用的原因。内部调用过程如下:2.代码细节1)BaseLoadBalancer.java配置初始化重点功能:1.初始化负载均衡策略2.初始化取服务注册列表调度策略voidinitWithConfig(IClientConfigclientConfig,IRulerule,IPingping,LoadBalancerS...
1.详细步骤首先在pom.xml文件中做一些修改:之前打war包需要修改打包方式,这次不需要了,因为默认就是jar包指定最终打成jar包的名称手动指定resources文件夹编译打包的路径添加SpringBoot内嵌Tomcat解析jsp的依赖(仅仅是为这个实例而添加)<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLoc...
目录一、Transactional二、使用说明三、注解失效问题一、Transactional声明式事务管理建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。简而言之,@Transactional注解在代码执行出错的时候能够进行事务的回滚。二、使用说明在启动类上添加@EnableTransactionManagement注解。用于类上时,该类的所有public方法将都具有该...
目录?、前文回顾一、再聊过滤器链二、过滤器的创建FilterSecurityInterceptor的创建ExceptionTranslationFilter的创建三、源码流程FilterSecurityInterceptorExceptionTranslationFilter四、总结?、前文回顾在实战篇《话说SpringSecurity权限管理(源码详解)》我们学习了SpringSecurity强大的访问控制能力,只需要进行寥寥几行的配置就能做到权限的控制,本篇来看看它到底是如何做到的。一、再聊过滤器链源码篇中反复提到,请求...
1前言很多需要使用事务的场景,都只是在方法上直接添加个@Transactional注解但是,你以为这真的够了吗?事务如果未达到完美效果,在开发和测试阶段都难以被发现,因为你难以考虑到太多意外场景。但当业务数据量发展,就可能导致大量数据不一致的问题,就会造成前人栽树后人踩坑,需要大量人力排查解决问题和修复数据。2如何确认Spring事务生效了?使用@Transactional一键开启声明式事务,这就真的事务生效了?过于信任框架总有...
目录一、封装统一返回结果类二、自定义异常封装类三、错误枚举四、全局异常处理类五、测试一、封装统一返回结果类importcom.jiusen.exercise.enums.ErrorEnum;importcom.jiusen.exercise.exception.BusinessException;importlombok.Getter;importlombok.Setter;/***@author:Lawson*@date:2021/5/11*@description:TODO统一的返回结果*/@Getter@SetterpublicclassAjaxResult{//是否成功privateBoolean...