1.简介
通过本文了解是跨域问题,从系统最常见的部署结构上分析跨域解决的思路,详细讲解jsonp的工作机制,http协议如何支持跨域,以及http服务器nginx和apache的2种不同解决思路,让大家知其然并知其所以然,快速掌握问题本质和分析问题的方法。
水滴石穿
通过本文了解是跨域问题,从系统最常见的部署结构上分析跨域解决的思路,详细讲解jsonp的工作机制,http协议如何支持跨域,以及http服务器nginx和apache的2种不同解决思路,让大家知其然并知其所以然,快速掌握问题本质和分析问题的方法。
作者:周磊,rocklei123.北京 2019.1.10
性能问题可能发生于系统的各个环节中,当性能问题出来后很难马上就定位性能的瓶颈在哪里,即使找到了性能瓶颈,在进行调优的时候也要考虑系统整体环境,从上下文中分析,确定调优的策略;系统中一个或者多个“短板”的存在,就能让系统无法达到设计时的目标,无法达到预期的性能提升。
项目组有一套企业级JavaWeb应用,以前在发布新版本时,都是通过ant将核心源码混淆后打成jar,再通过开发工具导出成war包,然后将加密混淆后的jar添加到war包中,部署到tomcat中。整个流程虽然不够复杂,但整个流程下来至少30分钟。最初的想法就是想让这一切工作全部自动化,节省项目新版本发布时间。
在开发中我们修改一个Java文件后想看到效果不得不重启应用,这导致大量时间花费,我们希望不重启应用的情况下,程序可以自动部署(热部署)。有以下四种情况,如何能实现热部署。
Spring AOP 基础
AOP:【动态代理】
指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式;
实现Spring AOP三部曲:
将业务逻辑组件和切面类都加入到容器中;告诉Spring哪个是切面类(@Aspect)
在切面类上的每一个通知方法上标注通知注解,告诉Spring何时何地运行(切入点表达式)
1 | 通知方法: |
开启基于注解的aop模式;@EnableAspectJAutoProxy
Spring容器的refresh()【创建刷新】;
1)、initPropertySources()初始化一些属性设置;子类自定义个性化的属性设置方法;
2)、getEnvironment().validateRequiredProperties();检验属性的合法等
3)、earlyApplicationEvents= new LinkedHashSet
Bean的生命周期:
bean创建—初始化—-销毁的过程
容器管理bean的生命周期;
我们可以自定义初始化和销毁方法;容器在bean进行到当前生命周期的时候来调用我们自定义的初始化和销毁方法。