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有钱途吗;----建议你去抢银行; 浮躁的人容易说:我要中文版!我英文不行!----不行?学呀! 浮躁的人分两种:只观望而不学的人;只学而不坚持的人; 浮躁的人永远不是一个高手。
  • 相关阅读:
    格式化数字,将字符串格式的数字,如:1000000 改为 1 000 000 这种展示方式
    jquery图片裁剪插件
    前端开发采坑之安卓和ios的兼容问题
    页面消息提示,上下滚动
    可以使用css的方式让input不能输入文字吗?
    智慧农村“三网合一”云平台测绘 大数据 农业 信息平台 应急
    三维虚拟城市平台测绘 大数据 规划 三维 信息平台 智慧城市
    农业大数据“一张图”平台测绘 大数据 房产 国土 农业 信息平台
    应急管理管理局安全生产预警平台应急管理系统不动产登记 测绘 大数据 规划 科教 三维 信息平台
    地下综合管廊管理平台测绘 大数据 地下管线 三维 信息平台
  • 原文地址:https://www.cnblogs.com/qianlang/p/10556246.html
Copyright © 2011-2022 走看看