zoukankan      html  css  js  c++  java
  • Spring IOC、AOP、Transaction、MVC小结

    1.IOC、AOP:把对象交给Spring进行管理,通过面向切面编程来实现一些“模板式”的操作,使得程序员解放出来,可以更多的关注业务实现。

                                  --Spring已经是一站式的开源框架解决方案,而且形成了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即可。 

    浮躁的人容易问:我到底该学什么;----别问,学就对了; 浮躁的人容易问:JS有钱途吗;----建议你去抢银行; 浮躁的人容易说:我要中文版!我英文不行!----不行?学呀! 浮躁的人分两种:只观望而不学的人;只学而不坚持的人; 浮躁的人永远不是一个高手。
  • 相关阅读:
    一次有益的敏捷XP失败
    web拖动Drag&Drop原理
    一次有益的敏捷尝试
    一次有益的敏捷XP失败
    异地分布式敏捷软件开发探讨分析
    web拖动Drag&Drop原理
    XP中一些基本概念的简介
    XP中的重要惯例和规则
    异地分布式敏捷软件开发探讨分析
    PySide教程:第一个PySide应用
  • 原文地址:https://www.cnblogs.com/qianlang/p/10556246.html
Copyright © 2011-2022 走看看