用个例子来演示什么是DI(Dependency injection)
1.下载spring-framework-2.0.7,在Eclipse加入两个lib: spring.jar和commons-logging.jar
代码:
1.GreetingService.java
2.GreetingServiceImpl.java
3.hello.xml
4.HelloApp.java
java 代码
- /**
- * @{#} GreetingService.java Create on 2007-11-13 下午11:31:51
- *
- * Copyright (c) 2007 by Kidd.
- */
- package com.springinaction.chapter01.hello;
- /**
- * @author
- * @version 1.0
- */
- public interface GreetingService {
- void sayGreeting();
- }
java 代码
- /**
- * @{#} GreetingServiceImpl.java Create on 2007-11-13 下午11:34:12
- *
- * Copyright (c) 2007 by Kidd.
- */
- package com.springinaction.chapter01.hello;
- /**
- * @author
- * @version 1.0
- */
- public class GreetingServiceImpl implements GreetingService {
- private String greeting;
- public GreetingServiceImpl(){}
- public GreetingServiceImpl(String greeting) {
- this.greeting = greeting;
- }
- /**
- * @param greeting the greeting to set
- */
- public void setGreeting(String greeting) {
- this.greeting = greeting;
- }
- @Override
- public void sayGreeting() {
- System.out.println(greeting);
- }
- }
xml 代码
- xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- 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-2.0.xsd">
- <bean id="greetingService"
- class="com.springinaction.chapter01.hello.GreetingServiceImpl">
- <property name="greeting" value="Buenos Dias!" />
- bean>
- beans>
java 代码
- /**
- * @{#} HelloApp.java Create on 2007-11-13 下午11:37:39
- *
- * Copyright (c) 2007 by Kidd.
- */
- package com.springinaction.chapter01.hello;
- import org.springframework.beans.factory.BeanFactory;
- import org.springframework.beans.factory.xml.XmlBeanFactory;
- import org.springframework.core.io.FileSystemResource;
- /**
- * @author
- * @version 1.0
- */
- public class HelloApp {
- public static void main(String[] args) {
- BeanFactory factory = new XmlBeanFactory(new FileSystemResource("hello.xml"));
- GreetingService greetingService = (GreetingService) factory.getBean("greetingService");
- greetingService.sayGreeting();
- }
- }
这个例子是描述怎么把一个String value 注入到属性。Spring 的强大在于可以用DI把Bean注入到另外一个Bean
引用一篇文章说明依赖注入和控制反转的概念。http://www.sinzy.net/Blog/Read.asp?ID=80&BID=9113