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注入
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注入
解决方案 »
- 关于前台属性
- 还是解析xml的问题
- spring2.0+hibernate事务,出现异常死活不回滚,大虾们帮忙看看阿。
- java连接sql server 2000的问题 急
- 懂XML的高手请进来指点一下
- 那位大哥给我一份JAVA操作LDAP的例子.让小弟学习学习呀.
- 怎么用贝叶斯定理来开发一个过滤器?(只要提供些线索就好了)
- 高分求Borland Enterprise Server5.1版的注册机!!
- 大婶们,小弟求教一个关于多线程的问题啊
- maven报错:Failed to execute goal org.apache.maven.plugins:maven-source-plugin
- 使用Hibernate同时打开两数据源,如何做?
- Java PetStore 出现问题,ant run后硬盘在闪,但一小时都没有反应
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>输出:
==============
构造注入
,能不能顺便给我一份。呵呵。
另外,能给小弟推荐一本spring的书吗,呵呵,麻烦了。
<<spring in action中文版>>非常好,一本书就可以搞定大部分开发问题
如果可以马上揭贴!2个100分
在构造函数的依赖注入中如果该构造函数的参数是一个Class,那该如何在配置中 配置构造函数依赖注入
{
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");
}
}
1、函数注射
2、设值方法注射
3、接口注射
spring同时支持两种:
1、函数注射
2、设值方法注射
spring推荐设值方法注射
使用设值方法注射时,对每个设值方法的名字可明确定义;而使用构造函数注射时,只能靠参数的位置决定每个参数的作用,而记住参数的正确位置并非易事(参数多的情况)。
http://blog.csdn.net/javamxj/category/131083.aspx