AOP⾯试题spring aop应用场景
1.⾯向切⾯编程(AOP)的理解
⾯向切⾯编程,即AOP,即是⼀种编程技术,它允许程序员对横切关注点或横切典型的职责分界线的⾏为(例如⽇志和事务管理)进⾏模块化。AOP的核⼼构造是⽅⾯,它将那些影响多个类的⾏为封装到可重⽤的模块中。
AOP和IOC是补充性的技术,它们都是运⽤模块化⽅式解决企业应⽤程序开发中的复杂问题。在典型的⾯向对象的开发⽅式中,可能要将⽇志记录语句放在所有⽅法和Java类中才能实现⽇志功能。在AOP⽅式中,可以反过来将⽇志服务模块化,并以声明的⽅式将它们应⽤到需要的⽇志组件上。当然,优势就是Java类不需要知道⽇志服务的存在,也不需要知道⽇志服务的存在,也不需要考虑相关的代码。所以,⽤Spring AOP编写的应⽤程序代码是松散耦合的。AOP的功能完全集成到了Spring 事务管理、⽇志和其他各种特性的上下⽂中。
2.声明式事务的概念及原理
声明式事务(declarative transaction management)是Spring提供的对程序事务管理的⽅式之⼀。 声明式事务顾名思义就是采⽤声明的⽅式来处理事务。这⾥所说的声明,就是指在配置⽂件中申明。在Spring配置⽂件中,声明式的处理事务来代替代码式的处理事务。
【原理】
声明式事务管理意味着你⽆需在Bean中编写任何事务管理代码,只需将事务配置在Bean上就可以了.要想达到这个⽬的,最简单⽅法就是使⽤代理——代理会拦截所有⽅法的调⽤。如果⽅法位于事务配置中,代理就是起到通知的作⽤,它会在⽬标⽅法调⽤前开启事务,然后在⼀个try/catch块中执⾏⽬标⽅法.如果⽬标⽅法正常完成,代理就会提交事务;如果⽬标⽅法抛出运⾏时异常,代理就会回滚。
3.线程的基本概念,线程基本状态以及状态之间的关系?
⼀个程序中可以有多条执⾏线索同时执⾏,⼀个线程就是程序中的⼀条执⾏线索,每个线程上都关联有要执⾏的代码,即可以有多段程序代码同时运⾏,每个程序⾄少都有⼀个线程,即main⽅法执⾏的那个线程。如果只是⼀个cpu,它怎么能够同时执⾏多段程序呢?这是从宏观上来看的,cpu⼀会执⾏a线索,⼀会执⾏b线索,切换时间很快,给⼈的感觉是a,b在同时执⾏,好⽐⼤家在同⼀个办公室上⽹,只有⼀条链接到外部⽹线,其实,这条⽹线⼀会为a传数据,⼀会为b传数据,由于切换时间很短暂,所以,⼤家感觉都在同时上⽹。 状态:就绪,运⾏,synchronize阻塞,wait和sleep挂起,结束。wait必须在synchronized内部调⽤。 调⽤线程的start⽅法后线程进⼊就绪状态,线程调度系统将就绪状态的线程转为运⾏状态,遇到synchronized语句时,由运⾏状态转为阻塞,当synchronized获得锁后,由阻塞转为运⾏,在这种情况可以调⽤wait⽅法转为挂起状态,当线程关联的代码执⾏完后,线程变为结束状态。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论