Spring框架基础

Spring是一个开源框架,它是为了解决企业开发的难度,减轻对项目模块之间的管理,类和类之间的管理, 帮助开发人员创建对象,管理对象之间的关系。Spring是可以在Java SE/EE 中使用的轻量级开源框架,是IOC(DI)和AOP容器框架。

Spring三大核心:
IOC(Inversion of Control)、DI(Dependency Injection)、AOP (Aspect Oriented Programming)。能实现模块之间,类之间的解耦合。

IOC(Inversion of Control)控制反转:
描述的:把对象的创建,赋值,管理工作都交给代码之外的容器实现, 也就是把对象的创建都是给了 Spring框架。
DI(Dependency Injection)依赖注入:
是指依赖的对象不需要手动调用setXX方法去设置,而 是通过配置赋值。

Spring Bean的XML配置 作为 Spring 核心机制的依赖注入,改变了传统的编程习惯,对组件的实例化不再由应用程序完成,转而交由 Spring 容器完成,在需要时注入应用程序中,从而对组件之间依赖关系进行了解耦。这一切都离不开 Spring 配置文件中使用的元素。
Spring 容器可以被看作一个大工厂,而 Spring 容器中的 Bean 就相当于该工厂的产品。如果希望 这个大工厂能够生产和管理 Bean,这时则需要告诉容器需要哪些 Bean,以及需要以何种方式将这些 Bean 装配到一起

spring 注解配置Bean 在 Spring 中,尽管使用 XML 配置文件可以实现 Bean 的装配工作,但如果应用中 Bean 的数量较多, 会导致 XML 配置文件过于臃肿,从而给维护和升级带来一定的困难 Java 从 JDK 5.0 以后,提供了 Annotation(注解)功能,Spring 也提供了对 Annotation 技术的全面 支持。

Spring核心注解

  1. @component (把普通pojo实例化到spring容器中)
    可以使用此注解描述 Spring 中的 Bean,但它是一个泛化的概念,仅仅表示一个组件(Bean),并且 可以作用在任何层次。
  2. @Repository 持久层(dao层) 用于对 DAO 实现类进行注解
    可以按名称匹配Bean,也可以按类型匹配 Bean。默认是按名称注入。
    @Resource 中有两个重要属性:name 和 type。
  3. @Service 服务层(service层) 用于对 Service 实现类进行注解
    通常作用在业务层(Service 层),用于将业务层的类标识为 Spring 中的 Bean,其功能与 @Component 相同。
  4. @Controller 控制层 用于对 Controller 实现类进行注解
    通常作用在控制层,用于将控制层的类标识为 Spring 中的 Bean,其功能与 @Component 相同。
  5. @Autowired (IOC自动装配,默认按照类型)
  6. @Resource (IOC自动装配,默认按照名称,再按类型)
  7. @Value 给属性赋值

AOP (Aspect Oriented Programming)面向切面编程:
面向切面编程,可通过运行期动态代理实现程序功能的统一维护的一种技术。AOP 是 Spring 框架中的一个重要内容。利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

Spring AOP常用的:
Aspect(切面):
表示增强的功能
连接点(JoinPoint):
连接点指可以被切面织入的具体方法。通常业务接口中的方法均为连接点。
指那些被拦截到的点,在 Spring 中,可以被动态代理拦截目标类的方 法。

Pointcut(切入点):
切入点指声明的一个或多个连接点的集合。通过切入点指定一组方法。
被标记为 final 的方法是不能作为连接点与切入点的。因为最终的是不能被修改的,不能被增强的。

Advice(通知):
指拦截到 Joinpoint 之后要做的事情,即对切入点增强的内容。
通知表示切面的执行时间,Advice 也叫增强。换个角度来说,通知定义了增强代码切入到目标代码的时间点,是目标方法执行之前执行,还是之后执行等。通知类型不同,切入时间不同。切入点定义切入的位置,通知定义切入的时间。

Target(目标):
给哪个类的方法增加功能, 这个类就是目标对象。

你可能感兴趣的:(Spring框架基础)