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 (控制反转):让容器来管理解决组件的依赖性