Some About Spring
什么是Spring:Spring是一个从实际开发中抽取出来的框架,它对代码中需要重复解决的步骤抽象成为了一个框架。留给开发者的仅仅是与特定应用相关的部分,大大提高了企业应用的开发效率。例外、Spring也提供了一种Template设计原理,对大量的通用步骤进行了封装,开发者只需调用Template,而无须自己再次实现那些通用步骤。
Spring框架的基础:即:工厂模式与服务定位器模式等。
Spring是为企业应用开发提供的一个轻量级解决方案,包括:基于依赖注入的核心机制,基于AOP的声明式事务(联想下编程式事务),整合多种持久层技术的整合,整合很多优秀的WEB MVC框架等。
Spring框架的组成结构图:
aaarticlea/png;base64,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" alt="" />
使用Spring框架的优点:
1、 低侵入式设计,代码的污染极低
2、 Spring容器降低了业务对象替换的复杂性,提高了组件之间的解耦。
3、 Spring的AOP支持允许将一些通用任务如:安全,事务,日志等进行集中式处理,从而提供了更好的复用。
4、 Spring的ORM和DAO提供了与第三方持久化框架的良好整合,并简化了底层的数据库访问。
5、 Spring的高度开发性,并不强制应用完全依赖于Spring,开发者可自由选择Spring框架的部分或全部。
Spring框架的核心机制---IOC
搭建一个简单的spring框架
1、 首先创建一个web应用
2、导入必须的jar文件
aaarticlea/png;base64,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" alt="" />
(此处采用4.2版本)文件在http://www.springsource.org/download上下载。
3、 编写spring框架的应用上下文配置文件applicationContext.xml,该文件发在src目录下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> </beans>
4、 为了让Spring容器管理实体Bean,我们增加一个些Java类文件。 例如:
package com.my.beans; public class UserInfoT {
private Long id;
private String userName;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
} }
5、 在applicationContext.xml中添加对该对象的配置:
<!-- 由spring容器创建实例化对象,并设置其userName属性 -->
<bean name="userInfoBean" class="com.lovo.beans.UserInfoT">
<property name="userName" value="UserName"></property>
</bean>
6、 最后完成调用
aaarticlea/png;base64,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" alt="" />
通过前面的实例,程序代码并没有主动设置UserInfoT对象实例的userName属性,但是在执行调用对象实例的属性时,属性值为“UserName”,而属性都是在spring配置文件中配置的,这也就是说,对象实例的属性值不是程序主动设置的,而是由spring容器来负责注入的。
调用者依赖容器设置属性或者注入其他Bean的引用的这种方式,我们通常叫做“依赖注入”或“控制反转”,即springIOC。所谓依赖注入,是指程序运行过程中,如果需要另一个对象协作(调用它的方法,访问它的属性)时,无须在代码中创建被调用者,而是依赖于外部容器的注入。Spring的依赖注入对调用者和被调用者几乎没有任何要求,完全支持对POJO之间依赖关系的管理。
使用依赖注入,不仅可以为Bean注入普通的属性值, 还可以注入其他Bean的引用。通过这种依赖注入,JavaEE应用中的各种组件不需要以硬编码方式耦合在一起,甚至无须使用工厂模式。依赖注入所达到的效果,非常类似于传送的“共产主义”,当某个JAVA实例需要其他JAVA实例时,系统自动提供所需要的实例,无须程序显式获取。
依赖注入是目前最优秀的解耦方式,依赖注入让Spring的Bean以配置文件组织在一起,而不是以硬编码的方式耦合在一起。
在工作中, JAVA实例的调用者通过new关键字来创建被调用者的JAVA实例,程序高度耦合,效率低下,真实的应用极少使用这种方式,一般是初学者最喜欢。
Some About Spring的更多相关文章
- 基于spring注解AOP的异常处理
一.前言 项目刚刚开发的时候,并没有做好充足的准备.开发到一定程度的时候才会想到还有一些问题没有解决.就比如今天我要说的一个问题:异常的处理.写程序的时候一般都会通过try...catch...fin ...
- 玩转spring boot——快速开始
开发环境: IED环境:Eclipse JDK版本:1.8 maven版本:3.3.9 一.创建一个spring boot的mcv web应用程序 打开Eclipse,新建Maven项目 选择quic ...
- Spring基于AOP的事务管理
Spring基于AOP的事务管理 事务 事务是一系列动作,这一系列动作综合在一起组成一个完整的工作单元,如果有任何一个动作执行失败,那么事务 ...
- [Spring]IoC容器之进击的注解
先啰嗦两句: 第一次在博客园使用markdown编辑,感觉渲染样式差强人意,还是github的样式比较顺眼. 概述 Spring2.5 引入了注解. 于是,一个问题产生了:使用注解方式注入 JavaB ...
- 学习AOP之透过Spring的Ioc理解Advisor
花了几天时间来学习Spring,突然明白一个问题,就是看书不能让人理解Spring,一方面要结合使用场景,另一方面要阅读源代码,这种方式理解起来事半功倍.那看书有什么用呢?主要还是扩展视野,毕竟书是别 ...
- 学习AOP之深入一点Spring Aop
上一篇<学习AOP之认识一下SpringAOP>中大体的了解了代理.动态代理及SpringAop的知识.因为写的篇幅长了点所以还是再写一篇吧.接下来开始深入一点Spring aop的一些实 ...
- 学习AOP之认识一下Spring AOP
心碎之事 要说知道AOP这个词倒是很久很久以前了,但是直到今天我也不敢说非常的理解它,其中的各种概念即抽象又太拗口. 在几次面试中都被问及AOP,但是真的没有答上来,或者都在面上,这给面试官的感觉就是 ...
- 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑 ...
- Spring之旅(2)
Spring简化Java的下一个理念:基于切面的声明式编程 3.应用切面 依赖注入的目的是让相互协作的组件保持松散耦合:而AOP编程允许你把遍布应用各处的功能分离出来形成可重用的组件. AOP面向切面 ...
- Spring之旅
Java使得以模块化构建复杂应用系统成为可能,它为Applet而来,但为组件化而留. Spring是一个开源的框架,最早由Rod Johnson创建.Spring是为了解决企业级应用开发的复杂性而创建 ...
随机推荐
- H5 JS API 02
1.1 网络状态 我们可以通过window. navigator.onLine来检测,用户当前的网络状况,返回一个布尔值,这个不能实时的通知. addEventListener 进行绑定online从 ...
- Ubuntu 查看和杀死进程
1.ps -e 2.netstat -antup 3.kill pid 4.pgrep 进程名 5.killall 进程名 6.kill -9 pid
- sys模块和os模块,利用sys模块生成进度条
sys模块import sysprint(sys.argv)#sys.exit(0) #退出程序,正常退出exit(0)print(sys.version) #获取 ...
- 去掉IE下input的叉号
IE10下的Input Text和谷歌下面的 input search 一旦输入内容,会在最右端出现一个叉号,点击后,内容就会自动清空,看似方便,其实有些场景并不需要,需要写代码清除掉. 代码如下: ...
- VC++ 实现文件与应用程序关联
日常工作中,doc文件直接双击后,就能启动word软件,并读取该文档的内容在软件中显示,这都得益于注册表的配置,我们的软件也需要实现这样的功能,该如何写注册表以及写入哪些内容呢?下面的两个函数就能实现 ...
- hdu4607 Park Visit(树的直径)
Park Visit Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to android.widget.ProgressBar$SavedState
java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to android.widget.Progress ...
- python之路-Day3
字典 dic{key:value} 元组与列表相似,唯一就是不能修改dic = {'name':'alex','age':18}查询print(dic['name']) #会报错get方法查询,查询之 ...
- SQLServer2008R2 error 40解决方法
实际遇到的问题,以下为搜到的解决方案,亲测可用 转自 http://blog.csdn.net/laga516/article/details/7696577 最近一直在配置服务器, 这当中最头疼的就 ...
- String类的构造方法详解
package StringDemo; //String类的构造方法详解 //方法一:String(); //方法二:String(byte[] bytes) //方法三:String (byte[] ...