关于反射和代理之类的实际意义体现在啊哪里?还是为了建议一种思想?

大家好,我是新人,学的是Java,刚从学校出来大半年了,搞的是Java EE的开发,还徘徊在Basic Java里。
虽说基础打牢点绝不是什么坏事,但我还是想了解下Core Java,看到关于反射、动态代理、设计模式之类的,也了解了一下,但不是很明白。
在实际开发中,反射和代理之类的实际意义体现在啊哪里?还是为了建议一种思想?

spring没了反射,他就不能叫spring!
想一下如果没有反射,spring怎样注入?
没有反射,你怎么能预知类名并调用它的方法?