spring是分层的javaSE/EE应用的full-stack(全栈)轻量级开源框架,它是ioc(lnversion of control)控制反转和aop(aspect oriented programming)面向切面编程为核心,提供了表现层springmvc和持久层spring jdbc业务层的事务管理等企业级应用解决方案,还能实现将开源世界中众多优秀的第三方框架和类库整合,越来越受欢迎的javaee企业级应用框架。
spring优点 IOC解耦,简化开发通过spring提供的ioc容器,可以将对象间的依赖关系交由spring管理,避免硬编码造成的程序间过渡耦合,用户也不必再为了编写工厂类,属性文件解析等底层实现编写代码。可以更加专注于业务系统需求实现。
AOP面向切面编程支持用过spring的aop功能,方便实现面向切面编程,很多使用传统oop编程不容易实现的业务功能,可以通过aop轻松实现,比如事务管理,日志管理。
声明式事务支持通过声明式方式灵活实现事务管理,提高开发效率和质量,将我们(程序员)从单调烦闷的事务管理代码中解脱出来
方便程序测试可以使用非容器依赖的方式进行程序测试工作,让测试工作更加轻松,更加方便。
集成第三方优秀框架spring框架降低了第三方框架的集成使用难度,提供了对各种框架(hibernate,strus2,quartz,mybatis,springmvc等)的直接支持
学习java源码的经典案例spring的源码设计精妙,结构清晰,匠心独具,处处体现了大师对java设计模式的灵活应用以及java技术的高深造诣,他的源码无疑是java技术的最佳实践案例
IOC介绍IOC(inversion of control)控制反转,是面向对象编程的一个重要法则,用于消减计算机程序间的耦合问题。控制反转中分为两种类型,一种是DI(Dependency Injection)依赖注入,另外一种是DL(Dependency Lookup)依赖查找。实际应用中依赖注入使用更多。
依赖注入介绍
在我们刚才完成的spring的ioc案例中,已经让spring框架为我们创建了客户业务层,客户持久层对象。但是层与层之间的关系没有维护起来。接下来我们来看spring框架的依赖注入。首先给依赖注入下一个定义,依赖注入(Dependency Injection),它是spring框架核心ioc的具体实现。我们在编写程序代码时,通过控制反转,把对象交给spring管理。但是代码中必然会存在一定的依赖关系,比如在业务层(service)中,需要引用持久层(dao)对象,那么这种层与层之间的关系,我们也交给spring来维护。
简单理解:依赖注入就是给成员变量赋值。
构造方法注入构造方法注入。顾名思义,就是通过类中的构造方法,给成员变量赋值。
set方法注入
set方法注入。顾名思义,就是通过类中的set方法,给成员变量赋值。