java中到底在学什么?
1,对象
面向对象思考问题
寻找处理数据的对象
谁拥有数据,谁就对外提供处理数据的方法(自己是数据的处理者)
2,关系
因果关系解决问题
寻找对象之间的关系
谁贡献方法,谁就作为参数传递给对方的方法(自己是功能的贡献者)
面向对象:
java最基础的Demo.java代码:
class Demo{
public static void main (String[ ] args)}
System.out.println("Hello,word");
}
}
谁拥有数据?字符串"Hello,word"在Demo{}的大括号中,所以是Demo处理数据,处理的方法是main方法,处理的方式是println打印;
寻找关系:
java很高级的SpringAop框架:
需求:按照配置文件上的配置,创建一个JavaBean对象给我;
1,面向对象的指挥者:某main函数,建立链接配置文件的InputStream,并告知类名字符串对应的Key字符串;
2,一代对象:BeanFactory—— 从流中找到与Key对应的value,通过Class对象及其创建对象的功 能(new instance()),就得到了一个Bean对象,如果这个bean对象是属于代理类型(ProxyFactoryBean),就读取其两个参数(target & Advice),并把这两个数据交给((ProxyFactoryBean)Bean)对象去一手操办创建代理(Proxy)对象,得到proxy对象后,BeanFactory对象把它交给指挥者main方法;
3,二代对象:ProxyFactoryBean——只接受委派者(BeanFactory)的指挥,如果BeanFactory建立的Bean对象 不属于ProxyFactoryBean类,那么就不需要ProxyFactoryBean对象创建代理对象(proxy)了,直接返回Bean给那个main方法就可以了;
IO流+Class+reflect+JavaBean+Proxy+InvocationHandler(匿名内部类)= BeanFactory & ProxyFactoryBean
一个框架就这样产生了,一个框架可以说是二者功劳:BeanFactory & ProxyFactoryBean
也可以说是群众巨作:IO流+Class+reflect+JavaBean+Proxy+InvocationHandler(匿名内部类)
小小总结,大大收获;