美文网首页
Spring原理简介

Spring原理简介

作者: 义焃 | 来源:发表于2018-10-26 20:44 被阅读0次

Spring原理简介

在用ssh(Struts+Spring+Hibernate)实现的mvc模式中Spring是作为连接Struts和Hibernate的控制层。
与Spring框架相关的概念有以下:

  • 轻量级:轻量级是针对重量级容器(EJB)来说的,Spring的核心包不到1M大小,而使用Spring的核心包所需的资源也很小,所以可以在小型设备中使用。
  • 非侵入性:所有的框架都是提供大量的功能公用户去使用,从而简化开发时间和成本,但由于大量的使用了框架的API,使应用程序和框架发生了大量的依赖性,无法从框架中独立出来,更加无法使程序组件在其他程序中使用,这样的框架叫做入侵式的框架,而Spring目标是一个非入侵式的服务框架。
  • 容器:容器就是一个帮助你把原来自行编写程序去管理对象关系的工作转移给容器来做。Spring提供了容器功能,容器可以管理对象的生命周期、对象与对象之间的关系、你可以通过编写XML来设置对象关系和初始值,这样容器在启动之后,所有的对象都直接可以使用,不用编写任何编码来产生对象。
  • IOC/DI:Spring最核心的概念就是IOC(反转控制),而他的另一个名字就是DI(依赖注入);使用Spring,你不必在程序中维护对象的依赖关系,只要在xml中设定即可,Spring容器会自己根据相关的配置去产生他们之间的关系,所有的关系都是都是在容器运行的时候注入的,而他们本身是没有关系的。打个比方:比如张三和李四,之前是没有任何关系的两个对象,但当他俩进入班级这个容器中后,班级这个容器就将他俩赋予了同学的关系。这样的做法就是用容器去赋予对象之间的关系,而不是对象本身之间来创建关系。这样做的好处显然实现了松偶合。
  • AOP(Aspect Oriented Programming面向切面/方面编程):Spring最被人重视的另一个方面就是对AOP的支持,AOP是Spring支持的一个子容器。在一个服务流程中插入与业务逻辑无关的系统服务逻辑(如:Logging登录、Security安全等),而把这些独立出来设计成一个对象,这样的对象称为Aspect。打个比方:做一次环球旅行,在旅行途中要经过若干国家的海关关口办理出入境手续,这样的一个一个的关口就是整个旅行流程中的一个一个的Aspect。

demo:(仅仅解释了什么是依赖注入DI或者叫反转控制IOC)

1、首先看一个原来的操作

 //User.java 
package org.myspring; 
public class User { 
private String username; 
private int age; 
public int getAge() { return age; } 
public void setAge(int age) { this.age = age; }
public String getUsername() { return username; } 
public void setUsername(String username) { this.username = username; } }
 //Test.java package org.myspring; public class Test { public static void main(String[] args) { User user=new User(); user.setUsername("zhangsan"); System.out.println(user.getUsername()); } } 

以上是原始的做法,产生的问题是:如果想要把zhangsan改为lisi则需要在Test类中修改代码,这样是一种紧耦合,改动一个类就牵扯到另外一个类。 松耦合的情况是User.java和Test.java这两个类都不需要改动,就能实现输出不同username属性的效果,这就需要加入Spring的IOC/DI机制。方法如下:

2、
MyEclipse->Add Spring Capabilities...->仅加入核心包即可,这样就生成了applicationContext.xml配置文件

3、修改applicationContext.xml:在xml文件的编辑页中 右键->Spring->New Bean,在弹出窗口中进行如下图的设置。 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="user" class="org.myspring.User" abstract="false" lazy-init="default" autowire="default" dependency-check="default"> <property name="username"> <value>zhangsan</value> </property> <property name="age"> <value>25</value> </property> </bean> </beans>

4、新的测试类 //Test.java package org.myspring; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class Test { public static void main(String[] args) { ApplicationContext c FileSystemXmlApplicationContext("src/org/myspring/applicationContext.xml"); User user=(User)context.getBean("user"); System.out.println("name:"+user.getUsername()+"; age:"+user.getAge()); } } 注意:在上面的代码中context.getBean()返回的是一个Object对象,需要进行相应的类对象的转换。在代码中没有出现用new来实例化对象的语句,实现了Test类跟User类的松耦合。对象的实例化都在xml配置文件中实现了。

相关文章

  • READY EVERYDAY #1

    1.Spring, Spring MVC原理, 源码 Spring 简介 https://www.ibm.com/...

  • Spring原理简介

    Spring原理简介 在用ssh(Struts+Spring+Hibernate)实现的mvc模式中Spring是...

  • Spring boot | 内嵌容器

    简介:Spring boot集成内嵌tomcat容器原理。 Spring boot 启动流程 SpringAppl...

  • 重要知识点汇总

    一、Spring涉及知识点1、spring简介、优点2、spring的AOP及其原理3、spring的IOC4、s...

  • SpringMVC之简介

    二、简介 目录:简述、中心控制器、SpringMVC执行原理 1.简述 Spring MVC是Spring Fra...

  • spring实现原理简介

    大家好,我是IT修真院上海分院第02期学员,一枚正直善良的java程序员。今天给分享一下关于Java中AWT的相关...

  • Spring-MVC原理简介

    前言 现在服务器开发中,非常流行restful形式的接口,最为常见的开源框架有Springmvc,下面我们来简单的...

  • 第一节 Spring简介及历史

    知识要点: ■ Spring简介 ■ Spring体系结构 ■ Spring5新特性 一、 Spring简介 ...

  • 转:Spring IOC和AOP 原理彻底搞懂

    本博中关于spring的文章:Spring IOC和AOP原理,Spring事务原理探究,Spring配置文件属性...

  • Spring 整体架构

    本章要点 Spring简介 Spring的模块 Spring简介 Spring到底是什么呢?Spring 框架是一...

网友评论

      本文标题:Spring原理简介

      本文链接:https://www.haomeiwen.com/subject/cpgltqtx.html