43.Spring第一天
1. 对象的容器:
|
一站式框架: 正因为spring框架属于容器性质的,容器中装什么对象就有什么功能,所以可以一站式。 它是一个分层的一站式的轻量级的开源框架。 它提供AOP编程。面向切面的编程。 它支持Junit4。 方便集成各种优秀框架。 它声明式事务的支持。 |
2. Spring框架的搭建:
|
release:释放,放开,发行。 dependency:附属,从属。 解压开spring-4.2.4-Release: 除了这4个包外,还需要导一个日志包。(4.2.4新版本导这一个即可) 老版本再导一个 com.springsource.org.apache.log4j-1.2.15 书写配置注册对象到容器:位置建议src/文件名建议applicationContext.xml。 |
3. Spring 框架导入约束
|
1).使用scheme约束,后缀名为xsd 2).先写根元素,再切换到编辑视图。 再无脑导入xsi: 成功!! |
4. Spring 框架根据约束写配置
|
1)将user对象交给spring框架管理。 |
5. Juint4测试该框架
|
|
6. ioc思想+di
|
Inverse of control:反转思想 对象的创建方式翻转了。 Dependency injection:依赖注入 实现ioc需要di支持。 注入方式:set方法注入、构造方法注入、字段注入。 注入类型:值类型注入 8大基本数据类型、 引用类型注入 将依赖对象注入。 |
7. 俩接口介绍
|
1)applicationContext 每次容器启动时就会创建容器中配置的所有对象,并提供更多功能。 Web开发中,使用applicationContext,在资源匮乏时使用BeanFactory。 它从类路径下加载配置文件:ClassPathXmlApplicationContext实现类 或者 2)BeanFactory最底层接口最原始 针对原始接口的实现类功能较为单一,它的实现类为容器,特点是每次在获得对象时才会创建对象。 |
8. 配置bean元素相关配置
|
name属性:给被管理的对象起个名。可使用特殊字符,名称可以重复。 Class属性:完整类名 Id属性:名称不能重复,不能使用特殊字符(不推荐) Scope属性: 1)singleton (默认值) 单例 2)prototype 多例原型 Spring与struts2整合时要多例原型,其它大部分为单例模型 3)request 4) session无用 生命周期属性:需要在对应的对象中创建相关方法 : 配置一个方法作为生命周期初始化方法,spring会在对象创建之 后立即调用。 Init-method=”” 配置一个方法作为生命周期销毁方法,spring容器会在关闭并销毁容器中所有对象之前调用。 destroy-method |
|
验证销毁方法: 实现类有ac.close();方法,关闭容器,父类actionContext没有。 |
9. 创建对象的三种方式
|
1)最常用是空参构造创建 最重要 2)静态工厂方式 了解 3)实例工厂创建 了解 |
10. Spring的分模块配置
|
可以在主配置文件引入其它配置,(当一个配置文件方入的对象过多 去掉src之前的。 |
11. Spring的Bean的属性注入:
|
1)set方法注入 非常重要 <property name=”age” value=”18”></property> 值类型注入 <property name=”car” ref=”car”> 引用类型注入 为car属性引入下方配置的car对象。 2)构造函数注入 重要 <constructor-arg name=”” type=”” index=”” value=””> <constructor-arg name=”” type=”” index=”” ref=””> 3)p名称空间注入 了解 4)spel注入 了解 |
|
1) 向array中注入:如果注入的值(对象)只有一个: 直接使用value(ref)即可。 向容器要对象: ApplicationContext ac=new ClassPathApplicationContext(“相对路径”); CollectionBean cb= (CollectionBean )ac.getBean(“cb”); |
|
1)向array中注入多个值或对象 <property name=”arr”> <array> <value>tom</value> <value>jerry</value> <ref bean=”user4”/> <array> </property > |
|
2)向list注入一个元素: <property name=”” value=””></property> 3)向list注入多个元素 <property name=”list”> <list> <value>jack</value> <value>rose</value> <ref bean=””/> </list> </property> 4)Map类型注入 <property> <map> <entry key=”字符串” value=”字符串”></entry> <entry key=”字符串” value-ref=”引用类型user”></entry> <entry key-ref =”引用user” value-ref=”引用user”></entry> </map> </property> |
|
5)properties类型注入(键值对)(不分一个值多个值) <property name=””> <props> <prop key=””></prop> </props> <proerpty> |
12. 确保容器中applicationContext只有一个。
|
Spring配置文件的规则:没有规则,名字任意,位置任意 配置一个Listener 需要导包spring-web-4.2.4.RELEASE 创建applicationContext对象后会将该放入application中。 |