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小结的更多相关文章

  1. spring ioc aop 原理

    spring ioc aop 原理 spring ioc aop 的原理 spring的IoC容器是spring的核心,spring AOP是spring框架的重要组成部分. 在传统的程序设计中,当调 ...

  2. Spring IOC + AOP 的实现

    Spring思想很不错,尽量减少侵入式编程.现在了解到的Spring提供的功能有,DI,IOC,数据库操作,AOP,MVC.针对DI,AOP写了一些小DEMO PS:AOP真的很棒 代码参考:< ...

  3. Spring IOC AOP的原理 如果让你自己设计IOC,AOP如何处理(百度)

    百度的面试官问,如果让你自己设计一个IOC,和AOP,如何设计, 我把IOC的过程答出来了,但是明显不对, (1) IOC 利用了反射,自己有个id,classtype,hashmap,所有的功能都在 ...

  4. spring Ioc Aop整合

    之前用DWP项目做spring的IOC,xml总是提示有问题,之后改用maven通过. 之后将这一块的内容补充. 仔细考虑一下spring 的IOC是无处不在的,演示Aop也需要依赖spring的IO ...

  5. spring ioc aop 理解

    OC,依赖倒置的意思,所谓依赖,从程序的角度看,就是比如A要调用B的方法,那么A就依赖于B,反正A要用到B,则A依赖于B.所谓倒置,你必须理解如果不倒置,会怎么着,因为A必须要有B,才可以调用B,如果 ...

  6. Spring IOC/ AOP 笔记

    扫描 Bean 以下主要是使用基于注解方式配置 组件扫描(一般用于自己写的类) 添加 @Component 注解,被扫描到后自动作为 Bean 组件 @ComponentScan 扫描配置的位置,将添 ...

  7. spring IOC DI AOP MVC 事务, mybatis 源码解读

    demo https://gitee.com/easybao/aop.git spring DI运行时序 AbstractApplicationContext类的 refresh()方法 1: pre ...

  8. Spring Bean的生命周期、Spring MVC的工作流程、IOC,AOP

    1.Spring Bean的生命周期? (1)构造方法实例化bean. (2)构造方法设置对象属性. (3)是否实现aware接口,三种接口(BeanNameAware,BeanFactoryAwar ...

  9. spring(一)IOC & AOP

    参考文档: spring详解:http://www.cnblogs.com/ysocean/p/7466191.html(可以说非常详细了) aop源码详解:https://www.cnblogs.c ...

随机推荐

  1. 用Python实现一个词频统计(词云+图)

    第一步:首先需要安装工具python 第二步:在电脑cmd后台下载安装如下工具: (有一些是安装好python电脑自带有哦) 有一些会出现一种情况就是安装不了词云展示库 有下面解决方法,需看请复制链接 ...

  2. 【记录】VMware解决网络找不到服务器的问题

    本想在虚拟机上的Linux上练习安装Mysql8.0版本的,网络连不上的问题卡了N天简直 1. 点击虚拟机右键设置,虚拟机默认设置为NAT模式,这里无需修改. 2. 点击编辑,虚拟网络设置,勾选主机连 ...

  3. SSM项目思路整合NEW2

    上接于 https://www.cnblogs.com/shijinglu2018/p/10374541.html ...... 三)客户管理模块开发 说明:其实大致思路差不太多,都是首先根据前端页面 ...

  4. Linux命令-cut篇

    Cut 命令是常用的 Linux 命令,在这里总结一下平时常用的参数和用法,方便查证. 常用参数: -b:以字节为单位进行分割: -c:以字符为单位进行分割: -d:自定义分割符进行分割,默认为制表符 ...

  5. 01: 腾讯云API-云服务器

    1.1 云服务器 1.腾讯云SDK使用举例 网址:https://cloud.tencent.com/document/sdk/Python #! /usr/bin/env python # -*- ...

  6. Parhaps you are running on a JRE rather than a JDK?

    maven项目启动时报错 解决方案: 第一步:在启动项目上右击 第二步:修改JRE为JDK,双击划线部分 第三步:如果没有配置JDK,进行以下操作 第四步:从本地添加JDK 第五步:应用JDK 选择好 ...

  7. python实现单例模式的三种方式及相关知识解释

    python实现单例模式的三种方式及相关知识解释 模块模式 装饰器模式 父类重写new继承 单例模式作为最常用的设计模式,在面试中很可能遇到要求手写.从最近的学习python的经验而言,singlet ...

  8. Overture小课堂之如何演绎钢琴滑音

    在我们学习钢琴和学习使用Overture时,要学习如何弹奏和使用滑音.那么我们先来看看什么是滑音,如何使用钢琴演绎,在Overture里滑音又在哪里呢? 滑音,在音乐术语中通常指一种装饰音和演奏指法. ...

  9. volatility内存取证

    最近参加了45届世界技能大赛的山东选拔赛,样题里有一个题如下: 师傅好不容易拿到了压缩包的密码,刚准备输入,电脑蓝屏 了... = =",题意简单明了,易于理解.一看就是内存取证的题并且已经 ...

  10. CentOS7.5 下搭建SFTP

    CentOS7.5 下搭建SFTP Linux 创建用户组 groupadd sftp 创建用户test useradd -G sftp -s /sbin/nologin test -s 禁止用户ss ...