spring解决的关键问题是解耦(编译期异常转换为运行时异常)
解耦的思路
工厂模式解耦,将new对象的任务都交给一个工厂类(BeanFactory),各个类需要new对象时则调用工厂类中获取指定对象的方法(getBean)
1.使用反射来创建对象,避免使用new关键字
2.为了方便以后维护,可以通过读取配置文件来获取要创建对象的全限定类名
?什么是反射?
?properies如何使用?
?Exception有哪些 总结?
spring为什么是一个容器(本质上是一个map)?
spring通过反射来创建bean
spring创建bean的三种方式
1.默认构造函数创建对象
<!-- #1为此bean的唯一标识,#2为想要管理的JavaBean的全限定类名 -->
<bean id="#1" class="#2"></bean>
2.静态工厂方法(使用某个类中的静态方法创建对象)
<!-- #1为此bean的唯一标识,#2为想要管理的JavaBean的全限定类名,#3为类中的静态方法 -->
<bean id="#1" class="#2" factory-method="#3"></bean>
3.普通工厂方法 (使用某个类中的方法创建对象)
<!-- #1为此bean的唯一标识,#2为想要管理的JavaBean的全限定类名 -->
<!-- #3为此bean的唯一标识,#4为类中的方法 -->
<bean id="#1" class="#2"></bean>
<bean id="#3" factory-bean="#1" factory-method="#4"></bean>
网友评论