SpringInAction第一章学习笔记:Spring简介

本文深入解析Spring框架的核心功能,包括依赖注入、面向切面编程、模块介绍及bean生命周期管理。探讨了Spring如何通过DI和AOP提升应用组件的松耦合性和可重用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一章:spring之旅

1.1、简化java开发
1、很多框架通过强迫应用继承提供的类或者实现接口从而导致应用与框架绑死。spring通过DI来装配pojo,保持应用对象之间的松散耦合。

2、依赖注入:通过DI,对象的依赖关系将由系统中负责协调各对象的第三方组件在创建对象的时候进行设定。

3、依赖注入的方式:
·使用属性的setter方法注入 ,这是最常用的方式;(bean声明时编写标签)
·使用构造器注入; (bean声明时编写标签)
·使用Filed注入(用于注解方式)。 (在类属性值上面用@Resource)

4、mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。

5、属性装配的方式:XML 和 java配置。
Spring通过应用上下文(Application Context)装载bean的定义并把它们组装起来。
XML装配方式以及两种DI的方式:
在这里插入图片描述
通过applicationContext装载bean:
在这里插入图片描述
6、面向切面编程:DI能够让相互协作的软件组件保持松耦合,而面向切面编程(AOP)允许把遍布应用各处的功能分离出来形成可重用的组件。在日志、事务管理、安全等服务经常融入到核心业务逻辑中。AOP可以使服务模块化,以声明的方式将它们应用到它们需要影响的组件中。组件内部有更高的内聚性,更加关注自身的业务。
在这里插入图片描述
编写一个切面类TestAOP,有两个方法beforeMethod和afterMethod,对drive()方法进行切面输出。

1.2 Spring容器
1、容器是Spring框架的核心。Spring容器使用DI管理构成应用的组件,创建相互协作的组件之间的关联。Spring容器不止一个,分为两种不同的类型:
bean工厂(org.springframework.beans.factory.beanFactory),简单容器,提供基本的DI支持。
应用上下文(org.springframework.context.ApplicationContext),基于BeanFactory构建,提供应用框架级别的服务。一般使用ApplicationContext。
2、使用ApplicationContext,Spring自带多种类型的应用上下文:
(1)AnnotationConfigApplicationContext:从一个或多个基于Java的配置类中加载Spring应用上下文。(类)
(2)AnnotationConfigWebApplicationContext:从一个或多个基于Java的配置类中加载SpringWeb应用上下文。(类)
(3)ClassPathXmlApplicationContext:从类路径下的一个或多个XML 配置文件中加载上下文定义,把应用上下文的定义文件作为类资源。(classpath)
(4)FileSystemXmlapplicationcontext:从文件系统下的一个或多个XML配置文件中加载上下文定义。(磁盘中)
(5)XmlWebApplicationContext:从Web应用下的一个或多个XML配置文件中加载上下文定义。

3、bean的生命周期
bean在spring容器中创建到销毁的过程。
在这里插入图片描述
1、Spring对bean进行实例化
2、Spring将值和bean的引用注入到bean对应的属性中。
3、如果bean实现了BeanNameAware接口,Spring将bean的ID传递给setBeanName()方法
4、如果bean实现了BeanFactoryAware接口,Spring将调用setBeanFactory()方法,将BeanFactory容器实例传入。
5、如果bean实现了ApplicationContextAware接口,Spring将调用setApplicationContext()方法将bean所在的应用上下文的应用传入进来。
6、如果bean实现了BeanPostProcessor接口,Spring将调用它们的postProcessBeforeInitialization()方法
7、如果bean实现了InitializingBean接口,Spring将调用afterPropertiesSet()方法。
8、如果bean实现了BeanPostProcessor接口,Spring将调用postProcessAfterInitialization()方法
9、bean可以使用,驻留在应用上下文中,直到应用上下文被销毁。
10、销毁时,如果bean实现了DisposableBean接口,调用destroy()接口方法。

1.3Spring模块
在这里插入图片描述
核心容器(Spring Core)
  核心容器提供Spring框架的基本功能。Spring以bean的方式组织和管理Java应用中的各个组件及其关系。Spring使用BeanFactory来产生和管理Bean,它是工厂模式的实现。BeanFactory使用控制反转(IoC)模式将应用的配置和依赖性规范与实际的应用程序代码分开。
应用上下文(Spring Context)
  Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,如JNDI、EJB、电子邮件、国际化、校验和调度功能。
Spring面向切面编程(Spring AOP)
  通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring框架中。所以,可以很容易地使 Spring框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。
JDBC和DAO模块(Spring DAO)
  JDBC、DAO的抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理,和不同数据库供应商所抛出的错误信息。异常层次结构简化了错误处理,并且极大的降低了需要编写的代码数量,比如打开和关闭链接。
对象实体映射(Spring ORM)
  Spring框架插入了若干个ORM框架,从而提供了ORM对象的关系工具,其中包括了Hibernate、JDO和 IBatis SQL Map等,所有这些都遵从Spring的通用事物和DAO异常层次结构。
Web模块(Spring Web)
  Web上下文模块建立在应用程序上下文模块之上,为基于web的应用程序提供了上下文。所以Spring框架支持与Struts集成,web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
MVC模块(Spring Web MVC)
  MVC框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的。MVC容纳了大量视图技术,其中包括JSP、POI等,模型来有JavaBean来构成,存放于m当中,而视图是一个街口,负责实现模型,控制器表示逻辑代码,由c的事情。Spring框架的功能可以用在任何J2EE服务器当中,大多数功能也适用于不受管理的环境。Spring的核心要点就是支持不绑定到特定J2EE服务的可重用业务和数据的访问的对象,毫无疑问这样的对象可以在不同的J2EE环境,独立应用程序和测试环境之间重用。

目录 第一部分spring的核心 第1章开始spring之旅 1.1spring是什么 1.2开始spring之旅 1.3理解依赖注入 1.3.1依赖注入 1.3.2di应用 1.3.3企业级应用中的依赖注入 1.4应用aop 1.4.1aop介绍 1.4.2aop使用 1.5小结 第2章基本bean装配 2.1容纳你的bean 2.1.1beanfactory介绍 2.1.2使用应用上下文 2.1.3bean的生命 2.2创建bean 2.2.1声明一个简单的bean 2.2.2通过构造函数注入 2.3注入bean属性 2.3.1注入简单的数值 2.3.2使用其他的bean 2.3.3装配集合 2.3.4装配空值 2.4自动装配 2.4.1四种自动装配类型 2.4.2混合使用自动和手动装配 2.4.3何时采用自动装配 2.5控制bean创建 2.5.1bean范围化 2.5.2利用工厂方法来创建bean 2.5.3初始化和销毁bean 2.6小结 第3章高级bean装配 3.1声明父bean和子bean 3.1.1抽象基bean类型 3.1.2抽象共同属性 3.2方法注入 3.2.1基本的方法替换 3.2.2获取器注入 3.3注入非springbean 3.4注册自定义属性编辑器 3.5使用spring的特殊bean 3.5.1后处理bean 3.5.2bean工厂的后处理 3.5.3配置属性的外在化 3.5.4提取文本消息 3.5.5程序事件的解耦 3.5.6让bean了解容器 3.6脚本化的bean 3.6.1给椰子上lime 3.6.2脚本化bean 3.6.3注入脚本化bean的属性 3.6.4刷新脚本化bean 3.6.5编写内嵌的脚本化bean 3.7小结 第4章通知bean 4.1aop简介 4.1.1定义aop术语 4.1.2spring对aop的支持 4.2创建典型的spring切面 4.2.1创建通知 4.2.2定义切点和通知者 4.2.3使用proxyfactorybean 4.3自动代理 4.3.1为spring切面创建自动代理 4.3.2自动代理@aspectj切面 4.4定义纯粹的pojo切面 4.5注入aspectj切面 4.6小结 第二部分企业spring 第5章使用数据库 5.1spring的数据访问哲学 5.1.1了解spring数据访问的异常体系 5.1.2数据访问的模板化 5.1.3使用dao支持类 5.2配置数据源 5.2.1使用jndi数据源 5.2.2使用数据源连接池 5.2.3基于jdbc驱动的数据源 5.3在spring里使用jdbc 5.3.1处理失控的jdbc代码 5.3.2使用jdbc模板 5.3.3使用spring对jdbc的dao支持类 5.4在spring里集成hibernate 5.4.1选择hibernate的版本 5.4.2使用hibernate模板 5.4.3建立基于hibernate的dao 5.4.4使用hibernate3上下文会话 5.5spring和java持久api 5.5.1使用jpa模板 5.5.2创建一个实体管理器工厂 5.5.3建立使用jpa的dao 5.6spring和ibatis 5.6.1配置ibatis客户模板 5.6.2建立基于ibatis的dao 5.7缓存 5.7.1配置缓存方案 5.7.2缓存的代理bean 5.7.3注解驱动的缓存 5.8小结 第6章事务管理 6.1理解事务 6.1.1仅用4个词解释事务 6.1.2理解spring对事务管理的支持 6.2选择事务管理器 6.2.1jdbc事务 6.2.2hibernate事务 6.2.3jpa事务 6.2.4jdo事务 6.2.5jta事务 6.3在spring中编写事务 6.4声明式事务 6.4.1定义事务参数 6.4.2代理事务 6.4.3在spring2.0里声明事务 6.4.4定义注释驱动事务 6.5小结 第7章保护spring 7.1springsecurity介绍 7.2验证用户身份 7.2.1配置providermanager 7.2.2根据数据库验证身份 7.2.3根据ldap仓库进行身份验证 7.3控制访问 7.3.1访问决策投票 7.3.2决定如何投票 7.3.3处理投票弃权 7.4保护web应用程序 7.4.1代理springsecurity的过滤器 7.4.2处理安全上下文 7.4.3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值