Spring IOC、AOP、Transaction、MVC小结
1.IOC、AOP:把对象交给Spring进行管理,通过面向切面编程来实现一些“模板式”的操作,使得程序员解放出来,可以更多的关注业务实现。
--Sping已经是一站式的开源框架解决方案,而且形成了Spring生态。
2.IOC实现方式:XML、注解。
3.bean的XML配置创建:通常使用XML来创建(原理就是通过反射实例化的),除此之外,还存在静态工厂、实例工厂的方式创建。
bean的scope属性: singleton:单例,defalut prototype:多例
4.bean的属性注入:a.构造bean的时候,提供有参数的构造方法注入 b.setter方法注入。
bean的注解的实现是需要AOP的支持,因此在依赖方面需要注意,其次在XML中开启注解扫描。实际上这个配置,会让Spring在指定包下扫描,把带有注解标志的
bean实例化,并且会进行属性注入。
5.创建对象的4个注解:@Component @Controller @Service @Repository
通过value属性来指定bean的id,通过@scope配合来声明单例or多例。
注入属性:@Autowired @Resource @Qualifier
其中,@Resource是javax包下的,J2EE提供的,按照名称注入,如果找不到才按照类型注入。
@Autowired按照类型注入,如果按照@Autowired注入会是多态,到底该注入哪个?此时还需要配合@Qualified类型注入。
按照名称注入应该是首选!
6.AOP:面向切面编程,一种横向抽取机制,依赖于动态代理模式。
JoinPoint:连接点,就是可以被增强的方法。
PointCut:切入点,对哪些JoinPoint进行拦截。
Advice:通知,就是拦截后的动作。
Aspect:切面,把增强应用到具体的方法的过程。
Spring的AOP需要通过XML来实现,可以通过XML,也可以通过注解来完成。
实际开发中,对于AOP最常用的就是事务了。
7.Spring事务管理:Spring的声明式事务管理,用的最多的就是基于注解的方式。
首先得配置一个事务管理器,事务管理器需要我们注入DataSource(DBCP,C3P0等连接池),因为是DB的事务。
Spring对不同的DAO层框架(Spring JDBC/MyBatis/Hibernate...)提供了不同的事务实现类。
对于多个数据源,我们需要定义多个事务管理器,通过qualifier属性进行区分。 eg: <qualifier value="charge"/>
配置完成后,在service的类或者方法上使用注解:@Transactional(value="gas",rollbackFor=Exception.class)
8.Spring与web整合原理
就是在web.xml中去配置一个监听器,然后指定Spring的配置文件即可。
每个web项目存在一个ServletContext对象,我们配置的监听器就是对它进行监听,监听器会加载Spring配置文件,把创建的对象放到ServletContext域
(也就是setAttribute方法),获取对象的时候直接getAttribute即可。
Spring IOC、AOP、Transaction、MVC小结的更多相关文章
- spring ioc aop 原理
spring ioc aop 原理 spring ioc aop 的原理 spring的IoC容器是spring的核心,spring AOP是spring框架的重要组成部分. 在传统的程序设计中,当调 ...
- Spring IOC + AOP 的实现
Spring思想很不错,尽量减少侵入式编程.现在了解到的Spring提供的功能有,DI,IOC,数据库操作,AOP,MVC.针对DI,AOP写了一些小DEMO PS:AOP真的很棒 代码参考:< ...
- Spring IOC AOP的原理 如果让你自己设计IOC,AOP如何处理(百度)
百度的面试官问,如果让你自己设计一个IOC,和AOP,如何设计, 我把IOC的过程答出来了,但是明显不对, (1) IOC 利用了反射,自己有个id,classtype,hashmap,所有的功能都在 ...
- spring Ioc Aop整合
之前用DWP项目做spring的IOC,xml总是提示有问题,之后改用maven通过. 之后将这一块的内容补充. 仔细考虑一下spring 的IOC是无处不在的,演示Aop也需要依赖spring的IO ...
- spring ioc aop 理解
OC,依赖倒置的意思,所谓依赖,从程序的角度看,就是比如A要调用B的方法,那么A就依赖于B,反正A要用到B,则A依赖于B.所谓倒置,你必须理解如果不倒置,会怎么着,因为A必须要有B,才可以调用B,如果 ...
- Spring IOC/ AOP 笔记
扫描 Bean 以下主要是使用基于注解方式配置 组件扫描(一般用于自己写的类) 添加 @Component 注解,被扫描到后自动作为 Bean 组件 @ComponentScan 扫描配置的位置,将添 ...
- spring IOC DI AOP MVC 事务, mybatis 源码解读
demo https://gitee.com/easybao/aop.git spring DI运行时序 AbstractApplicationContext类的 refresh()方法 1: pre ...
- Spring Bean的生命周期、Spring MVC的工作流程、IOC,AOP
1.Spring Bean的生命周期? (1)构造方法实例化bean. (2)构造方法设置对象属性. (3)是否实现aware接口,三种接口(BeanNameAware,BeanFactoryAwar ...
- spring(一)IOC & AOP
参考文档: spring详解:http://www.cnblogs.com/ysocean/p/7466191.html(可以说非常详细了) aop源码详解:https://www.cnblogs.c ...
随机推荐
- 【SparkStreaming学习之二】 SparkStreaming算子操作
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...
- CCF CSP 201612-1 中间数
题目链接:http://118.190.20.162/view.page?gpid=T52 问题描述 试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB ...
- go区块链学习教程之iris框架mvc架构
在Iris框架中,封装了mvc包作为对mvc架构的支持,方便开发者遵循mvc的开发原则进行开发. iris框架支持请求数据.模型.持久数据分层处理,并支持各层级模块代码绑定执行. MVC即:model ...
- 终于有人把云计算、大数据和 AI 讲明白了
最近学习hadoop以及生态,顺便看到了这篇文章,总结的很到位,转载下. 我今天要讲这三个话题,一个是云计算,一个大数据,一个人工智能,我为什么要讲这三个东西呢?因为这三个东西现在非常非常的火,它们之 ...
- JavaWeb案例:登陆和注册
mvc开发模式简介 M: Model模型 JavaBeanV:view视图 JSPC:Controller控制器 Servlet 其实就是JSP + Servlet + JavaBean上面的Java ...
- 动态令牌验证遇到的问题(判断用户长按backspace键)
因为最近负责泰康项目的前端工作,他们的登录需要进行安全验证,也就是所谓的双因素验证,即在OA平台登录过后,还需要安全部门发送安全令牌进行验证.令牌验证效果如下: 主要功能有:1.默认第一项focus. ...
- 【codeforces 242E】XOR on Segment
[原题题面]传送门 [题面翻译]传送门 [解题思路] 操作涉及到区间求和和区间异或,考虑到异或操作,我们对每个数二进制分解. 把每一位单独提出来做,异或要么取反要么变为不变,对于每一位建一颗线段树,那 ...
- dao层、service和action的运用和区别
DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,对于数据库的操作,具体到对于某个表的增删改查, 也就是说某个DAO一定是和数据库的某一张表一一对应的 ...
- 如何查找redis使用的是哪个配置文件
ps -ef|grep redis 得到了进程号 xxxx 然后 ls -l /proc/xxxx/cwd ps:可以推广到其他进程,只要有pid,就能找到配置文件
- Maven项目下的Mybatis逆向工程
IDEA Maven项目的Mybatis逆向工程 1.配置.pom 如果是在多模块开发下,该文件逆向工程要生成的那个模块下的pom文件. <build> <plugins> & ...