关于Spring的简述
简化java开发
关键策略点 1.基于POJO的轻量级和最小侵入性编程 2.通过依赖注入和面向接口实现松耦合
紧耦合
private RescueDamseQuest quest;
public DamselRecuingKight(){
this.quest = new RescueDamseQuest();
}
松耦合
private Quest quest;
public DamselRecuingKight(Quest quest){
this.quest = quest;
}
这种就是构造注入
在spring中,通过xml配置或者java配置实现依赖注入 3.基于切面和惯例进行声明式编程
public BraveKnight(Quest quest, Minstrel minstrel){
...
}
public void embarkOnQuest(){
minstrel.singBeforeQuest();
quest.embark();
minstrel.singAfterQuest();
}
可见,管理Minstrel其实并不是Knight的职责,并且如果以后需要一个不需要Minstrel的Knight,代码复杂度过高
将Minstrel声明为一个切片可以免去这些繁琐的代码
4.通过切面和模板减少样板式代码
容纳bean
容器时spring框架的核心,使用DI管理构成应用的组件,创建相互协作的组件关联 spring容器归为: bean工厂:最简单的容器,提供DI支持 应用上下文:基于BeanFactory构建,提供框架级别的服务
-
应用上下文 AnnotationConfigApplicationContext:从一个或多个基于Java的配置类中加载Spring应用上下文。 AnnotationConfigWebApplicationContext:从一个或多个基于Java的配置类中加载Spring Web应用上下文。 ClassPathXmlApplicationContext:从类路径下的一个或多个XML配置文件中加载上下文定义,把应用上下文的定义文件作为类资源。 FileSystemXmlapplicationcontext:从文件系统下的一个或多个XML配置文件中加载上下文定义。 XmlWebApplicationContext:从Web应用下的一个或多个XML配置文件中加载上下文定义
-
bean生命周期
Spring模块
Spring核心容器 容器是Spring框架最核心的部分,它管理着Spring应用中bean的创建、配置和管理。在该模块中,包括了Spring bean工厂,它为Spring提供了DI的功能。基于bean工厂,我们还会发现有多种Spring应用上下文的实现,每一种都提供了配置Spring的不同方式 Spring的AOP模块 在AOP模块中,Spring对面向切面编程提供了丰富的支持。这个模块是Spring应用系统中开发切面的基础。 数据访问与集成 Web与远程调用
