Spring基础知识

  1. Spring 框架是Java应用最广的框架,优秀理念:IoC(Inversion of Control,控制反转),AOP(Aspect Orientend Programming,面向切面编程)。
  2. Maven 是一个项目管理和综合工具。Maven 提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven 使用标准的目录结构和默认构建生命周期。
    在多个开发团队环境时,Maven 可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven 让开发人员的工作更轻松,同时能够创建报表,检查、构建和测试自动化设置。
    Maven 简化和标准化项目建设过程,处理编译,分配,文档,团队协作和其他任务的无缝连接。 Maven 增加可重用性并负责建立相关的任务。
  3. 控制反转IOC(Inversion of Control ),在 Java 开发中, Ioc 意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。
    Bean理解,IoC理解
  4. Spring Bean 的生命周期,下面以BeanFactory为例,说明一个Bean的生命周期活动
    Bean的建立, 由BeanFactory读取Bean定义文件,并生成各个实例
    Setter注入,执行Bean的属性依赖注入
    BeanNameAware的setBeanName(), 如果实现该接口,则执行其setBeanName方法
    BeanFactoryAware的setBeanFactory(),如果实现该接口,则执行其setBeanFactory方法
    BeanPostProcessor的processBeforeInitialization(),如果有关联的processor,则在Bean初始化之前都会执行这个实例的processBeforeInitialization()方法
    InitializingBean的afterPropertiesSet(),如果实现了该接口,则执行其afterPropertiesSet()方法
    Bean定义文件中定义init-method
    BeanPostProcessors的processAfterInitialization(),如果有关联的processor,则在Bean初始化之前都会执行这个实例的processAfterInitialization()方法
    DisposableBean的destroy(),在容器关闭时,如果Bean类实现了该接口,则执行它的destroy()方法 -Bean定义文件中定义destroy-method,在容器关闭时,可以在Bean定义文件中使用“destory-method”定义的方法
  5. 自动注解注释类型,自动扫描组件的注释类型有 4 种注释类型,分别是:
    @Component ——表示一个自动扫描 component
    @Repository ——表示持久化层的 DAO component
    @Service ——表示业务逻辑层的 Service component
    @Controller ——表示表示层的 Controller component
    所谓自动装配,就是将一个 Bean 注入到其他 Bean 的 Property 中
    Spring 支持 5 种自动装配模式,如下:
    no —— 默认情况下,不自动装配,通过 ref attribute 手动设定。
    byName —— 根据 Property 的 Name 自动装配,如果一个 bean 的 name ,和另一个 bean 中的 Property 的 name 相同,则自动装配这个 bean 到 Property 中。
    byType —— 根据 Property 的数据类型( Type )自动装配,如果一个 bean 的数据类型,兼容另一个 bean 中 Property 的数据类型,则自动装配。
    constructor —— 根据构造函数参数的数据类型,进行 byType 模式的自动装配。
    autodetect —— 如果发现默认的构造函数,用 constructor 模式,否则,用 byType 模式。
  6. Spring 框架中基于注解的配置
    @Required :确保特定属性已经设置但不是所有属性
    @Autowired: 可以用来装配 bean,可以写在字段上,或者方法上
    @Qualifier:可以帮助你指定做更详细配置。一般在两个或者多个 bean 是相同的类型,spring 在注入的时候会出现混乱
    基于 Java 的配置:定义一个配置类,用@Configuration 注解该类,等价于 XML 里的 beans,用@Bean 注解方法,等价于 XML 配置的 bean,方法名等于 bean Id,写在SpringConfig.class文件中
  7. Spring AOP 即 Aspect-oriented programming,面向切面编程,是作为面向对象编程的一种补充,专门用于处理系统中分布于各个模块(不同方法)中的交叉关注点的问题。简单地说,就是一个拦截器( interceptor )拦截一些处理过程。
    例如,当一 个 method 被执行,Spring AOP 能够劫持正在运行的 method ,在 method 执行前或者后加入一些额外的功能。
    在 Spring AOP 中,支持 4 种类型的通知( Advice ):
    Before advice - method 执行前通知
    After returning advice - method 返回一个结果后通知
    After throwing advice - method 抛出异常后通知
    Around advice - 环绕通知,结合了以上三种
  8. Spring 框架核心的思想就是建立一个 Java 对象的大工厂,用户只要给工厂一个指令,工厂就能将用户需要的对象根据配置文件组装好返还给用户。用户需要做的许多工作则可以写成简单的配置文件。传统的使用 JDBC 的方法,有时候需要组合复杂的的 SQL 语句,还需要去拼接,稍不注意什么空格,引号;都会导致错误。Spring Jdbc Template 正是为了减少上述的麻烦而设计出来的。它是对 JDBC 的一种封装,抽象我们常用的一些方法。Simple and Stupid 就是它的目标。

你可能感兴趣的:(Java,java)