摘要: 静态代理是通过在代码中显式编码定义一个业务实现类的代理类,在代理类中对同名的业务方法进行包装,用户通过代理类调用被包装过的业务方法; JDK动态代理是通过接口中的方法名,在动态生成的代理类中调用业务实现类的同名方法; CGlib动态代理是通过继承业务类,生成的动态代理类是业务类的子类,通过重写业务方 阅读全文
posted @ 2020-02-16 20:51 SunSAS 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 循环依赖 以及 spring是如何解决循环依赖的 循环依赖 通俗来说 就是beanA中依赖了beanB,beanB中也依赖了beanA。 spring是支持循环依赖的,但是默认只支持单例的循环依赖,如果bean中依赖了原型bean,则需要加上lookup方法。 继续之前的项目,改造了People,U 阅读全文
posted @ 2020-02-14 17:15 SunSAS 阅读(1299) 评论(0) 推荐(0) 编辑
摘要: 继续之前的项目: People加上无参构造方法: @Component public class People { // private User user; public People(){ System.out.println("create People"); } } 在refresh()方法 阅读全文
posted @ 2020-02-13 20:51 SunSAS 阅读(658) 评论(0) 推荐(0) 编辑
摘要: BeanFactoryPostProcessor是spring BeanFactory加载Bean后调用, BeanPostProcessor是Bean初始化前后调用。 BeanFactoryPostProcessor 通俗地说:BeanFactoryPostProcessor是胚胎中直接基因改造, 阅读全文
posted @ 2020-02-11 17:22 SunSAS 阅读(1145) 评论(0) 推荐(0) 编辑
摘要: 为了演示Spring中对象是如何创建并放到spring容器中,这里新建一个maven项目: 其中pom.xm文件中只引入了一个依赖: <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spri 阅读全文
posted @ 2020-02-10 21:16 SunSAS 阅读(406) 评论(2) 推荐(0) 编辑
摘要: Spring boot中使用的是内置的Tomcat,而不像Spring mvc那样依赖外部tomcat运行项目。 spring boot中导入了Tomcat的jar包: 点进一个Spring boot 项目的application类的run方法: 查看此方法的实现类: 查看其实现类: 就是下面这段代 阅读全文
posted @ 2020-02-08 17:28 SunSAS 阅读(459) 评论(0) 推荐(0) 编辑
摘要: SPI广泛用于dubbo,spring boot,spring cloud alibaba等 关于SPI,可见SPI-Service Provider Interface 继续上篇文章 上面三句代码的意思是创建IOC容器,下面是向容器中注入DispatcherServlet。 而ContextLoa 阅读全文
posted @ 2020-02-07 18:30 SunSAS 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 访问https://spring.io/ spring boot中: public class MyWebApplicationInitializer implements WebApplicationInitializer { @Override public void onStartup(Ser 阅读全文
posted @ 2020-02-06 12:29 SunSAS 阅读(688) 评论(0) 推荐(0) 编辑
摘要: 其实就是别人提供了一个类,读取指定目录下的文件,通过反射方式创建对象。 为什么来说spi?因为spring boot就是通过spi来创建对象的。 首先写一个接口: public interface TestInterface { void test(); } 写几个实现类: public class 阅读全文
posted @ 2020-02-05 14:31 SunSAS 阅读(240) 评论(0) 推荐(0) 编辑
摘要: dubbo现在用的也不多,基本都在用spring cloud那一套,所以不详细写这个dubbo了。 1.zookeeper的安装 2.demo示例 我们需要把提供者注册到dubbo注册中心,消费者去订阅 2.1:新建一个空的项目,先不建module 2.2:新建提供者(provider)模块 fil 阅读全文
posted @ 2020-02-04 15:13 SunSAS 阅读(209) 评论(0) 推荐(0) 编辑