spring实战笔记一

1、是什么?

  Spring是一个开源的框架,是为了解决企业级应用开发的复杂性而创建的。

    简而言之,Spring是为简化Java开发而创建的。

2、如何简化开发?

  为了降低java开发的复杂性,Spring采用了4中关键策略。

    ①基于POJO的轻量级和最小侵入性编程

    ②通过依赖注入和面向接口实现松耦合

    ③基于切面和惯例进行声明式编程

    ④通过切面和模板减少样板式代码

3、bean的生命周期

   在传统的java应用中,bean的生命周期很简单。new关键字实例化,不用时被自动回收。

   但在Spring容器中的bean的生命周期显得相对复杂。正确理解Spring bean的生命周期非常重要。

  

    上图为bean在Spring容器中创建的若干阶段,每一个阶段都可以针对Spring如何管理bean进行个性化定制。

    上述过程的具体描述:

    ①Spring对bean进行实例化

    ②Spring将值和bean的引用注入到bean对应的属性中

    ③如果实现了BeanNameAware接口,Spring会将bean的ID传递给setBeanName()方法

    ④如果实现了BeanFactoryAware接口,Spring会调用setBeanFactory方,将BeanFactory容器实例传入

    ⑤如果实现了ApplicationContextAware接口,Spring会调用setApplicationContext方法,将bean所在的上

  下文引入进来

    ⑥如果实现了BeanPostProcessor接口,Spring会调用它的postProcessBeforeInitialization方法。

    ⑦如果实现了InitializingBean接口,Spring会调用它的afterPropertiesSet方法。

    ⑧如果实现了BeanPostProcessor接口,Spring会调用它的postProcessAfterInitialization方法。

    ⑨bean准备就绪

4、Spring组成

    

时间: 2024-10-27 12:04:51

spring实战笔记一的相关文章

Spring实战笔记2---Bean的装配

创建应用对象之间协作关系的行为通常成为装配,该篇的主要内容有两个,一个Spring装配Bean的几种方式以及Spring表达式,其实这两者是分不开的,在Spring中,对象无需自己负责查找或者创建与其关联的其他对象,相反容器负责把需要相互协作的对象一引用赋予各个对象,目前我们先说声明式的装配,注解式的装配等溜到下篇再详细记录,在声明用的xml配置文件中,可以使用表达式来完成一些简单的逻辑处理,和方法调用或者对象引用,在有些特殊的需求当中非它莫属,首先是装配Bean 声明Bean <bean id

Spring实战笔记二

一.Spring配置的方式 spring容器用来创建应用程序中的bean,并通过DI来协调这些对象间的关系. 在bean进行装配时,spring提供了三种主要的装配机制. ①在XML中进行显式配置 ②在Java中进行显式配置 ③隐式的bean发现机制和自动装配 二.自动化装配bean 1.spring从两个角度来实现自动化装配 ①组件扫描(component scanning):Spring会自动发现应用上下文中所创建的bean ②自动装配(autowiring):Spring自动满足bean之

Spring实战笔记3---使用表达式

如果用过jsp表达式的人见到Spring表达是,第一反应一定会是:奥,原来是它呀(应该有不同的版本).Spring表达式和jsp的表达式是大同小异,只要之前接触过jsp表达式,那么学习Spring的表达式那就是非常容易的事情了. 首先来说一下Spring表达式的一些特性,也可以说成是一些用法: *使用Bean的id来引用Bean: *调用方法和访问对象的属性: *对值进行算数.关系和逻辑运算: *正则表达式匹配 *集合操作 Spring表达式(SpEL)使用#()来标记的(jsp是使用$()),

Spring实战笔记4---Spring的自定装配与自动检测

Spring的自动装配与自动检测是为了最小化Spring XML配置,如果我们有很多的Bean要装配到spring 容器中,那么我们的配置文件将会看起来很长很长,让人觉得头晕,适当的使用自动装配与自动检测,将有助于缓解以上提到的问题 *自动装配:(autowiring) 有助于减少甚至消除配置<property>元素和<constructor-arg>元素,让Spring自动识别如何装配Bean的依赖关系. *自动检测:(autodiscovery) 比自动装配更进一步,让Spri

spring实战笔记6---springMVC的请求过程

之前有一次在面试当中被问到了这个问题,当时说得不是很清楚,有些细节的地方想不起来了,所以在这里从新回顾和总结一下SpringMVC的起步,请求的执行过程. 在SpringMVC当中,跟请求(Request)有关系的有以下几个部分 DispatcherServlet HandlerMapping Controller ViewResolver View 其实我要做的就是用几个剪头把上边列表中的五个部分连起来,这样就可以清晰的看出来请求是怎样走的了. 首先请求从浏览器发送出来到了服务器,我用的是To

Spring实战笔记5---事务管理

事务管理(事务管理的规则式,在提交之前,如果修改数据库的话会真是改变,但是会留一个缓存,在事务出现错误的时候,会根据事务的配置做相应的回滚操作,在回滚操作式把还从当中的数据和数据库的数据做同步,修改数据库的操作不会发生在提交的时刻,估计是为了效率考虑的) 在软件开发领域,全有或者全无的操作被称为事务 用四个词来表示事务: 原子性 一致性 隔离性 持久性(事务完成,结果将会持久话,多半会涉及到数据库操作) 理解spring对事务管理的支持 spring通过回调机制将实际的事务实现从事务性代码中分离

Spring实战笔记:Spring核心(二)

spring core 面向切面的Spring 1.AOP:面向切面编程 在OOP中模块化的关键单元是类(classes),而在AOP中模块化的单元则是切面. AOP框架是Spring的一个重要组成部分.但是Spring IoC容器并不依赖于AOP,这意味着你有权利选择是否使用AOP,AOP做为Spring IoC容器的一个补充,使它成为一个强大的中间件解决方案. AOP在Spring Framework中的作用 提供声明式企业服务,特别是为了替代EJB声明式服务.最重要的服务是声明性事务管理.

Spring实战笔记:Spring集成

一.使用远程服务 远程调用是客户端应用和服务端之间的会话. 1.Spring通过多种远程调用技术支持RPC(remote procedure call,远程过程调用) RPC模型 使用场景 RMI 不考虑网络限制时(例如防火墙),访问/发布基于Java的服务 Hessian 或 Burlap 考虑网络限制时,通过HTTP访问/发布基于Java的服务.Hessian是二进制协议,而Burlap是基于XML的 HTTP invoker 考虑网络限制,并希望使用基于XML或专有的序列化机制实现Java

《Spring实战》读书笔记--使用SpringMVC构建REST API

<Spring实战>读书笔记--使用SpringMVC构建REST API 1. REST介绍 REST(Representational State Transfer):表述性状态转移,是基于HTTP.URI.MIME(HTML.JSON等)协议的Web软件架构.它不同于SOAP Web服务(RPC)关注处理,面向行为,其更关注要处理的数据,面向资源. 1.1 <Spring实战>中是这样描述REST的: 为了理解REST是什么,我们将它的首字母缩写才拆分为不同的构成部分: 表述