介绍
前一段时间观注了一下Spring4.0的一些特性,其中就有对Groovy配置的支持。由于暂时还没有非常深入的研究,所以举个小例子来说明一下如何支持Groovy配置。
package shuai.study.spring.bean; public class Gasoline { private int capacity = 0; public Gasoline(int capacity) { this.capacity = capacity; } public int getCapacity() { return this.capacity; } }
package shuai.study.spring.bean; public class Car { private String name = null; private Gasoline gasoline = null; public Car(Gasoline gasoline) { this.gasoline = gasoline; } public void setName(String name) { this.name = name; } public void run() { int capacity = gasoline.getCapacity(); if (gasoline.getCapacity() > 100) { System.out.println("Gasoline capacity is " + capacity + ", " + this.name + " could start to run."); } else { System.out.println("Gasoline capacity is " + capacity + ", " + this.name + " is not enough to run."); } } }
car-config.groovy configuration file:
import shuai.study.spring.bean.Car import shuai.study.spring.bean.Gasoline beans { /* In class Car, we know that we defined variable gasoline as parameter of Car's constructor. Here we point out this variable's class(i.e. Gasoline), meanwhile set parameter's value of (Gasoline's) constructor */ gasoline(Gasoline, 80) /* Define bean(i.e. car), and point out this bean's class(i.e. Car), meanwhile inject variable gasoline to it. naturally we inject its variable(i.e. name) as well. */ car(Car, gasoline) { name = "Benz" } }
package shuai.study.spring.bean; import org.springframework.context.support.GenericGroovyApplicationContext; public class CarApp { @SuppressWarnings("resource") public static void main(String[] args) { GenericGroovyApplicationContext context = new GenericGroovyApplicationContext("classpath:spring/bean/car-config.groovy"); Car car = (Car) context.getBean("car"); car.run(); } }