1.两种:构造注入和set注入
2.例子:
Bean1.java
============
package jaqcy.spring.test;public class Bean1
{
private String str;
public Bean1(String str)
{
this.str=str;
}
public void display()
{
System.out.println(str);
}
}Bean2.java
======================
package jaqcy.spring.test;public class Bean2
{
private String str;

public void setStr(String str)
{
this.str = str;
}
public void display()
{
System.out.println(str);
}
}
Test.java
=========================
package jaqcy.spring.test;import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;public class Test
{
public static void main(String[] args)throws Exception
{
BeanFactory factory=new XmlBeanFactory(new FileSystemResource("beans.xml"));
Bean1 bean1=(Bean1)factory.getBean("bean1");
bean1.display();
Bean2 bean2=(Bean2)factory.getBean("bean2");
bean2.display();
}
}beans.xml
=======================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean name="bean1"
class="jaqcy.spring.test.Bean1">
<constructor-arg>
<value>构造注入</value>
</constructor-arg>
</bean>
<bean name="bean2"
class="jaqcy.spring.test.Bean2">
<property name="str">
<value>set注入</value>
</property>
</bean>
</beans>输出:
=======================
构造注入
set注入

解决方案 »

  1.   

    3.
    Bean3.java
    ====================
    package jaqcy.spring.test;public class Bean3
    {
    private Bean1 bean1; public Bean3(Bean1 bean1)
    {
    this.bean1 = bean1;
    }

    public void display()
    {
    bean1.display();
    }
    }配置:
    ======================
    <bean name="bean3"
    class="jaqcy.spring.test.Bean3">
    <constructor-arg>
    <ref bean="bean1"/>
    </constructor-arg>
    </bean>输出:
    ==============
    构造注入
      

  2.   

    如果构造注入有多个参数,请在<constructor-arg>元素指定index属性,由0开始
      

  3.   

    一般使用的都是set方式的去注入..
      

  4.   

    还有一个接口注入 不过一班都用set形式注入 这也是官方推荐的形式
      

  5.   

    liufei8463(武汉小兵),你好!
        ,能不能顺便给我一份。呵呵。
        另外,能给小弟推荐一本spring的书吗,呵呵,麻烦了。
      

  6.   

    to:lisl2003(不留)
    <<spring in action中文版>>非常好,一本书就可以搞定大部分开发问题
      

  7.   

    [email protected] 可以给我一份吗 谢谢
      

  8.   


    如果可以马上揭贴!2个100分
    在构造函数的依赖注入中如果该构造函数的参数是一个Class,那该如何在配置中  配置构造函数依赖注入
      

  9.   

    夏昕 的 《Spring 开发指南》 里面说的很清楚http://www.java99.com/?m=ViewBook&id=51
      

  10.   

    public interface Display
    {
    public void do(String str);
    }
    =============================
    public class DisplayImpl implements Display
    {
    public void do(String str)
    {
    System.out.println(str);
    }
    }
    ================================<bean id="display" class="DisplayImpl"/>================================
    public class Show
    {
    public static void main(String[] args)
    {
    BeanFactory factory=new XmlBeanFactory(new FileSystemResource("beans.xml"));
    Display display=(Display)factory.getBean("display");
    dispaly.do("hello");
    }
    }
      

  11.   

    依赖注身有三种:
    1、函数注射
    2、设值方法注射
    3、接口注射
    spring同时支持两种:
    1、函数注射
    2、设值方法注射
    spring推荐设值方法注射
    使用设值方法注射时,对每个设值方法的名字可明确定义;而使用构造函数注射时,只能靠参数的位置决定每个参数的作用,而记住参数的正确位置并非易事(参数多的情况)。
      

  12.   

    可以看看这个博客:
    http://blog.csdn.net/javamxj/category/131083.aspx