spring IOC容器
2016-01-21 22:54
513 查看
1为什么使用spring
我们知道任何一个应用都需要用到多个类(并不是所有的应用都像Hello the world ),既然有多个类,那么久涉及到了多个之间的协作,多个类之间如何协作呢,当然是靠通信了(就像我们人与人之间)。比如我们开发了一款软件,比如eclipse。我们知道eclipse有若干个组成部分(面板1,面板2,面板3,按钮1,按钮2,按钮3,下拉菜单1,下拉菜单2,下拉菜单3,啊好痛苦写不下去了),我们将每一个组成部分对应一个类。好了eclipse应该是这样的。
好了,我们该启动一下这个Eclipse了。
如果你是写Boot那个类的程序员,我不知道你会有什么想法,我只会骂娘,靠这段代码如此简单, 只是把eclipse的各个面板,按钮等等实例化了,然后传递给Eclipse实例,然后自己写代码写到手抽筋。好了,为了不让你写到手抽筋,你可以使用spring了, 在大家开发的时候你可以告诉他们,让他们每写好一个类,就到配置文件中配置一下。然后:
高兴了吧,虽然做的事情依旧没有技术含量,但是至少不用写代码,写到手抽筋了。
好了前面的例子在扯淡,Eclipse根本不会设计成这个烂德行,spring的精髓也并不是让你把工作量分担给同事。
spring的精髓是IOC容器。生么是IOC容器呢?就是对IOC规范的实现
就是依赖注入这种规范的实现。这就好比我们运行java代码都需要jvm,但我们都知道jvm只是一个规范,而我们用到hotspot,jrocket等等才是jvm的具体实现。
好了生么是IOC:Inversion of Control,控制反转,有时候也叫DI,dependence injection,依赖注入。
好了,你只需要记住ioc,di只是个名字而已,就和某人叫xxx一样。好了,现在讲一下ioc,和di的精髓,就是我们将一个类写好了之后,然后在spring的配置文件中进行配置。当我们在某个程序段中需要用到某个类的一个实例(并不是所有的类都是无参的,并不是所有的类的实例你都会初始化),你直接通过这个实例对应的名称就可以了。比如就像我上面的那个Eclipse的例子。spring IOC容器,就相当于一个巨大的Map
我们知道任何一个应用都需要用到多个类(并不是所有的应用都像Hello the world ),既然有多个类,那么久涉及到了多个之间的协作,多个类之间如何协作呢,当然是靠通信了(就像我们人与人之间)。比如我们开发了一款软件,比如eclipse。我们知道eclipse有若干个组成部分(面板1,面板2,面板3,按钮1,按钮2,按钮3,下拉菜单1,下拉菜单2,下拉菜单3,啊好痛苦写不下去了),我们将每一个组成部分对应一个类。好了eclipse应该是这样的。
public class Eclipse{ Panel1 panel1; Panel2 panel2; Panel3 panel3; .... ... .. . }
好了,我们该启动一下这个Eclipse了。
public class Boot{ public static void main(String[] argv){ Panel1 p1=new Panel1(......); Panel2 p2=new Panel2(.....); Panel3 p3=new Panel3(.....); ..... Eclipse eclipse=new Eclipse(); eclipse.panel1=p1; eclipse.panel2=p2; eclipse.panel3=p3; ..... .. . } }
如果你是写Boot那个类的程序员,我不知道你会有什么想法,我只会骂娘,靠这段代码如此简单, 只是把eclipse的各个面板,按钮等等实例化了,然后传递给Eclipse实例,然后自己写代码写到手抽筋。好了,为了不让你写到手抽筋,你可以使用spring了, 在大家开发的时候你可以告诉他们,让他们每写好一个类,就到配置文件中配置一下。然后:
public class Boot{ public static void main(String[] argv){ ApplicationContext context=new ApplicationContext(....); Eclipse eclipse=(Eclipse)context.getBean("Eclipse"); } }
高兴了吧,虽然做的事情依旧没有技术含量,但是至少不用写代码,写到手抽筋了。
好了前面的例子在扯淡,Eclipse根本不会设计成这个烂德行,spring的精髓也并不是让你把工作量分担给同事。
spring的精髓是IOC容器。生么是IOC容器呢?就是对IOC规范的实现
就是依赖注入这种规范的实现。这就好比我们运行java代码都需要jvm,但我们都知道jvm只是一个规范,而我们用到hotspot,jrocket等等才是jvm的具体实现。
好了生么是IOC:Inversion of Control,控制反转,有时候也叫DI,dependence injection,依赖注入。
好了,你只需要记住ioc,di只是个名字而已,就和某人叫xxx一样。好了,现在讲一下ioc,和di的精髓,就是我们将一个类写好了之后,然后在spring的配置文件中进行配置。当我们在某个程序段中需要用到某个类的一个实例(并不是所有的类都是无参的,并不是所有的类的实例你都会初始化),你直接通过这个实例对应的名称就可以了。比如就像我上面的那个Eclipse的例子。spring IOC容器,就相当于一个巨大的Map
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- 模拟Spring的简单实现
- spring+html5实现安全传输随机数字密码键盘
- Spring中属性注入详解
- SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
- struts2 spring整合fieldError问题
- spring的jdbctemplate的crud的基类dao
- 读取spring配置文件的方法(spring读取资源文件)
- Spring Bean基本管理实例详解
- java实现简单美女拼图游戏
- 详解Java的Spring框架中的事务管理方式
- 解析Java的Spring框架的BeanPostProcessor发布处理器
- Java开发框架spring实现自定义缓存标签
- java基本教程之线程休眠 java多线程教程
- JSP开发中在spring mvc项目中实现登录账号单浏览器登录
- spring boot实战之内嵌容器tomcat配置