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包

  • 相关阅读:
    POJ2945 Find the Clones trie树
    BZOJ 3796 Mushroom追妹纸 哈希+二分(+KMP)
    java-web的mybatis的学习
    关于字符串split一些用法
    hive 中简单的udf函数编写
    hive 用户行为分析(活跃。启动,留存,回访,新增)的一些经典sql
    浏览收藏夹 看到了hadoop3.0 的改动
    pythonDay01
    关于java 操作linux命令的 一些相关
    需求中碰到的简单Map集合 key相同合并 value的思路
  • 原文地址:https://www.cnblogs.com/po-shi/p/11655871.html
Copyright © 2011-2022 走看看