您的位置:首页 > 编程语言 > Java开发

Spring的基本用法

2015-08-09 11:02 337 查看
Spring优点:

(1)低侵入式设计,代码的污染极低。

(2)依赖注入提高了组件之间的解耦。依赖注入让Spring的Bean以配置文件组织在一起,而不是以硬编码的方式耦合在一起。

(3)AOP支持将一些通用任务如安全、事务、日志等进行集中式处理,提供了更好的复用。

Spring容器

ApplicationContext 

ClassPathXmlApplicationContext

依赖注入的方式

(1)设值注入:使用属性的setter方法来注入被依赖的实例。

(2)构造注入:使用构造器来注入被依赖的实例。

设值注入优点:

(1)通过setter方法设定依赖关系显得更加直观、自然。

(2)对于复杂的依赖关系,采用构造注入会导致构造器过于臃肿,难以阅读。Spring在创建Bean实例时,需要同时实例化其依赖的全部实例,导致性能下降。使用设值注入能避免这些问题。

构造注入优点:

(1)构造注入可以在构造器中决定依赖关系的注入顺序,优先依赖的优先注入。

(2)对于依赖关系无需变化的Bean,构造注入更有好处。依赖关系在构造器中设定,则只有组件的创建者才能改变组件的依赖关系。

设值注入为主,构造注入为辅。

ApplicationContext的事件机制是观察者设计模式的实现。

在Web应用中,Spring容器通常采用声明式方式配置产生:开发者只要在web.xml文件中配置一个Listener,该Listener将会负责初始化Spring容器。前端MVC框架可以直接调用Spring容器(无需访问Spring容器本身)。在这种情况下,容器中Bean处于容器管理下,无需主动访问容器,只需接受容器的注入管理即可。Bean实例的依赖关系通常由容器动态注入,无需Bean实例主动请求。

容器中Bean的作用域

(1)singleton:单例模式,在整个Spring Ioc容器中,使用singleton定义的Bean将只有一个实例。

(2)prototype:原型模式,每次通过容器的getBean方法获取prototype定义的Bean时,都将产生一个新的Bean实例。

(3)request:对于每次HTTP请求,使用request定义的Bean都将产生一个新实例,即每次HTTP请求将会产生不同的Bean实例。

(4)session:对于每次HTTP Session,使用session定义的Bean都将产生一个新实例,即每次HTTP Session都将产生不同的Bean实例。

(5)global session:每个全局的HTTP Session对应一个Bean实例。

Spring默认使用singleton作用域。

使用自动装配注入合作者Bean

autowire属性

no:不使用自动装配。这是默认的配置。

byName:根据属性名自动装配。

byType:根据属性类型自动装配。

constructor:与byType类似,区别是用于构造注入的参数。

autodetect:BeanFactory根据Bean内部结构,决定使用constructor或byType。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: