`

IOC,AOP浅谈

    博客分类:
  • JAVA
阅读更多
 
看了<<spring in action>>以后收获真的很大,刚开始看第一遍有些概念就没看懂,比如说IOC和AOP,这不我又看了第二遍,有时候书多读几遍就有几遍不同的收获,我就把自己的收获拿来与大家一起分享下,也许我的想法有点太片面化,希望指导.所以在此也就浅谈一下好了.
IOC概念的精髓:
我的理解是包括两个部分.
一:面向接口编程,而不是面向类编程
真正和外界交互都是通过接口来进行的,内部的交互也是接口与接口来进行的,这样外部不知道具体的实现细节,当然他也不需要知道.内部实现类的改变不会影响外部接口与外界的交互,降低了耦合度.内部之间各功能部分的调用也是用接口,这样也降低了内部各部分的耦合度.耦合度降低了方便修改与测试.
面向接口编程的概念在那本很经典的书<<设计模式>>中早已经提出了,只是很少引起人们的重视而已.面向接口编程的提出很大程度上对降低程序的耦合度很有帮助.
二:依赖注入
当然依赖注入是spring IOC中很核心的重点了.单单通过字面意思,我们就应该明白原先的依赖是需要在程序中去完成,而现在依赖可以不在程序中完成,通过我们的配置,容器会自动将依赖添加进去的.这在很大程度上方便了程序的编写,同时我觉得通过配置文件可以起到导航的作用.就像STRUTS的配置文件一样.这种注入很灵活方便.关于依赖注入我还在消化,因为应用的不多,所以其他的发现还没有.
 
AOP概念的精髓:(这个概念相对抽象就把我理解的说出来好了)
一:面向切面编程
当然你会觉得我是在搬书上的东西,不过对切面的理解我是看了其他的书才有所理解,至少才看这个概念还是不理解的.如果你明白了切面,明白了切面编程的重要性,我想你就应该明白了为什么AOP会这样受欢迎,他很好的解决了代码重用的问题,至少切面是可以重用的,这样降低了编码量,其次,他也是降低了各功能模块的耦合度,业务模块和切面模块(暂且这样叫吧,算是各切面的功能模块吧)可以单独的维护,业务模块并不知道切面模块的存在,这样真正的项目关心的重点就完全放在业务上了,不会为切面模块而浪费很多时间.提高了效率.
二:支持事物声明调用
开发过EJB的人都知道,在EJB里的事物声明调用比较麻烦,而且事物不能脱离EJB容器而存在.而spring很好的解决了这个问题,因为他是面向切面编程,他对事物调用的支持非常好,可以在需要调用的地方做个声明这样事物就被调用了.他不需要EJB容器,而且使用方便灵活.
分享到:
评论

相关推荐

    浅谈 Spring 原理 透析,ioc aop

    浅谈 Spring 原理 透析,IOC 和 AOP Spring 框架是一个从实际项目开发经验中抽取的,可高度重用的应用框架。它是一个轻量级容器,带有包装器,使许多不同的服务和框架更易于使用。轻量级容器接受任何 JavaBean,而...

    浅谈SSH学习要点

    最后,Spring框架,以其依赖注入(IoC)和面向切面编程(AOP)闻名。IoC使得对象间的依赖关系可以通过配置文件或注解来管理,降低了代码的耦合度。AOP则是处理横切关注点,如日志、事务等,使代码更清晰。基础使用中...

    浅谈Spring中的Quartz配置

    Quartz与Spring的集成使得我们可以充分利用Spring的IoC(Inversion of Control)和AOP(Aspect-Oriented Programming)特性来管理任务。这篇博文主要探讨了如何在Spring应用中配置和使用Quartz。 首先,我们需要...

    浅谈Spring解决jar包依赖的bom

    Spring起初只专注ioc和aop,现在已发展成一个庞大体系。比如security、mvc等。如此一来,不同模块或者与外部进行集成时,依赖处理就需要各自对应版本号。比如,较新spring与较老的quartz,它们集成就会遇到问题,给...

    浅谈Action+Service +Dao 功能

    浅谈Action+Service+Dao功能 1. Action、Service、DAO简介 Action是管理业务调度和管理跳转的,Service是管理具体的功能的,DAO只完成增删改查。总结这三者,Action像是服务员,Service是厨师,DAO是厨房的小工。...

    浅谈Java三大框架与应用

    Spring通过IoC容器管理和协调这些业务组件,同时也使用AOP进行事务管理;Hibernate则负责数据的持久化,将对象转换为数据库中的记录。它们通过配置文件(如Spring的applicationContext.xml和struts-config.xml)进行...

    浅谈Spring的两种配置容器

    除了BeanFactory的基本服务,ApplicationContext还支持发布应用事件、处理国际化信息、AOP(面向切面编程)等高级特性。ApplicationContext在启动时会初始化所有管理的Bean,这意味着它需要更多的系统资源,但同时也...

    浅谈关于java程序员面试的一些事项

    Spring的AOP和IOC机制也是常见的问题,你需能说明在实际项目中的应用。此外,还要熟悉Servlet的原理和生命周期,以及如何使用Socket进行网络通信。对Linux的基本操作和Shell脚本,Java算法,数据结构,多线程和并发...

    浅谈Spring与SpringMVC父子容器的关系与初始化

    在Java Web开发中,Spring框架是核心的依赖注入(DI)和面向切面编程(AOP)框架,而Spring MVC则是Spring框架的一个模块,专门用于处理HTTP请求和响应。两者之间的关系体现在它们各自管理的Bean容器上,形成了所谓...

    (完整版)Java系统架构师面试题 (2).docx

    15. 浅谈一下负载平衡的原理? 负载平衡是一种技术,用于实现高可用性和高性能,通过将请求分配到多个服务器上来实现。 16. 怎么办理权限分派 有几种权限分派模型? 权限分派模型包括自主型接见控制、强迫型接见...

    JAVA自学之路

    Spring IOC + AOP, 面向对象 + 面向切面,完善的旅程。 把以前自己的小项目加入Struts、Spring、Hibernate的元素吧。 去研究各种商业项目的业务逻辑吧,才能在你的简历中加入浓重的一笔。 EJB3.0,java在走了...

Global site tag (gtag.js) - Google Analytics