spring 的实现的三个功能:
1.松散耦合 IOC 2.AOP 面向服务 3.使用javaee api更简单化
spring要讲的内容:
1.beanfactory 降低松散关联 对它的扩展对象 applicationContext 2.AOP 专门负责对业务逻辑外的服务集中作为一个点来管理 3.在web中如何利用工具加入beanfactory spring mvc
需要的jar
dist/spring.jar lib/jakata-commons/commons-logging.jar
bean 创建: 用到构造方法注入: private int id; public Account(int id){this.id=id}; xml中:<constructor-arg><value type="java.lang.String" >1</value></constructor-arg> 会根据类型匹配 一般set方法注入: <property name="balance"> <value>12334.3</value> </property>
通过静态工厂创建bean: 一。 写一个工厂类 其中工厂方法是静态的 二。在xml中写明,我们用的是工厂类中的方法,而不是工厂对象 < bean id="factory" class="xx.DateFactory" factory-method="createDate"><constructor-arg>xxx</constructor-arg> 实力工厂创建bean:1.不是静态方法currentTime 2.< bean id="factory" class="xx.DateFactory"/> <bean id="currentTime" factory-bean="factory"><constructor-arg value="util" /></bean>
依赖:
自动装配和依赖检查 <bean id="model" autowire=“byName byType construct " dependency-check="simple objects all default"> 根据属性名字匹配( setxxx ) byType 根据属性类型匹配 construct 是构造器类型匹配 simple 简单的检查
bean 生命周期: init-method 初始化方法 是在注入之后,业务调用之前,在bena类中写一个方法init(),或destory() <bean id="model" init-methos="init"> destory-method <bean id="model" destory-method="destory"> scope 范围空间 singleton 缺省是单例的(View view1=factory.getBean("view")和View view2=factory.getBean("view")是相等的) prototype <bean id="view" scope="prototype"> 这样getBean()得到的对象是不相等的 request response 是针对web范围的
模板: parent abstract
bean 子标记 consturct-arg property ref 引用类型 value 基本类型 <map> 集合类型 <entry key="23"> <value>abc</value> <ref/> </entry> </map>
<props> <prop key="属性名">tarena<prop> </props>
<list> 如果是数组属性可以用list <value> <ref/> </list> <set> <value> <ref/> </set>
IOC (控制反转):让容器来管理解决组件的依赖性