Spring入门学习——环境搭建

Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。

本文将从以下几个方面来介绍Spring:

  • Spring框架简介
  • Spring环境搭建
  • Spring控制反转
  • 创建Bean的方法
  • Bean属性赋值的方法
  • Spring依赖注入
  • 总结

Spring框架简介

Spring 是一个设计层面的框架,解决的是业务逻辑层和其他各层之间的松耦合问题。Spring的宗旨:不重新发明技术,让原有技术使用起来更方便。Spring主要有控制反转/依赖注入( IOC / DI )、面向切面编程( AOP )、声明式事务三大核心功能。下面我们看一下Spring的框架结构:

Spring入门学习——环境搭建_第1张图片

  • Test ( spring-text.jar ):提供测试功能的模块
  • Core Container:核心容器模块,使用Spring需要的最基本的模块
  1. Beans ( spring-beans.jar ):Spring框架最基本的部分,包括了控制反转和依赖注入;需要与Core配合使用
  2. Core ( spring-core.jar ):核心类,与Beans配合进行Beans管理
  3. Context ( spring-context.jar ):构建在BeansCore提供的基础之上,获取外部资源或管理注解等
  4. SqEL ( spring-expression.jar ):表达式语言支持属性的获取设置方法调用等
  • AOP (spring-aop.jar):实现面向切面编程的模块
  • Aspects:面向切面编程依赖模块
  • Data Access/Integration :数据的获取和整合,spring 封装数据访问层相关内容
  1. JDBC ( spring-jdbc.jar):Spring JDBC 封装的模块
  2. ORM ( spring-orm.jar ):封装了持久层框架的代码.例如 Hibernate
  3. OXM ( spring-oxm.jar ):提供一个支持Object/XML mapping实现的抽象层模块
  4. JSM ( spring-jsm.jar ):包括生产和消费消息的特性可以集成消息模块
  5. Transactions ( spring-tx.jar ):模块为实现了特殊借口的类和所以有POJO提供了方案和声明式事务管理
  • WEB:web项目整合模块
  1. WEB ( spring-web.jar ):当构建web项目时需要使用的依赖模块。
  2. Servlet ( spring--webmvc.jar ):springmvc使用的模块

Spring环境搭建

我们先来搭建Spring最基本的运行环境,通过上面的介绍我们知道Spring 运行需要最基本Jar就是核心容器(Core Container)需要的Jar额外我们还要加以个log的依赖包,如图

Spring入门学习——环境搭建_第2张图片

我们需要一个Spring的配置文件,这个配置文件不依赖于名称与位置,如下一个最简单的Spring配置文件。




我们怎么来验证方才的Spring环境是否生效呢,只需要我们加载一下Spring的配置文件即可

@Test
public void EnvironmentTest(){
    ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
}

我们来看一下输出:

没有报错说明我们的环境搭建成功了。

Spring中有一个非常重要的概念叫容器(Container),Spring其实就是通过将需要管理的类放入容器中来帮我们初始化、赋值和调用方法的;这个容器就是BeanFactory,而ApplicationContextBeanFactory的子接口,ApplicationContext还继承了其他高级接口是BeanFactory的扩展。ClassPathXmlApplicationContextApplicationContext的实现类是在classes目录下读取xml配置文件来初始化Spring容器。

Spring控制反转(IOC)

控制反转又是什么?控制是指对类的对象进行控制。原来实例化一个对象,给对象的属性赋值,调用对象的方法等都是有我们来操作操作的,现在不用我们来操作了交由Spring来操作,这就是控制反转的意思;控制反转其实Spring帮助我们管理对象。

创建Bean的方法

Spring创建Bean有三种方式:

  1. 通过构造方创建
  2. 通过实例工厂创建
  3. 通过静态工厂创建



    
    
    
    
        
        
    
    
    
        
        
    

    
    
    
    
    
    
@Test
public void BeanCreateTest(){
    ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    //无参构造方法创建Bean
    System.out.println(ac.getBean("people1", People.class));
    //有参构造和方法创建Bean
    System.out.println(ac.getBean("people1-1", People.class));
    System.out.println(ac.getBean("people1-2", People.class));

    //实例工厂创建Bean
    System.out.println(ac.getBean("people2", People.class));
    //静态工厂创建Bean
    System.out.println(ac.getBean("people3", People.class));
}

我们已经拿到了Spring管理的Bean的容器ApplicationContext,那么就可以通过getBean()从实例化的容器ApplicationContext中取出被Spring管理的Bean。

实例工厂就是需要先将工厂类实例化后才能生产对象,静态工厂是不需要实例化工厂类直接就可以获取对象。

注意:当使用构造方法创建对象时,如果Springpeizh8i匹配到多个构造方法,那么只会执行最后一个方法。

Bean属性赋值的方法

Spring常用的属性赋值方法有两种:

  1. 通过构造方法赋值(有参构造方法创建Bean时)
  2. 设置注入(通过Set方法)



    
    
        
        
    
    
    
        
            
                1
                2
                3
            
        
    

    
    
        
            
                a
                b
            
        
    

    
    
        
            
                a
                b
                c
            
        
    

    
    
        
            
                
                
            
        
    

Spring依赖注入(DI)

当Bean的属性是一个由Spring帮我们管理的对象时(IOC),我们想要给这个属性赋值就需要依赖于那个被Spring管理的对象,这个赋值的过程就叫依赖注入。




    
        
        
    
    
    
        
    

总结

Spring是一个Bean管理容器,它帮助我们统一的管理那些原来需要由我们自己管理的对象这就是控制反转(IOC),有的被管理的对象的属性是另一个被管理的对象,将被管理的对象赋值给另一个被管理的对象的属性的过程就叫依赖注入(DI)Spring创建对象可以通过构造方法,实例工厂,静态工程三种方式;属性赋值可以通过有参构造方法或设置注入(Bean的Set方法)。

 

你可能感兴趣的:(框架配置,Spring,IoC,DI)