Spring之set注入+构造注入

1.使用Spring框架之前,先要安装Spring插件

两种方式一种离线,一种是在线安装

跟我之前在博客里面写安装Hibernate插件的方式是一样的,导入关于Spring插件的包

离线也是一样,详细的可以看那篇博客http://blog.csdn.net/name_Fay/article/details/77456045




说到Spring的注入方式:一共有三种,我这里先说到两种,一种是set注入,还有一种是构造注入

Set注入指的就是在接受注入的类中定义一个Set方法,并在参数中定义需要注入的元素。

构造注入指的就是在接受注入的类中定义一个构造方法,并在参数中定义需要注入的元素。


我写了两个实体类,一个是Person,还有一个是Card

Card的的实体类如下:

package com.zking.entity;
public class Card {
private int cid;
private String cnum;
public Card() {
super();
System.out.println("card的构造方法。");
}
public Card(int cid, String cnum) {
super();
this.cid = cid;
this.cnum = cnum;
}
public int getCid() {
return cid;
}
public void setCid(int cid) {
this.cid = cid;
}
public String getCnum() {
return cnum;
}
public void setCnum(String cnum) {
this.cnum = cnum;
}


}
 

还有就是Person的实体类

package com.zking.entity;


import java.util.List;


public class Person {
private int pid;
private String pname;

private List<String> hobbies;

private Card card;



public Card getCard() {
return card;
}
public void setCard(Card card) {
this.card = card;
}
public List<String> getHobbies() {
return hobbies;
}
public void setHobbies(List<String> hobbies) {
this.hobbies = hobbies;
}
public Person(int pid, String pname) {
super();
this.pid = pid;
this.pname = pname;
}
public Person() {
super();
// System.out.println("person的构造方法");
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
@Override
public String toString() {
return "Person [pid=" + pid + ", pname=" + pname + "]";
}

}


下面是resource下面的applicationContext.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.xsd">
<!-- 配置Person对象 -->
<bean id="person" class="com.zking.entity.Person" lazy-init="true">
<!--设值:注入 
set注入
构造注入
-->
<!-- set注入 -->
<property name="pid" value="3"></property>
<property name="pname">
<!-- <value>Amy</value> -->
<idref bean="card"/>
</property>
<property name="hobbies">
<list>
<value>Play game</value>
<value>Walking</value>
<value>Running</value>
</list>
</property>
<property name="card" ref="card"></property>
<!-- 构造注入 -->
<!-- <constructor-arg value="1"></constructor-arg>
<constructor-arg value="Alice"></constructor-arg> -->
</bean>

下面附上测试的代码:

package com.zking.test;
import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;


import com.zking.entity.Person;


public class TestSpring {
public void test(){
//1.加载spring的配置文件
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
Person person=  (Person) ac.getBean("person");
System.out.println(person);
System.out.println(person.getHobbies());
System.out.println(person.getCard().getCnum());
}
}


下面是我自己运行出来的结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值