`
wudalang_gd
  • 浏览: 9355 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

property和constructor-arg的使用

 
阅读更多

 

看到这篇文章就转过来了,简单明了,本着分享精神,供大家参考

 

由于好久没去看spring的东西,以前的知道差不多都忘记了,今天重新学习一下如何使用,以后在慢慢的一个一个知识点的深究。我发现学过的东西还是要记录下来,否则以后又要重新找资料。纯属个人学习笔记。

一:依赖注入的方式
  constructor-arg:通过构造函数注入。
  property:通过setxx方法注入。

二:constructor-arg的简单使用
  java代码
 

Java代码 复制代码 收藏代码
  1.    public class Man {  
  2.   
  3. private String name ;  
  4. private int age;  
  5. private List hobby;  
  6. private Map  friends;  
  7. private Set  set;  
  8. private boolean ifMarried;  
  9.   
  10. public Man() {  
  11.       
  12. }  
  13.   
  14.    public Man(String name, int age,List hobby,Map friends,Set    set,boolean ifMarried){  
  15.     this.name = name;  
  16.     this.age = age;  
  17.     this.hobby = hobby;  
  18.     this.friends = friends;  
  19.     this.set = set;  
  20.     this.ifMarried = ifMarried;  
  21.    }  
  22.      
  23.    public String getInfo(){  
  24.       
  25.     String info = "姓名:"+this.name+"\n年龄:"+this.age+"\n爱好:"+this.hobby+"\n朋友:"+this.friends+"\n婚否:"+this.ifMarried+"\n其他的:"+this.set;  
  26.        return info;  
  27.    }  
  28.   
  29.   
  30.   
  31.    
    public class Man {

	private String name ;
	private int age;
	private List hobby;
	private Map  friends;
	private Set  set;
	private boolean ifMarried;
	
	public Man() {
		
	}
	
    public Man(String name, int age,List hobby,Map friends,Set    set,boolean ifMarried){
    	this.name = name;
    	this.age = age;
    	this.hobby = hobby;
    	this.friends = friends;
    	this.set = set;
    	this.ifMarried = ifMarried;
    }
    
    public String getInfo(){
    	
    	String info = "姓名:"+this.name+"\n年龄:"+this.age+"\n爱好:"+this.hobby+"\n朋友:"+this.friends+"\n婚否:"+this.ifMarried+"\n其他的:"+this.set;
        return info;
    }

}
 
  


  xml配置文件

Java代码 复制代码 收藏代码
  1. <bean id="man" class="com.spring.test.man.Man">  
  2.    <constructor-arg value="zzy" index="0" >  
  3.    </constructor-arg>  
  4.      
  5.    <constructor-arg value="10" index="1">  
  6.    </constructor-arg>  
  7.     
  8.    <constructor-arg>  
  9.      <list>  
  10.         <value>movie</value>  
  11.         <value>music</value>  
  12.      </list>  
  13.    </constructor-arg>  
  14.      
  15.    <constructor-arg>  
  16.       <set>  
  17.          <value>Lady is GaGa</value>  
  18.          <value>GaGa is Lady</value>  
  19.       </set>  
  20.    </constructor-arg>  
  21.   
  22.    <constructor-arg>  
  23.        <map>  
  24.           <entry key="liuhua" value="man"></entry>  
  25.           <entry key="xujinglei" value="female"></entry>  
  26.        </map>  
  27.    </constructor-arg>  
  28.      
  29.    <constructor-arg index="5" value="0">  
  30.    </constructor-arg>  
  31. </bean>  
	<bean id="man" class="com.spring.test.man.Man">
	   <constructor-arg value="zzy" index="0" >
	   </constructor-arg>
	   
	   <constructor-arg value="10" index="1">
	   </constructor-arg>
	  
	   <constructor-arg>
	     <list>
	        <value>movie</value>
	        <value>music</value>
	     </list>
	   </constructor-arg>
	   
	   <constructor-arg>
	      <set>
	         <value>Lady is GaGa</value>
	         <value>GaGa is Lady</value>
	      </set>
	   </constructor-arg>

	   <constructor-arg>
	       <map>
	          <entry key="liuhua" value="man"></entry>
	          <entry key="xujinglei" value="female"></entry>
	       </map>
	   </constructor-arg>
	   
	   <constructor-arg index="5" value="0">
	   </constructor-arg>
	</bean>



最后一个参数ifMarried是一个boolean类型的参数,在配置的时候可以是true/false或者0/1;

二:property的简单使用
  java代码:

  

Java代码 复制代码 收藏代码
  1. public class Doctor {  
  2.   
  3.     private String name;  
  4.     private String sex;  
  5.       
  6.       
  7.     public String getName() {  
  8.         return name;  
  9.     }  
  10.   
  11.   
  12.     public void setName(String name) {  
  13.         this.name = name;  
  14.     }  
  15.   
  16.       
  17.   
  18.     public String getSex() {  
  19.         return sex;  
  20.     }  
  21.   
  22.   
  23.     public void setSex(String sex) {  
  24.         this.sex = sex;  
  25.     }  
  26.   
  27.   
  28.     public void init(){  
  29.         System.out.println("88888888888");  
  30.     }  
  31.     public void init(String name,String sex){  
  32.         this.name = name;  
  33.         this.sex = sex;  
  34.     }  
  35. }  
public class Doctor {

	private String name;
	private String sex;
	
	
	public String getName() {
		return name;
	}


	public void setName(String name) {
		this.name = name;
	}

	

	public String getSex() {
		return sex;
	}


	public void setSex(String sex) {
		this.sex = sex;
	}


	public void init(){
		System.out.println("88888888888");
	}
	public void init(String name,String sex){
		this.name = name;
		this.sex = sex;
	}
}


xml配置文件:

Java代码 复制代码 收藏代码
  1. <bean id="doctor" class="com.spring.test.man.Doctor" init-method="init">  
  2.  <property name="name" value="doctor"></property>  
  3.  <property name="sex" value="i don't know"></property>  
  4. lt;/bean>  
  <bean id="doctor" class="com.spring.test.man.Doctor" init-method="init">
	  <property name="name" value="doctor"></property>
	  <property name="sex" value="i don't know"></property>
	</bean>

   

在这里我配置了一个init-method="init"表示在容易实例化这个doctor的时候,调用一个Doctor类的init方法,本来还以为可以通过这个init方法来注入要注入的信息,但是尝试过后才知道这个init方法是不能带参数的。

分享到:
评论

相关推荐

    Spring自学笔记-Ioc(控制反转)容器

    &lt;constructor-arg type="java.lang.String" value="XXX"/&gt; ``` - **通过索引指定参数** 也可以通过索引来指定构造函数参数的顺序: ```xml &lt;constructor-arg index="0" value="258"/&gt; &lt;constructor-...

    spring集成redis单节点、集群、哨兵配置

    &lt;constructor-arg&gt; &lt;value&gt;localhost:7000 &lt;value&gt;localhost:7001 &lt;!-- 添加其他节点... --&gt; &lt;/constructor-arg&gt; ``` 最后,我们讨论**哨兵(Sentinel)配置**。哨兵系统用于监控、故障检测和自动故障...

    Spring依赖注入的两种方式(根据实例详解)

    在上面的配置文件中,我们使用`&lt;constructor-arg&gt;`元素将三个参数传递给Car对象的构造函数。 总结 Spring依赖注入的两种方式:Set方法注入和构造注入。Set方法注入是通过对象的setter方法来完成依赖关系的设置,而...

    apache common pool2 实例

    首先,`OssTest.java`可能是一个测试类,用于验证OSS(Object Storage Service)连接池的正确配置和使用。OSS通常是指云存储服务,如阿里云的OSS,它提供了大规模、安全、低成本的数据存储解决方案。 在`spring-oss...

    ssm整合redis1

    &lt;constructor-arg name="host" value="192.168.152.180"&gt;&lt;/constructor-arg&gt; &lt;constructor-arg name="port" value="6379"&gt;&lt;/constructor-arg&gt; ``` 这些配置文件演示了如何初始化Jedis连接池,并将其交给Spring...

    Springjava.pdf

    这是最常见的一种注入方式,通过在配置文件中定义bean,并使用`&lt;property&gt;`标签指定需要注入的属性。例如,配置文件中如下的代码: ```xml &lt;!-- setter injection using the nested &lt;ref/&gt; element --&gt; ...

    osworkflow研究

    这通常涉及使用 `bean` 元素定义这些类,并使用 `property` 子元素注入相关的依赖。例如: ```xml &lt;property name="dataSource" ref="dataSource" /&gt; &lt;property name="jdbcTemplateProperties"&gt; ...

    spring + redis + sentinel 配置

    &lt;constructor-arg name="master"&gt; ${sentinel.master} &lt;/constructor-arg&gt; &lt;constructor-arg&gt; &lt;constructor-arg&gt; &lt;/constructor-arg&gt; &lt;/constructor-arg&gt; &lt;/property&gt; ``` 2. 创建`...

    spring与thrift集成

    4. **配置 Spring**:使用 Spring 的 `&lt;bean&gt;` 标签定义 Thrift 服务的服务器端和客户端。在 Spring 的配置文件中,你可以配置 `TServer` 和 `TProcessor`,并绑定到 `CalculatorHandler`。 ```xml ...

    spring applicationContext 配置文件

    &lt;constructor-arg type="java.lang.String"&gt; &lt;value&gt;jxg/Qr4VbxU= &lt;/constructor-arg&gt; &lt;!-- password --&gt; &lt;constructor-arg type="java.lang.String"&gt; &lt;value&gt;jxg/Qr4VbxU= &lt;/constructor-arg&gt; &lt;!--...

    <Reslet1>:Reslet+Spring,配置简单web访问

    &lt;/constructor-arg&gt; &lt;constructor-arg&gt; &lt;constructor-arg&gt; &lt;value&gt;http&lt;/value&gt; &lt;/constructor-arg&gt; &lt;constructor-arg&gt; &lt;value&gt;8080 &lt;/constructor-arg&gt; &lt;/constructor-arg&gt; ``` 步骤三:定义Reslet...

    applicationContext.xml详解

    3. 使用&lt;constructor-arg&gt;标签来配置Bean的构造函数,例如:&lt;constructor-arg&gt; 4. 使用标签来配置Bean的集合属性,例如:&lt;list&gt; &lt;value&gt;com/alonely/vo/User.hbm.xml&lt;/value&gt; &lt;/list&gt; 在ApplicationContext.xml...

    ldap与Acegi? ----Acegi配置文件解剖

    &lt;constructor-arg ref="contextSource" /&gt; &lt;property name="userDnPatterns"&gt; &lt;list&gt;&lt;value&gt;uid={0},ou=people,dc=mycompany,dc=com&lt;/value&gt;&lt;/list&gt; &lt;/property&gt; &lt;/constructor-arg&gt; &lt;constructor-arg&gt; ...

    spring-ldap-1.3.1.RELEASE-with-dependencies.zip

    &lt;constructor-arg ref="contextSource"/&gt; &lt;property name="userDnPatterns"&gt; &lt;list&gt;&lt;value&gt;uid={0},ou=users,dc=example,dc=com&lt;/value&gt;&lt;/list&gt; &lt;/property&gt; &lt;/constructor-arg&gt; &lt;constructor-arg&gt; ...

    Spring XML配置十二个最佳实践

    在Spring XML配置文件中,可以使用简化的语法来为Bean的构造器参数和属性赋值。例如,以下两种写法是等价的: **原始写法:** ```xml &lt;property name="companyName"&gt; &lt;value&gt;lizjason &lt;/property&gt; ...

    java使用 redis-sentinel

    这里我们将深入探讨如何在Java应用中使用Redis Sentinel以及相关的配置和操作。 首先,`RedisTemplateDelegate.java`是Spring Data Redis提供的一个模板类,用于与Redis进行数据交互。在使用Redis Sentinel时,我们...

    详解Spring中使用xml配置bean的细节

    在上面的例子中,我们使用 `&lt;constructor-arg&gt;` 元素来注入构造方法的参数。 内部 Bean 内部 Bean 是一种特殊的 Bean,它只能被使用一次,通常用于在特定的属性或构造器中。例如: ```xml &lt;constructor-arg ...

    Spring总结.txt

    这里使用了`&lt;bean&gt;`标签定义了一个名为“car”的Bean,并通过`&lt;constructor-arg&gt;`标签指定了构造函数参数。 - **通过`&lt;property&gt;`标签设置Bean属性**:可以使用`&lt;property&gt;`标签为Bean设置属性值。例如: ```xml...

Global site tag (gtag.js) - Google Analytics