Spring框架初识(2)对象,属性的注入

2 篇文章 0 订阅
2 篇文章 0 订阅

一.属性的注入介绍

1.创建对象时向类里面的属性添加属性值

2.spring中两种注入方式

(1)有参的构造方法注入
(2)set方法的注入(重点)

二.使用有参的构造注入属性

第一步:创建一个User实体类,并创建一个有参的构造方法

package cn.xiaoze.zhuru;

public class User {
	public String username;
	public User(String username) {
		this.username=username;		
	}
	public void test1() {
		System.out.println("注入....." +username);
	}

}

第二步:创建spring的核心配置文件,使用 标签实现有参注入

<?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">
    	
    	<!-- name:是自定义的bean的名字用于在测试类中找到这个bean并找到相应的对象		
    			class;为需要创建的对象所在的全路径
    	 -->							
    <bean name="zhuru" class="cn.xiaoze.zhuru.User"> 
    <!-- name:对应类中需要注入属性的属性名
    		value:为注入的值  -->
    <constructor-arg name="username" value="小泽"></constructor-arg>
    </bean>
    </beans>

第三步:测试类

package cn.xiaoze.zhuru;


import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Testzhuru {
	@Test 
	public void Test1() {
	//注意:要导入ApplicationContext  spring的包
		ApplicationContext  context=new  ClassPathXmlApplicationContext("bean.xml");
		User  user=(User) context.getBean("zhuru");
		user.test1();
	}
	
}

在这里插入图片描述

三.使用set方法注入属性

第一步 把标签改成

<?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">
    	
    	<!-- name:是自定义的bean的名字用于在测试类中找到这个bean并找到相应的对象		
    			class;为需要创建的对象所在的全路径
    	 -->							
    <bean name="zhuru" class="cn.xiaoze.zhuru.User"> 
    <!-- name:对应类中需要注入属性的属性名
    		value:为注入的值  -->
    <!-- <constructor-arg name="username" value="小泽"></constructor-arg> -->
    <property name="username" value="莉莉" ></property>
    </bean>
    </beans>

第二步给User的username属性创建set,get方法

package cn.xiaoze.zhuru;

public class User {
	public String username;

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

}

第三步就可以测试了

package cn.xiaoze.zhuru;


import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Testzhuru {
	@Test 
	public void Test1() {
		ApplicationContext  context=new  ClassPathXmlApplicationContext("bean.xml");
		User  user=(User) context.getBean("zhuru");
		System.out.println(user.getUsername());
	}
	
	
}

最后可以在控制台打印出username的属性,即注入成功

四.对象的注入

第一步 创建两个类,并添加set,get方法。

Product 类

package cn.spring.test;

import javax.jws.soap.SOAPBinding.Use;

public class Product {
	
	private int id;
    private String name;
    //注意:将User设置成Product 属性
    private User user;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}

}

注意:将User设置成Product 属性,以便之后的调用
在这里插入图片描述

User类

package cn.spring.test;

public class User {
  public String name;
	public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
	public void add() {
		System.out.println("add......");
	}
	public static void main(String[] args) {
		
		User user=new User();
		user.add();
	}


}

之后配置核心文件

<?xml version="1.0" encoding="UTF-8"?>
<!-- xml文件都要先引入约束,只要会找就可以 spring-framework-4.2.4.RELEASE/docs/spring-framework-reference/html/xsd-configuration.html -->
<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">


	
<!-- 	在创建Product的时候注入一个User对象
注意,这里要使用ref来注入另一个对象 -->
	 <bean name="p" class="cn.spring.test.Product">   
	 <property name="name" value="product1"></property>
         <property name="user" ref="user" /> 
    </bean>
</beans>

使用ref设置注入对象

第三步 测试类

package cn.spring.test;


import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test2zhuru {

	
	@Test
	public void testUser2() {
		ApplicationContext  context = new 
				ClassPathXmlApplicationContext("bean1.xml");	
		Product product= (Product) context.getBean("p");
		System.out.println(product);  
		System.out.println(product.getUser());
		System.out.println(product.getUser().getName());
		product.getUser().add();
		
	}


	
}

在这里插入图片描述

五.复杂属性的注入

<!-- 注入复杂类型属性值 -->
	<bean id="person" class="cn.itcast.property.Person">
		<!-- 数组 -->
		<property name="arrs">
			<list>
				<value>小王</value>
				<value>小马</value>
				<value>小宋</value>
			</list>
		</property>
		
		<!-- list -->
		<property name="list">
			<list>
				<value>小奥</value>
				<value>小金</value>
				<value>小普</value>
			</list>			
		</property>
		
		<!-- map -->
		<property name="map">
			<map>
				<entry key="aa" value="lucy"></entry>
				<entry key="bb" value="mary"></entry>
				<entry key="cc" value="tom"></entry>
			</map>
		</property>
		
		<!-- properties -->
		<property name="properties">
			<props>
				<prop key="driverclass">com.mysql.jdbc.Driver</prop>
				<prop key="username">root</prop>
			</props>
		</property>
	</bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值