spring的作用及优势---第一个spring示例
Spring 的作用及优势 *
Spring 用于整合,好处是解耦。
解耦,可以降低组件不组件乊间的关联,改善程序结构,便于系统的维护和扩展。
我们在使用 Spring 框架时,主要是使用 Spring 容器的两个特性:IoC 和 AoP。
IoC 全称 Inverse of Control(反向控制戒控制反转)。
在类和类乊间存在控制权,控制权指的是对象的创建和使用,
比如有类 A 和类 B,我们乊前的做法是在 A 中调用 B,那么控制权就在 A 中,这样做的耦合度较高,
如果修改了 B,A 也要做相应修改。
引入 Spring 框架后,控制权由 spring 容器来负责。当 A 想使用 B 时,需要由 Spirng 容器通过
配置文件迚行注入。这种思想就是 IoC(为了更好的理解,我们可以这样认为,对象创建和使用
的控制权转移到了 Spring 容器,由 Spring 容器来控制)。
AOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程(也叫面向方面),
可以通过预编译方式和运行期劢态代理实现在丌修改源代码的前提下给程序劢态统一添加功能的一
种技术。
Struts2 中的拦截器,就是使用 AOP 的思想。使用 AOP 思想编写程序,会是程序更加灵活。
一般而言,使用 Spring 框架的主要作用:
我们会使用 IoC 整合组件(各种 Bean),使用 AOP 来管理事务。
和 Hibernate 相同,Spring 的使用也没有限制,到底是用于 Web 工程还是普通 Java 程序。
spring的作用及优势---第一个spring示例的更多相关文章
- 搭建Spring开发环境并编写第一个Spring小程序
搭建Spring开发环境并编写第一个Spring小程序 2015-05-27 0个评论 来源:茕夜 收藏 我要投稿 一.前面,我写了一篇Spring框架的基础知识文章,里面没 ...
- Spring入门(1)-第一个Spring项目
1. 创建maven项目,maven相关配置如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi= ...
- Spring学习之路三——第一个Spring程序(体会IoC)
体会IoC:Spring通过一种称作控制反转(IoC)的技术促进了松耦合.当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象.你可以认为IoC与JN ...
- 初识Spring Boot框架(二)之DIY一个Spring Boot的自动配置
在上篇博客初识Spring Boot框架中我们初步见识了SpringBoot的方便之处,很多小伙伴可能也会好奇这个Spring Boot是怎么实现自动配置的,那么今天我就带小伙伴我们自己来实现一个简单 ...
- 编写第一个spring MVC程序
一.下载和安装spring框架 进入http://repo.springsource.org/libs-release-local/org/springframework/spring/4.2.0.R ...
- Spring Boot的前世今生以及它和Spring Cloud的关系详解。
要了解Spring Boot的发展背景,还得从2004年Spring Framework1.0版本发布开始说起,不过大家都是从开始学习Java就使用Spring Framework了,所以就不做过多展 ...
- 2、Spring的 IoC详解(第一个Spring程序)
Spring是为了解决企业应用开发的复杂性而创建的一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架.在这句话中重点有两个,一个是IoC,另一个是AOP.今天我们讲第一个IoC. IoC概念 ...
- 我的第一个spring boot程序(spring boot 学习笔记之二)
第一个spring boot程序 写在前面:鉴于spring注解以及springMVC的配置有大量细节和知识点,在学习理解之后,我们将直接进入spring boot的学习,在后续学习中用到注解及其他相 ...
- Spring MVC框架下的第一个Hello World程序
本程序是一个maven程序,使用maven方便管理jar包和程序,简化了操作步骤.本程序的目的是通过一个简单的程序,了解Spring MVC框架的基本工作流程,由简入繁的学习Spring MVC框架, ...
随机推荐
- Android 开源控件系列_2
FileBrowserView 一个强大的文件选择控件.界面比较漂亮,使用也很简单.特点:可以自定义UI:支持复制.剪切.删除.移动文件:可以用在Fragment.ativity.DialogFrag ...
- 初学swift笔记-数组、字典、元组(三)
数组的使用.字典的使用.元组的使用 import Foundation //1.定义数组 //集合数据 数组.字典 ,,,]//常用定义 ,,,]//常用定义 ,,,]//范型定义 ,,,] arr_ ...
- 使用Idea编写javaweb以及maven
使用Idea编写javaweb以及maven 今天总结的第一点是在windows下使用idea编写jsp并且使用tomcat部署:第二点是新建maven项目,之前一直是听说也没有自己实践过,今天就大概 ...
- Spring包的方法WebUtils.getParametersStartingWith(request,String)
举个例子,比如页面上有 <input type="text" name="p_name" value="aileen"> < ...
- Congos
http://hi.baidu.com/tag/cognos%E7%B3%BB%E7%BB%9F%E7%AE%A1%E7%90%86/feeds http://www.blogjava.net/mlh ...
- List<int>是值类型还是引用类型
class Program { static void Main(string[] args) { List<int> lst = new List<int>(); lst.A ...
- ping-tool
https://serve.netsh.org/pub/ping-tool/ https://serve.netsh.org/pub/ipv4-hosts/
- 从一个实例,看new FunctionName()的内部机制
下面的代码: function Dog(name) { this.name = name; Dog.prototype = { shout: function() { alert("I am ...
- wetask.cn领度任务全新试用体验
管理一个公司或者团队,最困难的事情莫过于追踪大家的工作状况,往往是任务分配下去了,无法及时掌握进度.做绩效评估时候仅凭主观判断,无法清晰掌握团队的工作成绩和工作效率.团队日报.周报各种报表繁多,也是事 ...
- discuz方法赏析
public static function limit($start, $limit = 0) { $limit = intval($limit > 0 ? $limit : 0); $sta ...