内容来自Spring实战第四版,对Spring的一些总结
Spring框架目的:简化java开发DI
- 基于POJO的轻量级和最⼩侵⼊性编程; 通过依赖注⼊和⾯向接⼝实现松耦合; 基于切⾯和惯例进⾏声明式编程; 通过切⾯和模板减少样板式代码。
对象的依赖关系将由系统中负责协调各对象的第三⽅组件在创建对象的时候进⾏设定。对象⽆需⾃⾏创建或管理它们的依赖关系;依赖关系将被⾃动注⼊到需要它们的对象当中去
依赖注入方式:构造器注⼊(constructor injection)setter注入 基于注解的注入
耦合具有两⾯性(two-headed beast)
- ⼀⽅⾯,紧密耦合的代码难以测试、难以复⽤、难以理解,并且典型地表现出“打地⿏”式的bug特性(修复⼀个bug,将会出现⼀个或者更多新的bug)。
- 另⼀⽅⾯,⼀定程度的耦合⼜是必须的——完全没有耦合的代码什么也做不了。为了完成有实际意义的功能,不同的类必须以适当的⽅式进⾏交互。
总⽽⾔之,耦合是必须的,但应当被⼩⼼谨慎地管理。
创建应⽤组件之间协作的⾏为通常称为装配(wiring)Spring有多种装配bean的⽅式:采⽤XML装配(常用)使⽤Java描述配置
切面 AOP好多人都说DI和AOP本就是一回事,但从Spring实战这本书看,他更倾向于是通过注入(DI)实现了切面编程(AOP);AOP本身更像是一种思想而不是技术,允许将系统的各个功能分离出形成重用的组件
分离前
分离后
AOP优点:将这些服务模块化,并以声明的⽅式将它们应⽤到它们需要影响的组件中去。使得组件会具有更⾼的内聚性并且会更加关注⾃⾝的业务,完全不需要了解涉及系统服务所带来复杂性。确保了POJO的简单性
在传统开发中,很多功能模块的代码难免重复出现,比如连接JDBC,核心代码其实就只有相当少一部分,模板代码占有了相当大的比重;Spring旨在通过模板封装来消除样板式代码。Spring的JdbcTemplate使得执⾏数据库 *** 作时,避免传统的JDBC样板代码成为了可能。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)