Spring工厂创建Bean的三种方式

1、@Component注解

  • 在相关类上加上@Component注解即可
  • 类名的小驼峰形式即为bean的id值
  • 该方式创建bean优先级最低
package com.yusian.entity;

import org.springframework.stereotype.Component;

@Component
public class User {

    private Integer id;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {[......]

继续阅读

Proxy与CGLib实现动态代理

0、静态代理

  • 参考链接:https://www.yusian.com/blog/?p=1978
  • 简单地说:一个对象实现了另一个对象的功能,我们就将前者称为后者的代理。然而单纯地实现原始对象的功能没有太大的意义,一般而言,代理的目的是在原始对象功能的基础上进行额外的扩展,我们称之为附加功能

  • 静态代理很好地诠释了代理的作用,但由于静态代理的缺陷,利用反射机制对其进行改造便有了动态代理。

  • 只要是代理,其核心目的都是在原始对象的基础上扩展附加功能,这一点始终不变。

  • 常用的动态代理有2种,一种JDK自带的Proxy类及对其进行封装的相关类,另一种是以CGLib为代表的第三方库

1、Proxy

[……]

继续阅读