Spring简单介绍

Spring概念:Spring框架由Rod Johnson开发,2004年发布了Spring框架的第一版。Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率。
Spring优点:

  • 低侵入式设计,代码的污染极低。
  • 独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺。
  • Spring的IoC容器降低了业务对象替换的复杂性,提高了组件之间的解耦。
  • Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用。
  • Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问。
  • Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部。
Spring核心技术: IoC和AOP,能够实现类之间、模块之间的解耦合。
IoC:IoC(控制反转)就是依赖倒置原则的一种代码设计思路。就是把原先在代码里面需要实现的对象创建、对象之间的依赖,反转给容器来帮忙实现。
Spring IOC容器通过xml,注解等其它方式配置类及类之间的依赖关系,完成了对象的创建和依赖的管理注入。实现IOC的主要设计模式是工厂模式。
IoC技术实现:DI是IoC的技术实现, DI(Dependency Injection)依赖注入,只需要在程序中提供要使用的对象的名称就可以,至于对象在容器中如何创建、赋值、查找都由容器内部实现。Spring是使用DI实现了IoC的实现,Spring底层创建对象使用的是反射机制。
使用IoC,由Spring创建对象实现步骤:
1. 创建maven项目 【Spring简单介绍】Spring简单介绍
文章图片

2. 加入maven的依赖:Spring的依赖,junit依赖
org.springframework spring-context 5.2.5.RELEASE junit junit 4.11 test

3. 创建类(接口和实现类):创建类和没有使用框架一样,就是普通类。 Spring简单介绍
文章图片

4. 创建Spring需要使用的配置文件,声明类信息,这些类交由Spring创建和管理 Spring的配置文件:
  1. beans:是根标签,Spring把java对象称为bean。
  2. spring-beans.xsd:是约束文件,和mybatis指定 .dtd是一样的。
告诉Spring创建对象:
首先要声明bean,一个bean标签声明一个对象,就是告诉Spring要创建某个类的对象。
id:对象的定义名称,唯一值。Spring就是通过这个名称找到对象。
class:类的全限定名(不能是接口,因为Spring是反射机制创建对象,必须是类)

5. 测试Spring创建的对象 使用由Spring创建的对象:
  1. 指定Spring配置文件的名称
    String config="ApplicationContext.xml";
  2. 创建表示Spring容器的对象,ApplicationContext;
    • ApplicationContext就是表示Sprring容器,通过容器获取对象;
    • ClassPathXmlApplicationContext:表示从类路径中加载Spring的配置文件(在target下面读取指定配置文件);
    ApplicationContext ac=new ClassPathXmlApplicationContext(config);

    从容器中获取对象:
    注意:getBean("配置文件中bean的id值");因为getBean返回值类型是Objecct类型的所以需要强转;
    SomeService ss=(SomeService) ac.getBean("someServiceImpl");

测试结果:
package com.cn.spring; import com.cn.spring.service.SomeService; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestSpring { @Test public void test01(){ String config="ApplicationContext.xml"; ApplicationContext ac=new ClassPathXmlApplicationContext(config); SomeService ss=(SomeService) ac.getBean("someServiceImpl"); ss.doSome(); } }

Spring简单介绍
文章图片

未完待续。。。。。。

    推荐阅读