随笔分类 - spring
摘要:SpringMVC工作原理 doService() >doDispatch() >processDispatchResult() >render() doService设置request的相关属性然后调用doDispatch, doDispatch中调用processDispatchResult(考
阅读全文
摘要:动态代理 jdk动态代理:根据业务方法名,调用业生成的代理对象实例的同名方法。 cglib动态代理:通过继承业务类,并重写业务类的方法,生成的是业务类的子类。因为接口也能被继承,所以接口也可以被代理。 jdk低版本(jdk8以前)cglib创建代理对象性能高,但耗时久,故单例对象适合用cglib创建
阅读全文
摘要:Spring IOC初始化流程 首先通过new ApplicationContext()触发IOC容器初始化,ApplicationContext的refresh方法里完成容器初始化。具体过程: 定位。通过Resource定位BeanDefinition,BeanDefinition抽象了对bean
阅读全文
摘要:Spring Bean的生命周期 只有singleton作用域的单例bean,Spring才会自动接管其生命周期,其他的如prototype就不会。源码 实例化bean 当向容器请求依赖时,对于BeanFactory,调用createBean进行实例化。对于ApplicationContext容器,
阅读全文
摘要:Spring AOP(面向切面)编程的原理 ? AOP面向切面编程,它是一种思想。它就是针对业务处理过程中的切面进行提取,以达到优化代码的目的,减少重复代码的目的。 就比如,在编写业务逻辑代码的时候,我们习惯性的都要写:日志记录,事物控制,以及权限控制等,每一个子模块都要写这些代码,代码明显存在重复
阅读全文
摘要:Spring注解 @Controller(表示SpringMVC的Controller)、@RestController(Rest风格控制器,还可以若要返回JSON不需要@ResponseBody了)、@Service(业务服务层)、@Autowired(如果允许null值,required=fal
阅读全文
摘要:Spring解决循环依赖的问题 // 业务开发中经常这么写,field注入、setter注入都OK,但是构造器注入会报错BeanCurrentlyInCreationException // 有这种循环依赖问题存在Spring却依然能够正常启动工作,为什么?Spring帮我们搞定了:三级缓存 @Se
阅读全文