zoukankan      html  css  js  c++  java
  • 《Spring实战》读书笔记——Spring简介

    欢迎大家关注我的微信公众号,共同交流Java相关技术!

    使用Spring的目的

    Spring是为了解决企业级应用开发的复杂性而创建的,使用Spring可以让简单的JavaBean实现之前只有EJB才能完成的事情。

    Spring如何降低Java开发的复杂性

    • 最小侵入编程
    • 通过面向接口和依赖注入实现松耦合
    • 基于编程惯例和切面进行声明式编程
    • 通过模板减少样板式代码

    Spring容器

    在Spring应用中,不再由对象自行创建或管理它们之间的依赖关系;Spring容器负责创建对象、装配对象、配置它们并管理它们的整个生命周期。

    容器是Spring框架的核心,是依赖注入和切面的基础,其自带了多个容器实现,这多个实现可以归类为两种不同的类型:

    • Bean工厂,提供基本的依赖注入支持
    • ApplicationContext,基于Bean工厂构建,提供应用框架级别的服务

    ApplicationContext在实际的应用中更广泛、更受欢迎。

    应用上下文

    Spring自带了多种类型的应用上下文,其中最常用的几种为:

    • AnnotationConfigApplicationContext:从一个或多个基于Java的配置类中加载Spring上下文
    • AnnotationConfigWebApplicationContext:从一个或多个基于Java的配置类中加载Spring Web应用上下文
    • ClassPathXmlApplicationContext:从类路径下的一个或多个xml配置文件中加载Spring上下文
    • FileSystemXmlApplicationContext:从文件系统下的一个或多个xml配置文件中加载Spring上下文
    • XmlWebApplicationContext:从Web应用下的一个或多个xml配置文件中加载Spring上下文
    Bean的生命周期
    1. Spring实例化Bean
    2. Spring将值和Bean的引用注入到Bean对应属性中
    3. 如果Bean实现了BeanNameAware接口,Spring将Bean的id传给setBeanName()方法
    4. 如果Bean实现了BeanFactoryAware接口,Spring调用setBeanFactor()方法,将BeanFactory实例传入
    5. 如果Bean实现了ApplicationContextAware接口,Spring调用setApplicationContext()方法,将Bean所在的应用上下文传入
    6. 如果Bean实现了BeanPostProcessor接口,Spring调用postProcessBeforeInitialization()方法
    7. 如果Bean实现了InitializingBean接口或使用了init-method声明了初始化方法,Spring调用afterPropertiesSet()方法
    8. 如果Bean实现了BeanPostProcessor接口,Spring调用postProcessAfterInitialization()方法
    9. Bean初始化完毕,可以进行使用,其将一直在应用上下文中驻留,直到该应用上下文销毁
    10. 如果Bean实现了DesposableBean接口或使用了destroy-method声明了销毁方法,Spring将调用destroy()方法

    Spring核心模块

    Spring的模块依据其所属的功能可以划分为6类。

    Spring核心容器
    • core:Spring核心
    • context:Spring容器
    • beans:Spring的Bean工厂
    • expression:Spring表达式语言
    • context-support:Spring容器辅助支撑
    Spring AOP
    • aop:面向切面编程
    • aspectJ:切面注解相关
    数据访问与集成
    • JDBC:数据库访问相关
    • JMS:消息相关
    • ORM:对象关系映射模型相关
    • OXM:XML映射模型相关
    • transaction:事务相关
    • Messaging:消息服务相关
    Web与远程调用
    • Web MVC:Spring提供的MVC框架
    • Web Servlet:Servlet相关
    • WebSocket:Socket编程相关
    Instrumentation

    使用场景有限,暂时不需要了解

    Test

    Spring提供的测试框架

    总结

    本文从总的方向上对Spring相关的内容进行了介绍,并不涉及任何细节的东西。主要涉及Spring的优势、Spring容器、Spring应用上下文、Spring生命周期、Spring项目的模块化。在接下来的文章中,将会通过示例的方式展示Spring每一项功能的使用。

  • 相关阅读:
    最大最小值得判断代码
    等腰三角形的代码及各类代码
    Java ArrayList和Vector、LinkedList与ArrayList、数组(Array)和列表集合(ArrayList)的区别
    Java 集合类的特性
    Java 用程序给出随便大小的10 个数,序号为1-10,按从小到大顺序输出,并输出相应的序号?
    List、Map、Set三个接口,存取元素时,各有什么特点?
    Java 清除数组相同元素
    eclipse导入项目出现叹号处理方法:
    初学者-PHP笔记
    java 对象输入输出流
  • 原文地址:https://www.cnblogs.com/lurker-yaojiang/p/10363584.html
Copyright © 2011-2022 走看看