jadestoner

导航

 

缘起

之所以写这个博客呢,一是自己做备忘用的学习总结;其次呢,就是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包

posted on 2019-10-11 18:02  jadestoner  阅读(300)  评论(0编辑  收藏  举报