ssh学习:Spring注入方式

Spring的注入方式:

设值注入:

设值注入就是给该类的属性通过set方法设值。在Spring的配置文件当中,使用标签设值。

中,name值对应类中的属性名,且必须一致;ref值则是对应的数据源id,且必须一致。

构造注入:

构造注入就是该该类的属性通过构造方法传参数的方式设值。在Spring配置文件当中使用标签进行设值。

中,name值对应类中的属性名,且必须一致;ref值则是对应的数据源id,且必须一致。

以打折的实例举例一下:

设置注入:

打折计算的接口:

public interface IDiscounts {
	public double discount(double price);
}

 

半价实体:

public class HalfPrice implements IDiscounts {
	@Override
	public double discount(double price) {
		return price * 0.5;
	}
}

 

不打折实体:

public class FullPrice implements IDiscounts {
	@Override
	public double discount(double price) {
		return price;
	}
}

 

结算实体:

public class Accounts {
	private IDiscounts iDiscounts;//打折的接口,必须实现set方法
	public double account(double price) {
		return iDiscounts.discount(price);
	}
}

 

Spring配置文件:




	
	
	fullPrice" class="com.usc.geowind.lilin.bean.inflood.FullPrice" />
	
	
		
		
		
		iDiscounts" ref="fullPrice">
	

 

程序入口:

public static void main(String[] args) {
	// 读取配置文件
	Resource resource = new FileSystemResource("shop.xml");
	// 加载配置文件 ,启动IOC容器
	BeanFactory factory = new XmlBeanFactory(resource);
	// 从IOC容器中获取实例
	Accounts accounts = factory.getBean(Accounts.class);
	System.out.println(accounts.account(40.0));

}

 构造注入:

结算实体做一下修改:

public class Accounts {
	private IDiscounts iDiscounts;
	public Accounts(IDiscounts iDiscounts) {
		this.iDiscounts = iDiscounts;
	}
	public double account(double price) {
		return iDiscounts.discount(price);
	}
}

 

Spring配置文件:




	
	
	
	
	
		
		
		
		
	

 

 

你可能感兴趣的:(ssh,web,Spring)