zoukankan      html  css  js  c++  java
  • 简单点学spring源码-目录

    缘起

    之所以写这个博客呢,一是自己做备忘用的学习总结;其次呢,就是spring越来越复杂,各种功能越来越多,各种复杂兼容适配的源码看的人眼花撩乱,云里雾里,深入而不能浅出。
    本人在这里呢,就删繁就简,带领大家学习一番,保证大家能花费最少的精力,学习到最有用的干货。

    具体代码github在这里

    最后,我叫破石,希望大家能记住我哦。

    1. bean包

    bean是spring的基础,被称 面向bean编程,在spring框架的各个领域被广泛使用,值得我们优先来学习。

    bean是什么呢?
    bean就是一个简单的java类,有一个默认的构造函数,还遵循一个命名规则(名字叫prop的属性会有一个setter setProp 和 一个 getter getProp)

    jdk中也有一个bean包的,而且功能非常强大,像大名鼎鼎的PropertyEditor,VetoableChangeListener等都是由jdk直接提供的。
    说白了,spring也只是在此基础上又增加了一些方法,对其进行了一定的补充与封装,方便spring的使用。比如新增了PropertySource概念,补充了BeanWrapper概念。

    建议大家在学习spring的bean前先学习一下jdk中的bean包,毕竟后者是基础。

    本章例子中会使用到的类和接口代码(主人,宠物,宠物种类)
     ISpecies 种类
    public interface ISpecies {
      String getName();
      void setName(String name);
    }
    
    宠物接口
    public interface IPet {
      void setName(String name);
      String getName();
      int getAge();
      void setAge(int age);
      void setSpecies(ISpecies sp);
      ISpecies getSpecies();
    }
    
    主人接口
    
    public interface IOwner {
      void setName(String name);
      String getName();
      void setPets(List pets);
      List getPets();
    }
    
    宠物种类具体类
    public class Species implements ISpecies {
      public Species() {
      }
      public Species(String name) {
    this.name = name; }
      public String getName() {
        return name;
      }
      public void setName(String name) {
    this.name = name; }
      private String name;
      }
    宠物具体类
    public class Pet implements IPet {
      public Pet() {
      }
      public Pet(String name, int age, ISpecies sp) {
    this.name = name; this.age = age; species = sp;
    }
    public void setName(String name) {
    this.name = name; }
    public String getName() {
      return name;
    }
    public int getAge() {
    return age; }
    public void setAge(int age) {
    this.age = age; }
      public void setSpecies(ISpecies sp) {
        species = sp;
      }
      public ISpecies getSpecies() {
        return species;
      }
      private String name;
      private int age;
      private ISpecies species;
    }
    主人具体类
    public class Owner implements IOwner {
      public Owner() {
      }
      public Owner(String name, List pets) {
    this.name = name;
        setPets(pets);
      }
    public void setName(String name) { this.name = name;
      }
      public String getName() {
        return name;
      }
    public void setPets(List pets) { this.pets.clear(); this.pets.addAll(pets);
      }
      public List getPets() {
        return pets;
      }
      private String name;
      private ArrayList pets = new ArrayList();
    }
    

    1.1 bean 包

    包结构
    |com
    |----demo
    |--------spring
    |------------beans
    |----------------factory
    |----------------propertyeditors
    |----------------support

    1.2 bean factory包

    1.3 bean propertyeditors包

  • 相关阅读:
    BFS visit tree
    Kth Largest Element in an Array 解答
    Merge k Sorted Lists 解答
    Median of Two Sorted Arrays 解答
    Maximal Square 解答
    Best Time to Buy and Sell Stock III 解答
    Best Time to Buy and Sell Stock II 解答
    Best Time to Buy and Sell Stock 解答
    Triangle 解答
    Unique Binary Search Trees II 解答
  • 原文地址:https://www.cnblogs.com/po-shi/p/11655871.html
Copyright © 2011-2022 走看看