================== Spring IoC应用案例 ================== 在cn.tedu.springioc.beans包中添加Product类: public class Product { } 在cn.tedu.springioc.services包中添加ProductService接口: public interface ProductService { public List queryProducts(); } 在cn.tedu.springioc.services.impl包中添加HotSellingProductService类: public class HotSellingProductService implements ProductService { @Override public List queryProducts() { System.out.println("查询热销商品"); return null; } } 在cn.tedu.springioc.services.impl包中添加TopRatedProductService类: public class TopRatedProductService implements ProductService { @Override public List queryProducts() { System.out.println("查询好评商品"); return null; } } 在cn.tedu.springioc.servlets包中添加ProductServlet类: public class ProductServlet { private ProductService productService; // 仅接口,无对象 public void setProductService(ProductService productService) { this.productService = productService; } public void doGet() { doPost(); } public void doPost() { List products = productService.queryProducts(); // 面向接口 } } 添加对象配置: 测试: public class SpringTest { public static void main(String[] args) { ... // 应用案例 ProductServlet productServlet = context.getBean( "productServlet", ProductServlet.class); productServlet.doGet(); ... } } 查询热销商品 __________Spring容器__________ | | | HotSellingProductService -- | | 注| | | ProductServlet 入| | | productService <------- | |______________________________| 更改对象配置: 测试: 查询好评商品 __________Spring容器__________ | | | TopRatedProductService ---- | | 注| | | ProductServlet 入| | | productService <------- | |______________________________| Servlet无需关心究竟该实例化哪个Service实现,面向Service接口编程即可。 完全由配置文件,根据业务的实际需求,决定向Servlet注入哪个Service实现。 例程:SpringIoC