1.spring简介
开源的,用来简化开发的应用开发框架。
特点:
. 简化开发
spring对常用的一些api做了封装,比如,spring对jdbc做了封装,这样,使用spring jdbc来访问数据库,就更加简洁(不用考虑如何获得连接与关闭连接等)。
. 解耦
spring通过ioc(Inversion of Control 控制反转)可以帮我们管理对象,包括对象与对象之间的依赖关系。
. 集成
spring可以将其它的一些框架集成进来,比如:springMVC,Struts2,Mytatis等。
2.什么是spring容器?
spring容器就是一个巨大的工厂。Spring容器使用Ioc管理所有组成应用系统的组件。用于对对象进行管理。 spring容器是整个spring框架的核心,通常我们说的spring容器就是bean工厂,bean工厂负责创建和初始化bean、装配bean并且管理应用程序中的bean.spring中提供了两个核心接口:BeanFactory和ApplicationContext,ApplicationContext是BeanFactory子接口,它提供了比BeanFactory更完善的功能.
3.spring创建对象的方式
第一种方式: 无参构造器(重点)step1. 要有无参构造器或缺省构造器。
step2. 在配置文件当中,使用bean元素来配置。
<bean id="a" class="com.ioc.A"></bean>
step3. 启动容器,调用容器的
ApplicationContext ac = new ClassPathXmlApplicationContext("ac.xml");
A a = ac.getBean("a",A.class)方法。
<bean id="cal" class="java.util.Calendar" factory-method="getInstance"/>
<bean id="time" factory-bean="cal" factory-method="getTime"/>
第四种方式:用注解的方法(常用)
配置组件扫描
<context:component-scan base-package="包名"/>
@Component 通用
@Controller 控制层
@Service 业务层
@Repository 持久层
依赖注入:将student类注入到teacher类中。
@Resource(name="student")
private Student stu;
注:
spring容器在启动的时候会创建单例的对象
Scope="singleton"; 单例(默认情况下是单例的)
Scope="prototype"; 多例
而且创建的对象的类必须含有无参构造器!!!
4.spring生命周期的方法
. 初始化: 使用init-method属性来指定初始化方法。. 销毁:使用destroy-method属性来指定销毁方法
注:只有作用域为scope="singleton"的bean,销毁方法才会执行。