spring 组建及核心内容的简介(一)

来源:互联网 发布:淘宝差评有什么后果 编辑:程序博客网 时间:2024/05/16 02:07

一:为了降低java开发的复杂性,spring采取了以下四种关键策略,sping所做的任何事情都会追溯到下述的一条或者多条策略
①:基于POJO的轻量级和最小侵入性编程
②:通过依赖注入和面向接口实现松耦合
③:基于切面和惯例进行声明式编程
④:通过切面和模板减少样板式编程
二:耦合:耦合具有双面性,耦合是必须的,但应当被小心谨慎的管理
坏处:一方面,紧密耦合的代码难以测试,难以复用,难以理解.
好处:一定程度的耦合又是必须的,完全没有耦合的代码什么也干不了
高度耦合代码坏处:
(1)维护麻烦
(2) 不容易进行代码测试
这里写图片描述

弱耦合的代码好处:
(1)如果一个对象只通过接口而不是具体的实现或者初始化过程来表明依赖关系,那么这种依赖就能够在对象本身毫不知情的情况下,用不同的具体实现进行替换.
(2)测试起来方便
好处

三:依赖注入(DI)
①:好处: 代码变得异常简单并且更容易测试和理解
②:作用:通过DI,对象的依赖关系将由系统中负责协调各个对象的第三方组件在创建对象的时候进行设定,
对象无需自行创建或者管理他们的依赖关系,通过DI的最大收益就是解耦合
③:注入方式 构造器注入(constructor injection)
四:装配 创建组件之间相互协作的行为被称为装配
①:装配方式 xml是常见的装配方式
这里写图片描述
②:spring还支持使用java来配置,替代XML配置
这里写图片描述

五:应用切面
①:DI能够让相互协作的软件组织保持松散耦合,而面向切面编程允许你把遍布应用各处的功能分离出来形成可重用的组件
②:作用 可以将关注点与业务核心代码分离.例如 日志 安全 事务

六:使用模板消除样板式代码
常用的样板式代码是使用JDBC访问数据库查询数据

七:容器 在spring应用中,对象生存于spring容器中,spring容器负责创建对象,装配他们,配置管理他们的整个生命周期,从生存到死亡.容器是spring的核心,spring容器使用DI管理构成的应用组件,创建相互协作的关联
①:spring容器并不只有一个,spring自带了多个容器的实现,可以归纳为2大类.
(1)bean工厂是最简单的容器,提供基本的DI支持.
(2)应用上下文基于BeanFactory构建,并提供了应用框架级别的服务,例如从属性文件解析文本信息以及发布应用事件给感兴趣的事件监听者

②:spring通过应用上下文(Application Context)装载bean的定义并把他们组装起来.spring应用上线文全权负责对象的组装与创建.spring自带了多种应用上下文的实现,他们的区别主要在于如何加载配置

  1. AnnotationConfigApplicationContext:从一个或者多个基于Java的配置类中加载Spring应用上下文
  2. AnnotationConfigWebApplicationContext:从一个或者多个基于Java的配置类中加载spring web应用上线文
  3. ClassPathXmlApplicationContext:从类路径下的一个或者多个XML配置文件中加载上下文定义,把应用上下文的定义文件作为类资源
  4. FileSystemXmlapplicationcontext:从文件系统下的一个或者多个xml配置文件中加载上下文定义
  5. XmlWebApplicationContext:从web应用下的一个或多个XML配置文件中加载上下文定义
    这里写图片描述

八:bean的生命周期

  1. spring对bean进行实例化 –实例化
  2. spring将值和bean的引用注入到bean对应的属性中 –填充属性
  3. 如果bean实现了BeanNameAware接口,spring将bean的id传递给setBeanName()的方法 –调用setBeanName()
  4. 如果bean实现了BeanFactoryAware接口,Spirng将调用setBeanFactory()方法,将beanFactory容器实例传入
  5. 如果bean实现了ApplicationContextAware接口,spring将调用setApplicationContext()方法,将bean所在的应用上下文的引用引入进来
  6. 如果bean实现了BeanPostProcessor接口,spring将调用它们的postProcessBeforeInitialization()方法
  7. 如果bean实现了InitializingBean接口,spring将调用它们的afterPropertiesSet()方法,类似的如果bean使用了init-method声明了初始化防范,该方法也会被调用
  8. 如果bean实现了BeanPostProcessor接口,spring将调用它们的postProcessAfterInitialization()方法
  9. 此时,bean准备就绪,可以被应用程序使用了,它们将一直驻留在应用上下文中,知道该应用上下文销毁
  10. 如果bean实现了DisposableBean接口,spring将调用它们的destory()接口方法,同样如果bean使用了destroy-method声明了销毁方法,该方法也会被调用
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 婴儿两腿纹不对称怎么办 小阴唇被扯长怎么办 演唱会下雨了怎么办 头发不易干怎么办 吸入银粉怎么办? 吸入金属粉尘怎么办 吸到肺里的粉尘怎么办 珍珠孔里线塞了怎么办 高考字写错了怎么办 教育孩子生气该怎么办 仰慕老师怎么办 小孩生下来不哭怎么办 小便不利应该怎么办 说脏话不由自主怎么办 石膏板吊顶开裂怎么办 微信点不开图片怎么办 黄花菜叶子发黄怎么办 手上起小痘痘怎么办 阴茎上长小红豆怎么办 黄金过敏怎么办 带黄金过敏怎么办 小鸡弱雏怎么办 对黄金过敏怎么办 海棠花瓣干枯怎么办 海棠树干枯怎么办 五行属火缺金怎么办 唯品会的满减是怎么办 电脑鼠标变大怎么办 c4d卡了怎么办 源文件找不到了怎么办 溶豆稀了怎么办 过期母乳怎么办 母乳太多怎么办 奶多怎么办 母乳太多涨奶痛怎么办 突然没奶怎么办 手工皂软怎么办 孕妇奶水不足怎么办 母乳很淡怎么办 玫瑰花不长怎么办 玫瑰花花苞枯萎怎么办