1. spring AOP的相关概念

    1. 什么是AOP? 先看一下传统程序的流程,比如银行系统会有一个取款流程: 我们可以把方框里的流程合为一个,另外系统还会有一个查询余额流程,我们先把这两个流程放到一起: 有没有发现,这个两者有一个相同的验证流程,我们先把它们圈起来再说下一步:

    2022/04/02 spring AOP专题

  2. 什么是动态代理?

    1. AOP的基石 AOP的功能这么强大,其基础知识就是动态代理。

    2022/04/01 spring AOP专题

  3. springMVC源码

    1. spring mvc核心访问流程 springmvc随着springboot启动后,即可立即对外部暴露restful api,接收消费端的http请求,那么一个请求从客户端发起,到restful接收,整个过程是什么样子的呢?

    2022/03/02 spring MVC专题

  4. springMVC

    1.

    2022/03/01 spring MVC专题

  5. 深入了解@Configuration、@Bean注解

    1. spring底层对普通方式比如@Component,和特殊方式@Bean的处理区别 @Bean标注在一个方法上,会自动执行该方法,将该方法的返回值作为bean实例注册到spring容器中去。 1.1 beanDefinition描述的bean类型有区别 @Bean注册的beanDefinition中,描述的bean类型就是@Bean标注的方法返回值类型,不会添加目标bean的所有父类型。 这点需要特别注意,@Bean注册的bean类型就是方法返回值的类型,为什么非要强调这一点? 是因为通过@Bean的方式注册到容器中的bean的类型就是方法返回值的类型,这在通过context.getBean(TargetBean.class)这种方式获取bean实例时有很大的影响。 举个例子: public interface MyInterface{} 上述接口有一个实现类: public class MyInterfaceImpl implements MyInterface{} 如果通过普通方式注册MyInterfaceImpl的话,比如: @Component public class MyInterfaceImpl implements MyInterface{} 这种方式注册到spring容器中的bean,其根据该类的class转换成的BeanDefinition对象中,大概有如下信息: beanName:是类名驼峰化后的字符串。 beanType:是该类的真实类型,比如MyInterfaceImpl、同时还会将该类的所有父类型依次绑定到该bean的BeanDefinition中,比如 MyInterface类型。如果MyInterface还有父类型,会递归检索,直到发现父类型是Object.class为止。 因此,通过applicationContext.getBean(MyInterface.class)是可以成功从容器中获取到MyInterfaceImpl实例的。 实际上通过@Component等方式注册的bean,转换后的BeanDefinition类型是org.springframework.context.annotation.ScannedGenericBeanDefinition,通过在自定义的beanFactoryPostProcessor中进行代码调试可以发现有如下结构: metaData:这个对象中定义了目标bean的ClassName、SuperClassName表示目标Bean的直接父类、InterfaceNames表示了目标Bean的所有直接接口的权限定名。 beanClass:表示目标Bean的Class对象。 scope:表示目标Bean的scope,默认是singleton。 除此之外还有很多信息,都用来描述目标bean。

    2022/01/17 spring专题

  6. 开始进入java注解的世界

    1.

    2022/01/16 spring专题

  7. 代理详解(java动态代理&CGLIB代理)

    1.

    2022/01/15 spring专题

  8. lookup-method和replaced-method比较陌生,怎么玩的?

    1.

    2022/01/14 spring专题

  9. 使用继承简化bean的配置

    1.

    2022/01/13 spring专题

  10. lazy-init:bean延迟初始化

    1. spring对bean的实例化一般有两种 1.实时初始化bean 2.延迟初始化bean 注意,这里的“延迟初始化”中的“初始化”实际上是习惯性叫法,正确理解应该是“延迟实例化”。

    2022/01/12 spring专题