一.spring容器组成
1.spring ORM:对象/关系映射,可使用声明式事物管理.(ibatis,hibernate,jdo,jpa,toplink等框架的支持).主要是对数据库操作管理。
2.spring WEB:提供了基础的针对web开发的集成特性(jsp,html,js,css等)。
3.spring DAO:提供了JDBC的抽象层,消除冗长的JDBC编码和解析数据库特有的错误代码。并且还提供了更好的声明性事物管理方法,对所有的pojos都适用。
4.spring Context:对bean工作的扩展,比如对EJB,JMX,JNDI,validation,Remoting,scheduling等扩展插件的支持
5.spring AOP:
(1)切面(Aspect)是主要是把系统模块化,便于解耦;
(2)连接点(joinPoint)主要是把每个切面进行连接;
(3)通知(Advice)通过每个切面的实现情况通知应用系统;
(4)切入点(pointCut)主要是具体的连接点(类名,方法名);
(5)引入(introduction)主要是为已有类进行新方法属性的配置,而不需要改变现有类;
(6)代理(Proxy)主要是通知应用到目标对象对应的创建对象;
(7)织入(Weaving)把切面植入到目标对象,实现一个新的代理过程。
6.Spring Core:提供了IOC和依赖注入特征(BeanFactory)。IOC控制反转,主要是把你设计好的类通过系统控制,而不是类内部控制。依赖注入:创建调用者由spring容器完成,然后在注入给调用者。
7.Spring WebMVC:提供了MVC框架的实现,提供了一种清晰的分离模式,还可以借助spring框架的其他特性。
附加:Spring 实现AOP是依赖JDK动态代理和CGLIB代理实现的。
以下是JDK动态代理和CGLIB代理简单介绍
JDK动态代理:其代理对象必须是某个接口的实现,它是通过在运行期间创建一个接口的实现类来完成对目标对象的代理。
CGLIB代理:实现原理类似于JDK动态代理,只是它在运行期间生成的代理对象是针对目标类扩展的子类。CGLIB是高效的代码生成包,底层是依靠ASM(开源的java字节码编辑类库)操作字节码实现的,性能比JDK强
二.
1.容器bean的生命周期
bean建立,初始化,属性注入使用,销毁。
2.spring事物详解
(1)通过 @Controller 注解将 MixLayerUserService 变成 Web 层的 Controller,同时也是 Service 层的服务类。此外,由于直接使用 JdbcTemplate 访问数据,所以 MixLayerUserService 还是一个 DAO
例子:
<!--②使用aop和tx命名空间语法为MixLayerUserService所有公用方法添加事务增强 -->
<aop:config proxy-target-class="true">
<aop:pointcut id="serviceJdbcMethod"
expression="execution(public * user.mixlayer.MixLayerUserService.*(..))"/>
<aop:advisor pointcut-ref="serviceJdbcMethod"
advice-ref="jdbcAdvice" order="0"/>
</aop:config>
三:补充
(1) IOC:又称DI
(2)AOP 面向切面编程。
用处,在系统中有很多不相干的类方法,在这些众多方法中加入很多系统功能代码,比如,加入日志,加入权限判断,异常处理等。
实现AOP功能采用的是代理技术。
Spring提供了对AOP技术的良好封装, AOP称为面向切面编程,就是系统中有很多各不相干的类的方法,在这些众多方法中要加入某种系统功能的代码,例如,加入日志,加入权限判断,加入异常处理,这种应用称为AOP。实现AOP功能采用的是代理技术,客户端程序不再调用目标,而调用代理类,代理类与目标类对外具有相同的方法声明,有两种方式可以实现相同的方法声明,一是实现相同的接口,二是作为目标的子类在,JDK中采用Proxy类产生动态代理的方式为某个接口生成实现类,如果要为某个类生成子类,则可以用CGLI B。在生成的代理类的方法中加入系统功能和调用目标类的相应方法,系统功能的代理以Advice对象进行提供,显然要创建出代理对象,至少需要目标类和Advice类。spring提供了这种支持,只需要在spring配置文件中配置这两个元素即可实现代理和aop功能,例如,
<bean id=”proxy” type=”org.spring.framework.aop.ProxyBeanFactory”>
<property name=”target” ref=””></property>
<property name=”advisor” ref=””></property>
</bean>
分享到:
相关推荐
Spring个人总结,基于Annotation注解的方式开发,配置
包含Spring简介,AOP,SpringMVC,集成JDBC,事务,ORM框架,Spring集成知识点总结,以思维导图的形式展示,xmind文件。
“知识点总结.xls”可能是一个整理好的Spring框架关键知识点的表格,可能包含了Spring的主要模块(如Core Container、Data Access/Integration、Web、AOP、Test等)、关键概念(如Bean、ApplicationContext、IoC容器...
这里,我们针对“spring问题总结.zip”文件中的主题进行详细的Spring框架知识探讨。 1. **依赖注入(Dependency Injection, DI)**:Spring的核心特性之一,通过DI,对象之间的依赖关系被反转,使得应用程序的组件...
5. **Instrumentation**:提供对类加载器和应用服务器的工具支持。 6. **Test**:提供测试支持,包括Mock对象和测试Context。 五、学习资源 为了深入学习Spring,你可以参考官方文档、在线教程、书籍,如《Spring ...
### Spring Security核心概念与实践详解 #### Spring Security概述 在深入了解Spring ...通过对Spring Security的深入理解和合理运用,开发者可以构建出既安全又高效的Web应用,为用户提供更加可靠和信任的服务。
Spring总结
要搭建 Eureka 服务注册中心,需要创建一个 Spring Boot 项目,并在 pom.xml 文件中引入相关依赖项,包括 `spring-cloud-starter` 和 `spring-cloud-starter-eureka-server`。然后,使用 `@EnableEurekaServer` 注解...
spring适用于扩展的详细笔记,针对《spring 3.x 企业应用开发实战》写的 详细总结,涵盖自己的心得体会
在这个“狂神说”系列的Spring源码总结中,我们可以深入理解Spring的核心概念和实现机制。 1. **依赖注入(DI)与控制反转(IoC)**:Spring的核心特性是依赖注入,它通过反转应用程序对对象的控制权,使得对象的创建和...
spring入门笔记
以下是对Spring4各个功能的jar包的详细总结: 1. **spring-core.jar**:这是Spring框架的基础,包含了IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)的核心实现。它提供了Bean工厂...
总结,SpringSecurity是一个功能强大的安全框架,它为开发者提供了安全Web应用的全套解决方案。通过理解并熟练运用其核心概念和组件,我们可以构建出安全、健壮的应用程序。在学习过程中,分析提供的源代码和示例将...
Spring框架基础总结 一、Spring框架概述 Spring框架是一个开源的控制反转(IoC)和面向切面(AOP)的容器框架,旨在简化企业级Java应用的开发工作。Spring框架的核心价值在于其分层架构设计,使得开发者可以根据...
Spring Security3 安全个人总结 Spring Security3 是一个基于 Java 的安全框架,提供了一个灵活的安全机制来保护基于 Spring 的应用程序。在这个总结中,我们将详细介绍 Spring Security3 的安全机制、原理和核心...
spring总结1可以查看
在这个学习记录总结中,我们将深入理解Spring MVC的核心概念、主要组件以及其工作流程。 1. Spring MVC 概述 Spring MVC 是Spring框架的一部分,它基于Spring IoC(Inversion of Control,控制反转)容器,简化了...