Spring框架基础

本文介绍了Spring框架的基本概念,如控制反转(IoC)和面向切面编程(AOP)。Spring的核心机制围绕Bean展开,包括Bean的定义、加载和管理。文章还详细阐述了BeanDefinition的载入和注册过程。最后,提供了在Idea中整合Spring的步骤,包括创建项目、导入jar包、配置spring.xml和web.xml。
摘要由CSDN通过智能技术生成

什么是Spring框架

Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率。第一个版本出现在2004年,由美国的sun公司开发,是Java领域最成功的框架。
其成功来自于设计理念,而不是技术。
最核心的理念是Ioc(控制反转)AOP(面向切面编程)
Ioc是Spring的基础,AOP是Spring的重要的功能,最典型的应用是数据库的事务处理。

spring框架的核心功能

Spring框架的核心功能有两个:

1、Spring容器作为超级大工厂,负责创建、管理所有的Java对象,这些Java对象被称为Bean。

2、Spring容器管理容器中Bean之间的依赖关系,Spring使用一种被称为"依赖注入"的方式来管理Bean之间的依赖关系。

Spring框架的优点

低侵入式设计,代码的污染极低。

独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺。

 Spring的IoC容器降低了业务对象替换的复杂性,提高了组件之间的解耦。
 
Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用。

Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问。

Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部。

Spring框架的核心机制

Bean

bean就是实体类
Spring框架管理bean是通过两种方法

  1. ClassPathXmlApplicationContext

从类加载路径下搜索配置文件,并根据配置文件来创建Spring容器。
实现了ApplicationContext接口,该类可以用于初始化Ioc容器

  1. FileSystemXmlApplicationContext

:从文件系统的相对路径或绝对路径下去搜索配置文件,并根据配置文件来创建Spring容器。

Bean定义的过程:

  1. Resource定位

Spring Ioc容器根据开发者的配置进行资源定位。在Spring开发中,可以通过xml或 注解的方式进行资源配置,配置的内容由开发者提供

  1. BeanDefinition的载入

是将Resource定位到的信息,保存到Bean定义中(BeanDefinition),但是不会创建Bean实例

  1. BeanDefinition的注册

将BeanDefinition中定义的信息发布到Ioc容器中

  1. 创建Bean实例

当开发者调用getBean方法时Ioc容器会生成一个Bean实例

Ioc(Inverse of Control 控制反转)

也叫依赖注入(Dependency Injection);其中心思想是以配置文件来管理Java实例的协作关系
使用Spring框架时,调用者无需主动获取被依赖对象,调用者只要被动接受Spring容器为调用者的成员变量赋值即可,使用Spring后,调用者获取被依赖对象的方式由原来的主动获取,变成了被动接受——称之为控制反转。
Spring容器负责将被依赖对象赋值给调用者的成员变量——相当于为调用者注入它依赖的实例,因此称之为依赖注入。
Ioc主要基于两个接口:

  1. BeanFactory:

BeanFactory接口是Spring Ioc容器的最底层接口
BeanFactory中的方法

方法 描述
getBean() 用于获取配置给Spring Ioc容器的Bean。参数可以是字符串,也可以是Class类型
isSingleton() 用于判断是否单例。若判断为真,则表示从容器中获取的bean是唯一的。默认是true
isPrototype() 与isSingleton()相反,若为真,容器会生成一个新的实例
  1. ApplicationContext:

ApplicationContext是BeanFactory的子接口。对BeanFactory接口进行了很多有用的扩展,ApplicationContext在绝大部分的工作场景下都使用ApplicationContext Spring IoC容器

Idea整合spring

使用maven的webapp模板创建一个idea项目

在这里插入图片描述

导入使用Spring框架需要的jar包

将Speing版本号放入<properties>内部

 <!--  Spring统一版本号  -->
 <springVersion>5.1.1.RELEASE</springVersion>

在<dependencies>中放入需要的jar包

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值