spring基本概念
1)struts2是web框架,hibernate是orm框架
2)spring是容器框架,创建bean,维护bean之间的关系
3)spring可以管理web层,持久层,业务层,dao层,spring可以配置各个层的组件,并且维护各个层的关系
1、三种依赖注入(DI)(Dependency Injection)
- 接口注入(不推荐)
- 构造器注入(死的应用)
- getter,setter方式注入(比较常用)
在Spring创建对象的过程中,把对象依赖的属性注入到类中
https://www.cnblogs.com/duanxz/p/4516716.html
2、单例和多例
单例就是所有的请求都用一个对象来处理,比如我们常用的service和dao层的对象通常都是单例的。
多例则指每个请求用一个新的对象来处理,比如action。
在通用的SSH中,单例在spring中是默认的,如果要产生多例,则在配置文件的bean中添加scope="prototype";
http://blog.csdn.net/Jasonbeans/article/details/70211237
3、AOP(Aspect Oriented Programming)面向切面编程
通过预编译方式和运行期动态代理实现程序功能的横向多模块统一控制的一种技术。
AOP是OOP的补充,是Spring框架中的一个重要内容。
利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
AOP可以分为静态织入与动态织入
静态织入即在编译前将需织入内容写入目标模块中,这样成本非常高。
动态织入则不需要改变目标模块。
a.静态代理
根据每个具体类分别编写代理类
根据一个接口编写一个代理类
b.动态代理
针对一个方面编写一个InvocationHandler,然后借用JDK反射包中的Proxy类为各种接口动态生成相应的代理类
根据每个具体类分别编写代理类
根据一个接口编写一个代理类
b.动态代理
针对一个方面编写一个InvocationHandler,然后借用JDK反射包中的Proxy类为各种接口动态生成相应的代理类
Spring框架实现了AOP,使用
注解配置完成AOP比使用XML配置要更加方便与直观。
http://blog.csdn.net/u010987379/article/details/52152925
4、IOC(Inversion of Control)控制反转
概念:控制权由对象本身转向容器,由容器根据配置文件创建对象实例并实现各个对象的依赖关系 || 将对象的创建权,由Spring管理
核心:bean工厂
核心:bean工厂
例子:旅行社、婚姻介绍所
http://blog.csdn.net/dzy21/article/details/51737265
5、原理
http://blog.csdn.net/mdcmy/article/details/8542277
总结
1.使用spring ,没有new对象,我们把创建对象的任务交给spring框架
2.spring实际上是一个容器框架,可以配置各种bean(action/service/domain/dao),并且可以维护bean与bean的关系,
2.spring实际上是一个容器框架,可以配置各种bean(action/service/domain/dao),并且可以维护bean与bean的关系,
当我们需要使用某个bean的时候,我们可以getBean(id),使用即可.