Spring快速了解

导语

        现在很多企业级的项目都是基于 spring 框架开发的,而这两年很火的微服务概念就有基于 springboot springcloud 等框架,spring 框架解决企业应用的复杂性和耦合性,对于一个Java 程序员来说,要想学习 sprinboot 和 springcloud,掌握 spring 的基础用法是一件必须做的事情。

Spring简介

    Spring 是一个以 IoC (英文 Inversion of Control,控制反转)和 AOP(Aspect Oriented Programming)为内核的框架,那么啥是 IoC?AOP 又是个什么鬼?

什么是 IoC?

IOC即控制反转,通常我们在项目当中需要手动new去创建对象,这种方式不利对对象的管理,现在我们将对象的创建权利反转给spring容器,这就是控制反转。

什么是 DI?

DI(Dependency  Inject)即依赖注入,spring容器在实例化对象的时候,会根据对象之间的依赖关系,自动完成属性注入工作,这就是依赖注入。

什么是 AOP?

AOP即面向切面编程,底层是通 过动态代理的机制来实现的,支持jdk和cglib两种。

默认通过jdk动态代理。通常我们在项目当中,一些公共功能的实现可以通过aop来进行解耦和统一实现,比如事务管理、日志、权限等等。

Spring的核心容器 

spring 框架提供了两个最基本最重要的包org.springframework.beans.factoryorg.springframework.context。前者的主要接口是 BeanFactory,后者的主要接口是ApplicationFactory。

IoC 框架的主要组件有 Beans、配置文件 applicationcontext.xml、Beanfactory 接口和相关类、ApplicationContext 接口和相关类。

Beans 是项目中为业务提供功能的 Bean,就是容器要管理的 Bean,也就是我们场景的 JavaBean、Java 类。

BeanFactory 使用工厂模式,负责读取 Bean 的配置文件,管理对象的生命周期和依赖关系,包括创建、加载和维护等。

org.springframework.beans.Factory.BeanFactory 是 BeanFactory 的顶级实现类。它会根据配置文件中的定义装载 Bean。Beanfactory 的常用方法有:

getBea(String name) ,可根据 Bean 的 id 生成 Bean 对象。

getBean(String name,Class type) ,可根据 Bean 的 id 和响应类生成 Bean 的对象。

ApplicationContext 接口提供了高级功能的容器,基本与BeanFactory 一致,不同之处是:

提供访问资源更方便。

支持国际化消息。

提供文件消息解析的方法。

可以发布事件。

ApplicationContext 接口实现类有:

FileSystemXmlApplicationContext,从文件使用绝对路径引入 xml 文件加载上下文。

ClassPathXmlApplicationContext,从类路径的 XML 中加载上下文。

XmlWebApplicationContext,从 Web 系统中的 XML 加载上下文。

你可能感兴趣的:(Spring快速了解)