一、Spring介绍
1、学习目的
- 方便解耦,简化开发:
- Spring 就是一个大工厂,可以将所有对象创建和依赖关系维护,交给 Spring 管理
- AOP 编程的支持:
- Spring 提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
- 声明式事务的支持:
- 只需要通过配置就可以完成对事务的管理,而无需手动编程
- 方便程序的测试:
- Spring 对 Junit4 支持,可以通过注解方便的测试 Spring 程序
- 方便集成各种优秀框架:
- Spring 不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、
- MyBatis、Quartz 等)的直接支持降低 JavaEE API 的使用难度
2、IOC 和 DI
- IOC:
- Inversion of Control 控制反转. 指的是 对象的创建权反转(交给)给 Spring.
- 作用是实现了程序的解耦合.
DI :
Dependency Injection 依赖注入.需要有 IOC 的环境,Spring 创建这个类的过程中,Spring 将类的依 赖的属性设置进去.
3、配置文件创建:
- log4j.properties
applicationContext.xml
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id = "user" class="cn.it.User"></bean>
- </beans>
4、参数介绍:
- id :Bean 起个名字. 在约束中采用 ID 的约束:唯一.必须以字母开始,可以使用字母、数字、连字符、
- 下划线、句话、冒号 id:不能出现特殊字符.
- <bean id=”bookAction”>
- name:Bean 起个名字. 没有采用 ID 的约束. name:出现特殊字符.如果<bean>没有 id 的话 , name 可
- 以当做 id 使用.
- * 整合 struts1 的时候:
- <bean name=”/loginAction” >
5、BeanFactory 和 ApplicationContext 的区别:
- BeanFactory :是在 getBean 的时候才会生成类的实例.
- ApplicationContext :在加载 applicationContext.xml(容器启动)时候就会创建
6、scope 属性:Bean 的作用范围.
- singleton :默认值,单例的.
- prototype :多例的. 在struts2中必须设为多列