栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring基于xml标签详解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring基于xml标签详解

一、Spring介绍
在日常开发过程中经常会提到三大框架(SSM)指的是Spring、SpringMVC、MyBatis。其中一个非常重要的框架就是Spring。Spring目前隶属于皮沃托公司,Spring在刚刚出来的时候只有Spring framework一款产品。我们习惯性的简称它为Spring,但是发展到现在Spring旗下已经有非常非常多的框架了,例如:SpringBoot、SpringCloud、SpringData、SpringSecurity等等。但是我们还是习惯性成将Spring framework成为Spring。
二、Spring到底是什么框架
Spring它并不想Mybatis专门去解决某一个层面的问题,它在项目成扮演的是一个管理者的角色,负责对我们的项目中的对象进行管理,包括创建、注入、代理等等。实现了一个解耦的目的。Spring在管理对象时会将对象存储起来,所以Spring我们也可以将它看成一个容器。
三、Spring的两大核心能力
IOC:Inverse Of Control(控制反转),从前我们的项目中对象的管理创建是由程序员自己来处理,但是Spring框架会代替我们对对象进行创建和管理。控制权从我们手中转移到了Spring框架,所以称为控制反转。
DI(Dependency Injection):依赖注入,Spring在创建对象时还会将对象中所依赖的其他数据或者对象注入到 相应的属性上。
IOC和DI很容易混淆,IOC包含了DI的,IOC是目的,DI是过程。
AOP:(Aspect Oriented Programming)面向切面编程。留到后面详细讲解。
四、SpringIOC
使用Spring首先要引入依赖,Spirng框架下有很多依赖。在使用maven下载依赖时,只需要通过顶端依赖spring-context开始就可以下载到其他所有的依赖。
准备工作:
新建maven普通java项目
在pom.xml中通过spring-context的坐标下载spring的相关依赖:


    org.springframework
    spring-context
    5.2.1.RELEASE

Spring容器类型:
容器的顶端是ApplicationContext,在它下面有三个常用的实现类。
ClassPathXmlApplicationContext:通过配置在classpath下的一个xml文件来完成容器初始化。
AnnotationConfigApplicationContext:通过扫描注解初始化容器
WebApplicationContext:在WEB环境下使用的Spring容器
FileSystemApplication:通过外部XML文件完成容器的初始化
配置版的IOC:
初始化容器的API:

  ApplicationContext ac=new ClassPathXmlApplicationContext("配置文件的名称");

**配置版的IOC是用过一个XML文件描述bean信息。
1.在项目的resources目录下新建一个xml文件,名为applicationContext.xml,该文件就是spring的核心配置文件,Spring会解析该文件获得必要信息,然后进行IOC的工作。
2.在applicationContext.xml中添加beans根标签,并且在benas标签中添加一个xml的schema约束(类似于DTD)。



    

3.通过配置创建对象
● 通过无参构造创建对象(Spring默认的方式,也是最常用的方式)如下:


● 选择构造方法创建对象
当我们的类具备多种构造函数时,我们可以通过spring选择某一个构造函数来完成对象的创建,具体的方式就是通过bean标签下的constructor-arg标签来完成配置。例如:

public class Service {
    public Service(){
        System.out.println("无参构造创建");
    }
    public Service(int a){
        System.out.println("单参构造创建");
        System.out.println(a);
    }
    public Service(String a,String b){
        System.out.println("双参构造创建");
    }
    public void checkUser(){
        System.out.println("执行业务层");
    }
}

        小鑫科技
        小鑫科技

按照上述方式配置,最终spring会选择双参构造方法来完成对象的创建。
● 通过工厂模式创建对象
首先通过一个bean标签创建一个工厂对象(工厂类自己编写)


通过bean标签调用工厂对象的工厂方法来创建目标对象


● 通过静态工厂模式创建对象
通过bean标签class的值为工厂的类路径,再通过静态工厂方法的方法名来完成对象的创建


4.设置对象的单例或非单例
通过spring创建对象时,可以选择使用单例或者是非单例模式。spring默认情况是创建对象采用的是单例模式。
要配置单例或者多例需要使用bean标签中的scope属性。
scope属性可选值:
singleton(默认):单例
prototype:多例
request:web环境中生效,在一次请求中无论你getBean多少次,获取的对象都是同一个
session:web环境中生效,在一次会话中无论你geyBean多少次,获取的对象都是同一个

5.通过配置完成依赖注入
● 注入基本数据类型
在需要注入属性的对象的bean标签下,通过property子标签完成依赖注入,name表示需要注入值的属性的名称,value需要注入的值。


        
        

相对应的需要类中为属性提供set方法,因为配置方式进行依赖注入是同set方法完成赋值的

● 注入对象
在需要注入属性的对象的bean标签下,通过property子标签完成依赖注入,name表示需要注入值的属性的名称,ref表示要注入的对象在spring容器中的ID。

  
        1
        2
        
 

同样的在被注入的类中需要定义相应的属性并提供set方法

● 注入集合


  
  
  //对应了类中的List
    
      小鑫科技
      小鑫科技
      小鑫科技
    
  

● 注入键值对


        
        
        
            
                小鑫科技
                小鑫科技
                小鑫科技
            
        
        //对应了类中的Map
            
                
                    
                        a
                    
                    小鑫科技
                
            
        


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/582521.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号