Spring基于xml文件配置Bean过程详解

 更新时间:2020-01-07 22:11:24   作者:佚名   我要评论(0)

这篇文章主要介绍了spring基于xml文件配置Bean过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
通过全

这篇文章主要介绍了spring基于xml文件配置Bean过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

通过全类名来配置:

class:bean的全类名,通过反射的方式在IOC容器中创建Bean,所以要求bean中必须有一个无参的构造器。

  <bean id="helloWorld" class="com.gong.spring.beans.HelloWorld">    <property name="name" value="jack"></property>  </bean>

在springIOC容器读取Bean配置创建Bean的实例之前,需要对容器进行实例化。spring提供了两种类型的IOC容器实现:

果博东方Beanfactory:IOC容器的基本实现。

果博东方ApplicationContext:提供了更多高级特性,是BeanFactory的子接口。

ApplicationContext主要实现类:

  • ClassPathXmlApplicationContext:从类路径加载配置文件。
  • FileSystemXmlApplicationContext:从文件系统中加载配置文件。
  • ConfigureableApplicationContext扩展于ApplicationContext,新增两个方法refresh()和close(),让ApplicationContext具有启动、刷新和关闭上下文的能力。

ApplicaiotnContex在初始化时就上下文时就实例化所有单例的Bean。

WebApplicationContext是专门用于WEB应用的,它允许从相对于WEB根目录的路径中完成初始化工作。

依赖注入的三种方式

果博东方(1)属性注入:通过setter方法:<property name="name" value="jack"></property>,即在bean中存在setter方法。

(2)构造器注入:<constructor-arg value="" index="0" type=""></constructor-arg>,根据构造方法中初始化的参数进行一一设置,同时,可以根据参数的顺序index,参数的类型type来区分重载的构造器。

(3)工厂方法注入(很少使用,不推荐)

<bean id="student" class="com.gong.spring.beans.Student">    //第一种方式注入属性值    <constructor-arg value="tom" index="0" type="java.lang.String"></constructor-arg>    <constructor-arg value="12" index="1" type="int"></constructor-arg>    //第二种方式注入属性值    <constructor-arg index="2" type="double">      <value>99.00</value>    </constructor-arg>  </bean>
package com.gong.spring.beans;public class Student {  private String name;  private int age;  private double score;  public Student(String name,int age,double score) {    this.name = name;    this.age = age;    this.score = score;  }  @Override  public String toString() {    return "Student [name=" + name + ", age=" + age + ", score=" + score + "]";  }  }
public static void main(String[] args) {    //1.创建spring的IOC容器对象    ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");    //2.从容器中获取Bean实例    Student student = (Student) ctx.getBean("student");     System.out.println(student.toString());  }

输出:

当属性值有特殊符号时,要用以下方式:

    <constructor-arg index="0" type="java.lang.String">      <value><![CDATA[<tom>]]></value>    </constructor-arg>

用<![CDATA[属性值]]>。

您可能感兴趣的文章:

  • Spring解密之XML解析与Bean注册示例详解
  • Spring装配Bean教程之XML安装配置bean详解
  • web.xml中servlet, bean, filter, listenr 加载顺序_动力节点Java学院整理
  • 详解Spring中使用xml配置bean的细节
  • Javabean基于xstream包实现转XML文档的方法
  • Jaxb2实现JavaBean与xml互转的方法详解
  • 解析Neatbeans(常见错误) build-impl.xml:305: Compile failed
  • 使用JSP + JAVABEAN + XML 开发的一个例子

果博东方相关的文章

  • Spring基于xml文件配置Bean过程详解

    Spring基于xml文件配置Bean过程详解

    这篇文章主要介绍了spring基于xml文件配置Bean过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下通过全
    2020-01-07
  • PHP字符串与数组处理函数用法小结

    PHP字符串与数组处理函数用法小结

    本文实例讲述了PHP字符串与数组处理函数用法。分享给大家供大家参考,具体如下:字符串处理函数trim --去除字符串首尾的多余空白字符和其他字符函数结构:str
    2020-01-07
  • 解决vue elementUI中table里数字、字母、中文混合排序问题

    解决vue elementUI中table里数字、字母、中文混合排序问题

    1.使用场景使用elementUI中的table时,给包含数字字母中文的名称等字段排序例如:数字(0->9)->大写字母(A->Z)->小写字母(a->z)->中文拼音(a->z)2.代码解
    2020-01-07
  • 安装win10+黑苹果双系统零基础教程(图文)

    安装win10+黑苹果双系统零基础教程(图文)

    一、准备工作准备8g以上的U盘安装TransMac 下载地址:http://www.jb51.net/softs/596307.html安装Hasleo EasyUEFI 下载地址:http://www.jb51.net/softs/52710
    2020-01-07
  • Pytorch 神经网络—自定义数据集上实现教程

    Pytorch 神经网络—自定义数据集上实现教程

    第一步、导入需要的包import osimport scipy.io as sioimport numpy as npimport torchimport torch.nn as nnimport torch.backends.cudnn as cudnnimport
    2020-01-07
  • Matplotlib绘制雷达图和三维图的示例代码

    Matplotlib绘制雷达图和三维图的示例代码

    1.雷达图程序示例'''1.空白极坐标图'''import matplotlib.pyplot as plt plt.polar()plt.show() '''2.绘制一个极坐标点'''import numpy as npim
    2020-01-07
  • Mysql8.0使用窗口函数解决排序问题

    Mysql8.0使用窗口函数解决排序问题

    MySQL窗口函数简介MySQL从8.0开始支持窗口函数,这个功能在大多商业数据库和部分开源数据库中早已支持,有的也叫分析函数。什么叫窗口&#63;窗口的概念非常重要,
    2020-01-07
  • 浅谈Python访问MySQL的正确姿势

    浅谈Python访问MySQL的正确姿势

    Py2 时代,访问 MySQL 数据库的模块除了 PyMySQL 和 MySQL-python 之外,还有以速度见长的 Umysql,以及非常小众的 Oursql 模块。进入了 Py3 时代之后,PyMySQL 与时
    2020-01-07
  • Java实现按比抽奖功能

    Java实现按比抽奖功能

    需求是要做几个小游戏的抽奖功能,需要根据不同的游戏有不同的抽奖规则,其中也有很多共性,可归纳为只按奖品占比抽取、奖品占比与奖品数量抽取、分段抽取,为方便起
    2020-01-07
  • 详解vmware14Pro中ubuntu系统界面太小的问题解决

    详解vmware14Pro中ubuntu系统界面太小的问题解决

    1.操作环境vmware14Proubuntu 16.04LTS2.问题描述在使用vmware14Pro安装ubuntu 16.04LTS系统后,屏幕始终比较小,无法根据vmware的变化而变化。3.问题原因
    2020-01-07

最新评论