Spring总结

bean标签的scope属性

scope="singleton",单例模式,默认值

scope="prototype",多例模式

注解元素

@Component、@Controller、@Service、@Repository(仓库)四个注解用来创建对象(这四个对象其实是spring用来为不同的业务层服务的,不过现在还没有实现);

@Autowired 对象属性自动注入,不需要写setter方法;

@Resource(name="book") 对象属性注入,name为对象名;

@Value(value="cat") 普通属性注入,value的值为字符串类型,系统会根据变量的类型自动转换;

aop操作相关术语

JoinPoint 连接点,要增强的方法;

Pointcut 切入点,实际增强的方法;

Advice 通知/增强,增强的逻辑,称为增强,比如扩展日志功能,日志功能就是增强;

通知的种类分为前置通知,后置通知,异常通知,最终通知,环绕通知。

切面,把增强用到切入点的过程;

引介,一种特殊的通知,再不修改类代码的前提下,可以在运行期为类动态地添加一些方法和属性;

Target,要增强的类;

Weaving 织入,把advice用到Target的过程;

aop配置切入点

常用的表达式:
execution(<访问修饰符>?<返回类型><方法名>(<参数>)<异常>)
第一个*代表任意修饰符
(1) execution(* day1.Book.add(..)) Book中add方法
(2) execution(* day1.Book.*(..))  Book中所有方法
(3) execution(* *.*(..)) 所有类中方法
(4) execution(* save*(..)) 所有save开头的方法

相关概念

ioc,控制反转(反转就是可以可以通过类名、方法名等不通过硬编码的方式加载一个类、实例化一个类、调用类实例的方法),创建对象;

DI,依赖注入,往类里面的属性注入值;

注解:代码里面的特殊标记,使用注解可以完成xml的功能;

纵向抽取机制,利用继承,在父类里面写一个方法,然后在子类的某个方法中调用这个方法;

横向抽取机制,底层使用动态代理方法实现;

aspectj是一个独立的框架,和spring一起进行aop的操作;

IOC与DI详解

控制反转就是指引入在IOC容器之前,创建对象的控制权在自己手上,而引入它之后,该控制权就在IOC容器手上了,故曰控制反转;

IOC的别名:依赖注入(DI)
2004年,Martin Fowler探讨了同一个问题,既然IOC是控制反转,那么到底是“哪些方面的控制被反转了呢?”,经过详细地分析和论证后,他得出了答案:“获得依赖对象的过程被反转了”。控制被反转之后,获得依赖对象的过程由自身管理变为了由IOC容器主动注入。于是,他给“控制反转”取了一个更合适的名字叫做“依赖注入(Dependency Injection)”。他的这个答案,实际上给出了实现IOC的方法:注入。所谓依赖注入,就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。
所以,依赖注入(DI)和控制反转(IOC)是从不同的角度的描述的同一件事情,就是指通过引入IOC容器,利用依赖关系注入的方式,实现对象之间的解耦。

注意:

1、配置文件中的元素先后性不会对程序造成影响;

 

2、如果没有环绕增强,那么最终通知会在后置增强后执行,否则会在后置增强前执行,因为环绕增强在后置增强前就执行了。

 

 

3、mysql的URL配置方式

 

Spring操作流程

获取bean对象

参数注入

如果使用“p名称空间注入”,则需配置以下约束条件

注入复杂数据类型

配置通知(非注解方式)

MyBook类

配置通知(注解方式)

在Spring配置文件中配置

 

 

 

 

注解扫描

连接池配置

事务管理(非注解方式)

事务管理(注解方式)

 

jdbc的事务管理器是org.springframework.jdbc.datasource.DataSourceTransactionManager

hibernate的事务管理器是org.springframework.orm.hibernate4.HibernateTransactionManager

对Mybatis进行事务控制,要使用jdbc的事务管理器;

Spring配置文件导入

优化Spring配置文件加载问题

设置Apache Tomcat服务器启动时加载spring配置文件,并且将spring容器中的对象放在“上下文-->Context”中,后面再加载该spring配置文件并获取对象时,系统会直接从Context中寻找,如此可以加快效率。

所以在web.xml中配置如下代码即可,

SSH整合流程

1、在spring中配置数据源;

 

2、在spring中配置struts的Action对象,并且设置为多例模式;

3、在spring中配置“会话工厂”对象,

4、开启事务管理;

 

 

 

Spring归纳的更多相关文章

  1. Spring归纳小结(山东数漫江湖)

    前言 如果说有什么框架是Java程序员必然会学习.使用到的,那么Spring肯定是其中之一.本篇博客,将根据博主在日常工作中对Spring的使用做一个系统的归纳小结. Spring的一些概念和思想 S ...

  2. spring AOP Capability and Goals(面向方面编程功能和目标归纳)

    原官方文档链接: https://docs.spring.io/spring/docs/5.1.6.RELEASE/spring-framework-reference/core.html#aop-i ...

  3. Spring MVC 问题归纳

    记录一些在Spring MVC配置中出现的问题 一.配置tomcat包没有加载 错误: idea调试web项目时出现:java.lang.ClassNotFoundException:org.spri ...

  4. Spring Data JPA 大纲归纳

    第一天: springdatajpa day1:orm思想和hibernate以及jpa的概述和jpa的基本操作 day2:springdatajpa的运行原理以及基本操作 day3:多表操作,复杂查 ...

  5. Spring 事务归纳

    Spring transaction 什么是事务 A用户向B用户转帐100,第一步要从A帐户扣出100,第二步要将B帐户加上100.其中无论是第一步失败,还是第二步失败.都应该将A.B帐户的余额保持和 ...

  6. e3mall商城的归纳总结9之activemq整合spring、redis的缓存

    敬给读者 本节主要给大家说一下activemq整合spring,该如何进行配置,上一节我们说了activemq的搭建和测试(单独测试),想看的可以点击时空隧道前去查看.讲完了之后我们还说一说在项目中使 ...

  7. spring总结归纳

    愿历尽千帆,归来仍是少年 简介 spring: 1.是分层的full-stack(全栈)轻量级开源框架.2. 内核:IOC和AOP.3.提供web层springMvc和业务层事务管理,整合众多的开源框 ...

  8. Spring Boot,Spring Cloud,Spring Cloud Alibaba 版本选择说明以及整理归纳

    前言 本文的核心目的: 1.方便自己以后的查找,预览,参考 2.帮助那些不知道如何选择版本的朋友进行指引,而不是一味的跟风网上的版本,照抄. Spring Boot 版本 版本查询: https:// ...

  9. GPS部标平台的架构设计(三) 基于struts+spring+hibernate+ibatis+quartz+mina框架开发GPS平台

    注意,此版本是2014年研发的基于Spring2.5和Struts2的版本,此版本的源码仍然销售,但已不再提供源码升级的服务,因为目前我们开发的主流新版本是2015-2016年近一年推出的基于spri ...

随机推荐

  1. Working Experience - WPF XAML 报错 - 命名空间中不存在该名称

    问题 编辑 xaml 时,VS 提示一个存在的类不存在(如:命名空间"xxx"中不存在"xxx"名称). 运行环境 Windows 版本:Window 10 V ...

  2. ASP.NET学习笔记(二)语法

    基本的 ASP 语法规则 通常情况下,ASP 文件包含 HTML 标签,类似 HTML 文件.不过,ASP 文件也能够包含服务器端脚本,这些脚本被分隔符 <% 和 %> 包围起来. 在 A ...

  3. JavaScript中两个数组的拼接

    方法一:使用for循环 var arr = ['tom', 'jerry']; var arr2 = [1, 2]; for(var i=0; i<arr2.length; i++){ arr. ...

  4. unity 模型层次细节

    http://blog.csdn.net/qq_25210959/article/details/51734517 层次细节(LOD),它是根据物体在游戏画面中所占视图的百分比来调用不同复杂度的模型的 ...

  5. cat命令详解及here doc

    以下内容转自:http://www.cnblogs.com/peida/archive/2012/10/30/2746968.html cat命令的用途是连接文件或标准输入并打印.这个命令常用来显示文 ...

  6. poj 3417 Network(tarjan lca)

    poj 3417 Network(tarjan lca) 先给出一棵无根树,然后下面再给出m条边,把这m条边连上,然后每次你能毁掉两条边,规定一条是树边,一条是新边,问有多少种方案能使树断裂. 我们设 ...

  7. 使用JMETER进行REST API测试

    我确定你在这里是因为你需要加载测试Json Rest API.这并不奇怪,因为Rest API现在越来越受欢迎. 这本指南的目的:帮助您进行负载测试一个Json的 REST API 通过一个具体的例子 ...

  8. Ubuntu 最新设置阿里云更新源

    可将 http://cn.archive.ubuntu.com/ubuntu/ 替换为下列任意服务器: Ubuntu 官方(欧洲,国内较慢,无同步延迟) http://archive.ubuntu.c ...

  9. sonar扫描android项目配置 mac版

    一. 下载安装 JDK8以上  SonarQube   SonarQube Scanner 1. 解压缩SonarQube和SonarQube Scanner,直接运行SonarQube中bin目录下 ...

  10. ASM 磁盘组的的scrip

    之前经常用如下方式进行查询:步骤 1 以oracle用户登录系统.步骤 2 执行如下命令改变ORACLE_SID环境变量.$ export ORACLE_SID=+ASM1[1或者2]需要通过ps - ...