spring学习之旅(一)

spring学习之旅(一)

spring的意义

  1. 为什么要用spring?
    因为spring可以简化企业级java开发。

  2. 如何简化java开发?

  • 基于POJO的轻量级和最小侵入性的编程。(BOP,spring不会强迫使用者实现spring规范的借口或者继承spring规范的类)
  • 通过依赖注入和接口实现低耦合。(依赖注入,DI,由spring负责协调各对象间的依赖关系;接口,对象通过接口来声明依赖关系,使得这种依赖可以在对象不知情的情况下,用不同的实现来进行替换。)
  • 基于切面和惯例进行声明式编程。(面向切面编程,AOP,将一些系统级服务模块化,并且以声明的方式应用到其他组件中,这些系统服务又被称为横切关注点。AOP有切面、切点、通知等概念)
  • 使用模板消除模板式代码。(spring通过模板封装来消除样板式代码。例如用过JDBCTemplate避免传统的JDBC样式代码)
  1. 关于耦合?
    耦合有两面性:
  • 紧密耦合的代码难以测试、难以复用、难以理解,而且会出现“打地鼠式”的bug特性。
  • 为了完成有实际意义的功能,不同类之间又必须以适当的方式交互——完全没有耦合什么也做不了。
    总而言之,耦合是必须的,但是必须小心谨慎的管理。

Spring 容器

  1. spring容器的作用?
    spring容器是spring框架的核心。
  • 创建Bean
  • 装配Bean
  • 管理Bean的生命周期
  1. spring容器的种类:
  • bean工厂(beanFactory)(提供基本的DI支持)
  • 应用上下文(ApplicationContext)(相对于beanFactory,提供应用框架级的服务)
  1. 应用上下文的种类:
  • AnnotationConfigApplicationContext
  • AnnotationConfigWebApplicationContext
  • ClassPathXmlApplicationContext:在所有的类路径下查找文件
  • FileSystemXmlApplicationContext:从指定的文件系统路径下查找文件
  • XmlWebApplicationContext
  1. bean的生命周期
  • Spring 对bean进行实例化。
  • 将值和bean引用注入到bean对应的属性中。
  • 如果bean实现了BeanNameAware接口,Spring可以将bean的id传递给setBeanName()方法。(让Bean获取自己在BeanFactory配置中的名字。)
  • 如果bean实现了BeanFactoryAware接口,Spring将调用setBeanFactory()方法,将BeanFactory容器实例传入。
  • 如果bean实现了ApplicationContextAware接口,Spring将调用setBeanFactory()方法,将ApplicationContext容器实例传入。
  • 如果bean实现了BeanPostProcessor接口,Spring将调用它们的postProcessBeforeInitialization()方法。
  • 如果bean实现了InitializingBean接口,spring将调用它们的afterPropertiesSet()方法。如果bean使用init-method 声明了初始化方法,那么该方法也会调用。
  • 如果bean实现了BeanPostProcessor接口,Spring将调用它们的postProcessAfterInitialization()方法。
  • 准备就绪,可以被应用程序使用。这些Bean将一直保存在应用上下文中,直到应用上下文被销毁。
  • 如果bean实现了DisposableBean接口,Spring将调用它的destory()接口方法。如果bean使用destory-method声明销毁方法,该方法也会被调用。
  1. 如何在spring运行期间,根据条件动态获得想要的bean?
    解答

Spring模块

Spring模块图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值