a01-1 spring概述(spring实战)

一、Spring的概述

spring的目标是致力于全方位的简化java开发,如何简化?

  • 1、基于pojp的轻量化和最小入侵性编程
  • 2、通过依赖注入和面向接口实现松耦合
  • 3、基于切面和惯例进行声明式编程
  • 4、通过切面和模板减少样板式代码

1、激发pojo的潜能

  • Spring不会强迫实现或继承对应个接口或类
public class HelloBean{
​
    public sayHello(){
        return "hello ";
    }
}

2、通过依赖注入方式松耦合

public class UserDaoImpl implement UserDao{
​
    private UserCrud userCrud;

    public UserDaoImpl(){
        this.userCrud = new UserCrud();
    }

    public void getUser(){
           userCrud.getUser();
    }
}
  • 说明:
  • 在UserDaoImpl的构造函数中创建了一个UserCrud使得UserDaoImpl和UserCrud耦合在一起。
  • 使用Spring的注解以后
public class UserDaoImpl implement UserDao{
​
    @Author
    private UserCrud userCrud;

    public void getUser(){
           userCrud.getUser();
    }
}

二、Bean的生命周期

1、在java中Bean的生命周期比较简单:

  • 1、通过java关键字实例化,
  • 2、bean就可以使用
  • 3、当bean不再被使用由java自动进行垃圾回收

2、在Spring中Bean的生命周期

  • 1、Spring对bean进行实例化
  • 2、Spring将值和Bean的引用注入到Bean对应的属性中
  • 3、如果Bean实现了BeanNameAware接口,Spring将bean的ID传递给setBean-Name()
  • 4、如果bean实现了BeanFactoryAware接口,Spring将调用setBeanFactory()将BeanFactory容器实例传入
  • 5、如果bean实现了ApplicationContextAware接口,Spring将调用setApplicationContext()将Bean所在应用上下文传进来
  • 6、如果bean实现了BeanPostProceessor接口,Spring将调用他们的post-ProcessbeforInitialization()
  • 7、如果Bean实现了InitializingBea接口Spring将调用他们的after-PropertiestSet()
  • 8、如果Bean实现了BeanPostProcessor接口Spring将调用他们的post-ProcessAfterInitialization()
  • 9、此时bean准备就绪,可以被使用,将停留在应用上下文中,直到应用上下文被销毁
  • 10、如果bean实现了DisposableBean接口,Spring将调用它的destory()销毁方法

三、Spring模块

1、数据访问与集成

  • 1、jdbc
  • 2、Transaction
  • 3、ORM
  • 4、OXM
  • 5、Messaging
  • 6、JMS

2、web与远程调用

  • 1、web
  • 2、Web Servlet
  • 3、Web Portlet
  • 4、WebSocket

3、面向切面

  • 对面向切面编程提供支持
  • 1、AOP
  • 2、Aspects

4、Instruction

  • 提供了为JVM添加代理的功能
  • 1、Instrument
  • 2、Instrument Tomcat

5、spring核心容器

  • 是Spring框架的核心部分,管理Spring应用中Bean的创建、配置、管理
  • 1、Beans:
  • 2、Core
  • 3、Context
  • 4、Expression
  • 5、Context support

6、测试

  • Test

猜你喜欢

转载自blog.csdn.net/qq_34231253/article/details/81461336