spring 是什么
是一个开源的用来简化应用开发的框架。
简化开发
spring对常用的api做了封装和简化(比如,对jdbc做了封装,使用spring jdbc
来访问数据库,就不在需要考虑获取连接和关闭连接了)
管理对象
spring提供了一个容器,帮我们创建对象以及建立对象之间的依赖关系
这样做的好处是,降低对象之间的耦合度,方便代码维护。
集成其它框架
spring可以将其它的一些框架集成进来(比如,集成用于任务调度的框架
Quartz)。即“ 不发明重复的轮子”。
一站式的框架
spring容器
1.spring容器是什么
spring框架的一个核心模块,用于管理对象。
2.启动spring容器
step1. 导包。(spring-webmvc)
step2.添加配置文件
step3. 启动spring容器
//启动Spring容器
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
3.如何创建对象
方式一:使用无参构造器创建对象(重点)
step1.给类添加无参构造器(默认是缺省的)
step2.配置bean元素
step3.调用容器的getBean方法来获得对象
<!-- 使用无参构造器创建对象 id属性:bean的名称,要求唯一 class属性:类的全限定名 -->
<bean id="stu1" class="first.Student"></bean>
方式二:使用静态工厂方法创建对象(了解)
通过调用类的静态方法来创建对象。
<!-- 使用静态工厂方法创建对象。factory-method属性:指定一个静态方法 spring容器会调用这个方法来创建对象-->
<bean id="cal1" class="java.util.Calendar" factory-method="getInstance"></bean>
方式三:使用实例工厂方法创建对象(了解)
通过调用对象的实例方法来创建对象。
<!-- 使用实例工厂方法创建对象 factory-bean属性;指定一个bean的id factory-method属性:指定一个方法,spring会调用这个ceqan的方法-->
<bean id="time1" factory-bean="cal1" factory-method="getTime"></bean>
4.作用域
默认情况下,容器对于某个bean,只会创建一个实例
可以设置scope属性值为prototype,这样,容器对于某个bean都会5创建多个实例。
5.生命周期
初始化方法:
使用init-method属性来指定初始化方法名。
销毁方法:
使用destroy-method属性来指定销毁方法名。
注:spring容器在关闭之前,会先销毁对象,在销毁对象之前,会先调用对象的销毁方法。
6.延迟加载(了解)
spring容器启动后,会将所有作用域为单例的bean创建号。
IOC(INVERSION OF CONTROL控制反转)
1.什么是IOC
对象之间的依赖关系,由容器建立。
2.DI(DEPENCY INJECTION依赖注入)
容器通过调用对象的setfangfa或者构造器来建立依赖关系。
3.SET方式注入
4.构造器方式注入
step1. 使用相应的构造器。
step2. 配置construct-arg元素
5.自动装配
自动装配,指的是spring容器依赖某种规则,自动建立对象之间的依赖关系。
注意:
a.默认情况下,容器不会自动装配。
b.可以通过指定autowire属性来告诉容器进行自动装配(容器仍然群需要通过调用set
方法或者构造器来完成依赖关系的建立)。
注入基本类型值
value
注入集合类型值
LIST MAP SET PROPERTES