开源的,用来简化开发的应用开发框架。 特点: . 简化开发 spring对常用的一些api做了封装,比如,spring对jdbc做了封装,这样,使用spring jdbc来访问数据库,就更加简洁(不用考虑如何获得连接与关闭连接等)。 . 解耦 spring通过ioc(Inversion of Control 控制反转)可以帮我们管理对象,包括对象与对象之间的依赖关系。 . 集成 spring可以将其它的一些框架集成进来,比如:springMVC,Struts2,Mytatis等。
spring容器就是一个巨大的工厂。Spring容器使用Ioc管理所有组成应用系统的组件。用于对对象进行管理。 spring容器是整个spring框架的核心,通常我们说的spring容器就是bean工厂,bean工厂负责创建和初始化bean、装配bean并且管理应用程序中的bean.spring中提供了两个核心接口:BeanFactory和ApplicationContext,ApplicationContext是BeanFactory子接口,它提供了比BeanFactory更完善的功能.
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"; 多例
而且创建的对象的类必须含有无参构造器!!!
注:只有作用域为scope="singleton"的bean,销毁方法才会执行。