Spring简介:
一、专业术语
1.侵入式设计
引入框架,对现有的类的结构有影响,即需要实现或继承某些特定类。如:Struts框架
2.非侵入式设计
引入框架,对现有的类结构没有影响。如:Hibernate、Spring
3.控制反转(IoC)
控制反转(Inversion on Control 、IoC):把对象的创建交给外部容器完成。
4.依赖注入(DI)
依赖注入(dependency injection):处理对象间的依赖关系
5.IoC和DI的区别
控制反转:解决对象创建的问题【对象创建交给其他类】
依赖注入:解决类与类紧耦合的问题。
例如,类A依赖于类B,常规的做法是在A中直接创建B的对象,然后再调用B对象的方法;控制反转就是将创建B对象的实例化交给第三方实现;然后再创建类B的操作接口I,并在A中创建接口I的对象,最后再由第三方将B的实例注入给A中的接口I的对象。这样实例化B类对象的控制权就由A交给了第三方,同时也解决了类A和类B紧耦合的问题。
6.AOP
面向切面编程(Aspect Oriented Programming)是软件编程思想发展到一定阶段的产物,是面向对象编程的有益补充。AOP一般适用于具有横切逻辑的场合,如访问控制、事务管理、性能监测等。面向切面编程简单地说就是在不改变源程序的基础上为代码段增加新的功能,对代码段进行增强处理。
7.横切逻辑
在业务系统中,总有一些散落、渗透到系统各处且不得不处理的事情,这些穿插在既定业务中的公共操作就是所谓的横切逻辑,也称为切面。
8.增强处理
在目标方法执行前后进行的操作或执行的功能就是增强处理。
9.切点
可以插入增强处理的目标方法就是所谓的切点。
二、Spring简介
Spring框架可以解决对象创建以及对象之间依赖关系的一个轻量级框架。Spring是一个全面的、企业应用开发一站式的解决方案,Spring贯穿表现层、业务层、持久层。但是Spring仍然可以和其他的框架无缝整合。
三、Spring Jar包介绍
1.org.springframework.aop ——Spring的面向切面编程,提供AOP(面向切面编程)的实现
2.org.springframework.asm——spring3.0开始提供自己独立的asm jar包
3.org.springframework.aspects——Spring提供的对AspectJ框架的整合
4.org.springframework.beans——所有应用都用到,包含访问配置文件,创建和管理bean等。
5.org.springframework.context.support——Spring context的扩展支持,用于MVC方面
6.org.springframework.context——提供在基础IOC功能上的扩展服务,此外还提供许多企业级服务的支持,有邮件服务、任务调度、JNDI定位,EJB集成、远程访问、缓存以及多种视图层框架的支持。
7.org.springframework.core——Spring的核心工具包,其他包依赖此包
8.org.springframework.expression——Spring表达式语言
9.org.springframework.instrument.tomcat——Spring对tomcat连接池的集成
10.org.springframework.instrument——Spring对服务器的代理接口
11.org.springframework.jdbc——对JDBC 的简单封装
12.org.springframework.jms——为简化jms api的使用而做的简单封装
13.org.springframework.orm——整合第三方的orm实现,如hibernate,ibatis,jdo,jpa等
14.org.springframework.oxm——Spring对于object/xml映射的支持,可以让JAVA与XML来回切换
15.org.springframework.test——对JUNIT等测试框架的简单封装
16.org.springframework.transaction——为JDBC,HIBERNATE,JDO,JPA提供一致的声明式和编程式事务管理
17.org.springframework.web.portlet——Spring MVC的增强
18.org.springframework.web.servlet——对J2EE6.0 servlet3.0的支持
19.org.springframework.web.struts——整合对struts框架的支持,更方便更容易的集成Struts框架。
20.org.springframework.web——包含Web应用开发时,用到Spring框架时所需的核心类。
21.Org.springframework.web.mvc——包含SpringMVC应用开发时所需的核心类。
注意:core、beans、expression、context是Spring的核心jar包。使用Spring时必须导入commons-logging-*.jar包。
四、applicatonContext.xml - bean配置详解
1.Spring相关的命名空间介绍
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd">
五、处理增强
1.处理增强的类型
前置增强MethodBeforeAdvice
后置增强AfterReturningAdvice
环绕增强MethodInterceptor
抛出异常增强ThrowsAdvice
2.实现增强的3种方式
通过接口实现增强
前置增强的接口为:MethodBeforeAdvice
后置增强的接口为:AfterReturningAdvice
环绕增强的接口为:MethodInterceptor
抛出异常增强的接口为:ThrowsAdvice
通过注解实现增强
通过Scheme配置实现增强
3.通过接口实现增强
<aop:config>
<aop:pointcut expression="execution(public void *User())" id="addoptpointcut"/>
<aop:advisor advice-ref="logbefore" pointcut-ref="addoptpointcut" />
</aop:config>
<aop:config>
<aop:pointcut expression="execution(* spring_basic.UserService.*(..))" id="userServiceOptPointcut"/>
<!--
<aop:advisor advice-ref="exceptionAdvice" pointcut-ref="userServiceOptPointcut" />
-->
<aop:advisor advice-ref="logger" pointcut-ref="userServiceOptPointcut" />
</aop:config>
4.通过注解实现增强
前置增强
@Before("execution(* service.*.*(..))")
后置增强
@AfterReturning(pointcut="execution(* service.*.*(..))", returning="result")
异常抛出增强
@AfterThrowing(pointcut="execution(* service.*.*(..))", throwing="ex")
环绕增强
@Around("execution(* service.*.*(..))")
注意:还需要在applicationContext.xml文件中添加如下配置
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
5.通过Scheme配置实现增强
首先:添加普通的类,里面按要求编写方法
public class Logger {
public void before(JoinPoint jp){
}
public void after(JoinPoint jp, Object result){
}
public void aterThrowing(JoinPoint jp, Exception ex){
}
public Object aroundExecute(ProceedingJoinPoint pjp) throws Throwable{
}
}
其次:在applicationContext.xml中配置aop-aspect相关的配置
<aop:config>
<aop:pointcut expression="execution(* service.*.*(..))" id="optpointcut"/>
<aop:aspect ref="mylogger">
<aop:before method="before" pointcut-ref="optpc" />
<aop:after-returning method="after" returning="result" pointcut-ref="optpc" />
<aop:after-throwing method="aterThrowing" throwing="ex" pointcut-ref="optpc" />
<aop:around method="aroundExecute" pointcut-ref="optpointcut"/>
</aop:aspect>
</aop:config>
六、拆分Spring配置文件
方式一:在web.xml文件中加载多个spring配置文件
<!-- spring监听器 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext.xml,classpath:applicationContext-dao.xml,
classpath:applicationContext-service.xml,classpath:applicationContext-action.xml,
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
方式二:通配符方式加载多个spring配置文件
<!-- spring监听器 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext.xml,
classpath:applicationContext-*.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
方式三:使用import加载其他spring配置文件
<import resource="applicationContext-dao.xml" />
分享到:
相关推荐
这篇“spring框架,技术详解及使用指导”可能涵盖了Spring的多个方面,包括但不限于以下几个关键知识点: 1. **依赖注入(Dependency Injection,DI)**:这是Spring的核心特性,通过DI,对象之间的耦合度降低,...
此“spring框架技术详解及使用指导”电子书PDF,旨在帮助读者深入理解Spring框架,并提供实践指导。 首先,让我们深入了解一下Spring框架的主要模块: 1. **核心容器**:这是Spring框架的基础,包括Bean工厂...
Spring Boot和Hazelcast使用详解 Spring Boot和Hazelcast使用详解是指如何将Hazelcast集成到Spring Boot项目中,以提高应用程序的性能。Hazelcast是一个内存分布式计算平台,用于管理数据并并行执行应用程序。它...
Spring框架是中国乃至全球开发者广泛使用的Java企业级应用开发框架,其设计目标是简化Java开发,促进良好的编程习惯,以及提供一套全面的依赖注入和服务定位器模式的实现。本压缩包包含了一系列关于Spring框架的详细...
在本文中,我们将深入探讨Spring Security的配置及其在实际应用中的使用。 首先,Spring Security的核心概念包括用户、角色、权限和访问控制。它提供了一种机制来验证用户身份(身份验证),并决定用户是否可以访问...
Spring框架是Java开发中最常用的轻量级开源框架之一,它为开发者提供了全面的基础设施支持,以简化企业级应用的开发工作。本篇文章将深入探讨Spring框架的核心概念、主要功能以及如何在实际项目中进行有效利用。 一...
在这个“spring技术详解及使用指导”中,我们将深入探讨Spring框架的主要组成部分和应用场景。 首先,Spring框架的核心是IoC(Inversion of Control,控制反转)。IoC通过将对象的创建和管理权交给容器,使得开发者...
### Spring框架技术详解及使用指导 #### Spring框架概述 Spring框架是一个开源的轻量级Java应用框架,由Rod Johnson创建并由Pivotal Software维护。它最初被设计为解决企业级应用开发中常见的问题,例如复杂的配置...
【Spring注解使用详解】 Spring框架自2.5版本开始,引入了注解配置,使得开发者可以在不依赖XML配置文件的情况下实现Bean的定义和依赖注入。注解配置因其简洁、直观的特点,逐渐成为主流的配置方式。在本文中,我们...
SpringBoot + Spring Security 基本使用及个性化登录配置详解 Spring Security 是一个功能强大且灵活的安全框架,它提供了认证、授权、攻击防护等功能。SpringBoot 是一个基于 Spring 框架的框架,它提供了很多便捷...
Spring Cloud 详解专栏中,对Spring Cloud系列的技术做了介绍及使用方法,通过Spring Cloud 详解专栏,三天就能学习并掌握Spring Cloud技术,投入到项目中使用。笔记记录了Spring Cloud系列技术的介绍及使用方法。
Spring : 春天 —>给软件行业带来了春天 2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架。 2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。 很难想象Rod ...
- **功能简介**:包含了 Spring 对 Hibernate 2 及 Hibernate 3 进行封装的所有类。 - **应用场景**:适用于使用 Hibernate 数据持久化框架的项目。 - **依赖关系**:依赖于 `spring-core.jar`、`spring-beans.jar`...
Spring Boot使用HikariCP连接池的详细指南 在现代Java开发中,Spring Boot框架以其简洁性和自动化配置受到广泛欢迎。Spring Boot 2.x版本默认采用HikariCP作为其数据连接池,因为HikariCP以其高效和高性能著称。...
Spring 配置文件详解 Spring 配置文件是 Spring 框架中最重要的配置文件之一,它负责定义和配置应用程序的Bean对象,以及它们之间的依赖关系。Spring 配置文件通常以XML文件的形式存在,文件名通常为...
Spring 框架是Java开发领域中广泛应用的开源框架,其设计理念和设计模式对于理解和创建高效、可维护的软件系统至关重要。Spring的核心架构由Core、Context和Beans三个主要组件构成,它们共同构建了Spring的基石,...
### Spring2.0与Spring2.5及以上版本的jar包区别及spring jar包详解 #### 概述 Spring框架作为一款流行的Java应用开发框架,在不同的版本之间,其提供的功能、性能以及兼容性等方面都有所差异。本文将重点介绍...