• spring(3)


    Spring框架中都用到了哪些设计模式?

    1.工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象的实例

    2.单例模式:Bean默认为单例模式

    3.代理模式:SpringAOP功能用到了JDK的动态代理和CCGLIB字节码生成技术

    4.模板方法:用来解决代码重复的问题

    5.观察者模式:定义对象建一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会被通知强制更新

    注解的原理

    注解本质上是一个继承了Annotation的特殊接口,其具体实现类是java运行是生成的动态代理类,当通过反射获取注解时,返回的java运行时生成的动态代理对象,通过代理对象调用自定义注解的方法,最终会调用AnnotationInvocationHandle的invoke方法。该方法会从memberValues这个map中索引出对应的值。而memberValues的来源是java常量池。

    SpingJDBC与传统的JDBC有什么区别?

    Spring的JDBC是在原生态的JDBC上面进行的一次简单的封装,提供了一些接口,节省代码,不管连接、不管事务、不管异常、不管关闭。只需要实现Spring提供的回调类。传统的JDBC执行过程如下

    1.创建连接

    2.创建sql语句

    3.执行sql语句

    4.返回结果

    5.关闭资源

    在SpringJDBC中只需要实现2、4就可以了,其他都由Spring完成,,而2、4都是通过实现指定的接口,然后将实现类传递给Spring句完成了

    什么是面向切面编程?

    针对业务处理过程中的切面进行提取,他所面对的是处理过程中的某个步骤或者阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果

    为了降低java的开发的复杂性,Spring采取了一下四种关键策略?

    1.通过POJO的轻量级和最小侵入性编程

    2.通过依赖注入和面向接口实现松耦合

    3.给予切面个管理进行声明式编程

    4.通过切面和模板减少样板式代码

    Spring切面亏应用五种类型的通知?

    1.Before

    2.After

    3.After-returning

    4.After-throwing

    5.Around

    Spring提供的四种各具特色的AOP支持

    1.给予代理的经典的AOP

    2.@AspectJ注解驱动切面

    3.纯POJO切面

    4.注入式AspectJ切面(适合Spring的各个版本)

    声明式事务管理的事务属性有一下五种?

    1.传播行为:传播行为定义了客户端与被调用方法之间的事务边界

    2.隔离级别:隔离级别定义了一个事务可能受其他并发事务影响的程度

    3.只读:表明事务是否式只读的

    4.事务超时:指定事务运行的最长时间,超时就会回滚

    5.回滚规则:定义了哪些异常会导致事务回滚哪些不会

    脏读、不可重复读和幻读分别式什么意思?

    脏读:一个事务读取了另一个事务改写但是未提交的数据时。如果改写在稍后被回滚了,那么第一个事务获取的数据就是无效的

    不可重复读:一个事务执行相同的查询两次或者两次以上,但是每次都得到不同 数据。通常是因为另一个并发事务在两次查询期间更新了数据

    幻读:一个事务读取了几行数据,接着另一个并发事务插入了一些数据,在随后的查询中,第一个事务发现多了一些更本不存在的数据

    Spring注解说明?

    采用扫描的方式配置SpringXMl书写方式

    <context:component-scanbase-package="包名"/>

    @Service:用于标注业务层组件

    @Controller用于标注控制层组件

    @Component 泛指组件,用于不明确的类

    @Repository用户标注数据库访问组件

    @PostConstruct创建对象时执行的方法

    @PreDestory对象摧毁时执行的方法

    @Autowired直接访问私有属性,直接给私有属性输入值

  • 相关阅读:
    【转】京东抢购服务高并发实践
    【转】聊聊高并发系统之队列术
    深入研究Clang(八) Clang代码阅读之打log读流程1
    【转】保证分布式系统数据一致性的6种方案
    TextureView实现视频播放
    Spring之FactoryBean
    支付宝系统架构
    【转】高并发系统之限流特技
    Go语言中new和make的区别
    Linux下安装Beego:go install: cannot install cross-compiled binaries when GOBIN is set
  • 原文地址:https://www.cnblogs.com/juddy/p/14071061.html
Copyright © 2020-2023  润新知