- spring简介
- 概念
spring是分层的JavaSE/EE应用full-tsack轻量级开源框架,以IoC(反转控制)和AOP(面向切面编程)为内核
- 优势:
方便解耦;简化开发:通过Spring提供的IOC容器,可以将对象间的依赖关系交由spring进行控制,避免硬编码所造成的
过度耦合。用户不必再为单例模式类、属性文件解析等这些很底层的需求代码,可以更专注于上层的应用。
AOP编程的支持:通过spring的AOP功能,方便进行切面编程,许多不容易用的传统OPP实现的功能可以通过AOP轻松实现。
声明事务的支持:通过声明式方式灵活的进行事务管理、提高开发效率和质量。
方便程序测试:可以用非容器依赖的编程方式进行几乎所有的测试工作。
方便集成各种框架;降低JAVA EE API的使用难度。
- 开发步骤:
- 导入spring在maven中的坐标;
-
- 编写Dao接口和实现类;
-
- 创建spring核心配置文件;
-
- 在spring配置文件中配置实现类。
-
- 使用spring API获得Bean示例。
- Spring依赖配置
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.15</version>
</dependency>
- applicationContext文件配置
- Bean配置:用于配置对象交由spring来创建,默认情况下他调用的是类中的无参构造,如果没有无参构造则不能创建成功
- 基本属性:①id:Bean实例在spring容器中的唯一标识;②class:是Bean的全限定名称。
- scope范围配置:
singleton | 默认值 |
prototype | 多例 |
request | web项目中,spring创建一个Bean的对象,将对象存入到request域中 |
session | web项目中,spring创建一个Bean的对象,将对象存入到session域中 |
global session | web项目中,应用在Portlet环境 那么globalSession相当于session。 |
- bean的生命周期
- ninit-method:指定类中的初始化方法
-
- destroy-method:指定类中的销毁方法
- bean的实例化方式
- 无参构造实例化
spring容器通过无参构造来实例化对象、首先创建所需要的实例化的类;然后通过配置applicationContext.xml文件,用bean标签将类创建的类加载到容器中(<bean id="唯一性标识" class="类路径名">);然后通过创建applicationContext容器对象,通过容器对象的getBean("传入唯一性标识id")方法创建类对象。然后通过类对象来调用类方法。
-
- 工厂静态方法实例化;
Spring容器通过工厂静态方法实例化对象;首先需要创建一个工厂类,在工厂类中创建一个获取无参类的方法;然后在applicationContext.xml文件中配置<bean id="唯一性标识" class="工厂类路径" factory="类路径中的获取类方法">
-
- 工厂方法实例化;
Spring容器通过工厂实例化方法创建对象;首先创建一个工厂类,在工厂类创建一个获取无参类的方法;然后在applicationContext.xml文件中配置<bean id="工厂唯一标识" class="工厂类路径">;然后再在此下面配一个<bean id="唯一性标识" factory-bean="上面创建的工厂类标识" factory-method="工厂类方法">