当前位置: 首页 > 图灵资讯 > 技术篇> Spring学习干货xml配置实例

Spring学习干货xml配置实例

来源:图灵教育
时间:2023-01-19 13:31:33

  在这里,小编将分享一些关于xml配置实例的详细说明,这是你们学习Spring框架时会遇到的。众所周知,Spring提供的最基本功能是,对象不需要自己去寻找或创建其他对象,而是由容器负责把需要彼此协作的对象引用传递给单个对象。在没有配置的情况下,Spring就是一个无用的空容器。所以Spring提供了在XML文件中配置bean并使用注释的方法。

Spring学习干货xml配置实例

  1、一个Performer接口:

  package springAction;

  public interface Performer {

  void perform();

  }

  2、一个Juggler类实现了Performer接口:

  package springAction;

  public class Juggler implements Performer{

  private int beanBags = 3;

  public Juggler(){

  }

  public Juggler(int beanBags){

  this.beanBags = beanBags;

  }

  public void perform(){

  System.out.println("Juggling " + beanBags + " beanbags");

  }

  }

  3、一个 PoeticJuggler类继承了Juggler类:

  package springAction;

  public class PoeticJuggler extends Juggler {

  private Poem poem;

  public PoeticJuggler(Poem poem){

  super();

  this.poem = poem;

  }

  public PoeticJuggler(int beanBags, Poem poem){

  super(beanBags);

  this.poem = poem;

  }

  public void perform(){

  super.perform();

  System.out.println("PoeticJugger reciting...");

  poem.recite();

  }

  }

  4、一个Poem接口:

  package springAction;

  public interface Poem {

  void recite();

  }

  5、一个单例类Stage:

  package springAction;

  public class Stage {

  private Stage(){

  }

  private static class StageSingletonHolder{

  static Stage instance = new Stage();

  }

  public static Stage getInstance(){

  return StageSingletonHolder.instance;

  }

  }

  6、看看xml文件怎么写(springAction.xml):

  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-4.1.xsd">

  加个main函数运行一下,看看效果:

  package springAction;

  import org.springframework.context.ApplicationContext;

  import org.springframework.context.support.ClassPathXmlApplicationContext;

  public class springActionMain {

  public static void main(string[] args) {

  // TODO Auto-generated method stub

  ApplicationContext ctx = new ClassPathXmlApplicationContext(

  "springAction/springAction.xml");

  try{

  Performer performer = (Performer)ctx.getBean("duke");

  performer.perform();

  performer = (Performer)ctx.getBean("poeticDuke");

  performer.perform();

  }catch(Exception e){

  e.printStackTrace();

  }finally{

  ((ClassPathXmlApplicationContext)ctx).close();

  }

  }

  }

  7、bean的作用域

  所有的Spring Bean默认是单例,当容器分配一个Bean时,它总是返回同一个实例。但,spring是灵活的,不需要单例模式时,可以如下配置:

  8、初始化Bean和销毁Bean

  当Spring容器实例化一个Bean时可能需要做一些初始化的工作,当Spring销毁一个Bean时,可能需要做一些清理工作。Spring支持Bean提供自定义的方法来做初始化工作和销毁工作。

  9、为Bean注入属性

  一般地,java Bean会有一些私有属性,并有一些set和get方法。Spring可以利用set方法为bean的私有属性注入值。

  例子:

  package springAction;

  public class Instrumentalist implements Performer{

  private String song;

  private Instrument instrument;

  private int age;

  public Instrumentalist(){

  }

  public void perform(){

  System.out.println("age = " + age);

  System.out.println("Playing "+song);

  instrument.play();

  }

  public String getSong() {

  return song;

  }

  public void setSong(String song) {

  this.song = song;

  }

  public Instrument getInstrument() {

  return instrument;

  }

  public void setInstrument(Instrument instrument) {

  this.instrument = instrument;

  }

  public int getAge() {

  return age;

  }

  public void setAge(int age) {

  this.age = age;

  }

  }

  xml文件配置: