Spring Bean工厂和上下文_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Spring Bean工厂和上下文

Spring Bean工厂和上下文

 2013/10/25 0:53:03  1140566087  程序员俱乐部  我要评论(0)
  • 摘要:packagecom.svse.entity;importjava.io.Serializable;importjava.util.List;publicclassAdminEntityimplementsSerializable{privateStringcollege;privateStringtel;privateListar;publicStringgetCollege(){returncollege;}publicvoidsetCollege(Stringcollege){this
  • 标签:Spring
class="java" name="code">package com.svse.entity;

import java.io.Serializable;
import java.util.List;

public class AdminEntity implements Serializable {
	
	private String college;
	private String tel;
	private List ar;
	public String getCollege() {
		return college;
	}
	public void setCollege(String college) {
		this.college = college;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	public List getAr() {
		return ar;
	}
	public void setAr(List ar) {
		this.ar = ar;
	}
}


package com.svse.entity;

import java.io.Serializable;

public class UserEntity implements Serializable {
	private int id;
	private String name;
	private AdminEntity admin;
	
	public UserEntity(){}
	public UserEntity(int id ,String name,AdminEntity admin){
		this.id = id;
		this.name = name;
		this.admin = admin;
	}

	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 AdminEntity getAdmin() {
		return admin;
	}

	public void setAdmin(AdminEntity admin) {
		this.admin = admin;
	}

}


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

	<!-- 1、解释:AdminEntity adminEntity = new AdminEntity(); -->
	<bean id="adminEntity" class="com.svse.entity.AdminEntity">

		<!-- AdminEntity 类中有个属性为:college 的,赋值为:value="" -->
		<property name="college" value="湖北国土资源职业学院"></property>
		<property name="tel" value="1533*******"></property>
		<!-- 为集合赋值List -->
		<property name="ar">
			<list>
				<value>上网</value>
				<value>吃饭</value>
				<value>睡觉</value>
			</list>
		</property>
	</bean>

	<!-- 解释:==UserEntity userEntity = new UserEntity(); -->
	<bean id="userEntity" class="com.svse.entity.UserEntity">
		<property name="id" value="1"></property>
		<property name="name">
			<value>小王八蛋</value>
		</property>
		<!-- 属性名:admin,为其依赖注入 adminEntity== admin = new AdminEntity(); 并进行赋值 -->
		<property name="admin" ref="adminEntity"></property>
	</bean>

	<!--
		2、bean 中的属性介绍: abstract="true" 设置该bean对应的类为抽象类,不能直接进行使用
		parent="id标识,继承的父类"
	-->

	<!--
		===========================定义UserEntity 为抽象类==========================
	-->
	<bean id="userEntity1" class="com.svse.entity.UserEntity"
		abstract="true">
		<property name="id" value="123"></property>
		<property name="name" value="谢逊"></property>
	</bean>
	<!--
		通过parent这个属性集成:抽象类(根据ID标识找到需要继承的类),继承了对应类中的属性,也可以随时的根据自己的需要更改相关的属性
		不需要更改的可以直接的进行引用;
	-->
	<bean id="xx" parent="userEntity1">
		<property name="id" value="456"></property>
	</bean>
	<!--============================================================== -->

	<!-- 3、bean中属性:autowire的用法 ,以及null值的设置-->
	<!--
		+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	-->
	<bean id="admin" class="com.svse.entity.AdminEntity">

		<!-- 将college属性值设为:"" -->
		<property name="college">
			<value></value>
		</property>
		<!-- 将tel的属性值设为:null -->
		<property name="tel">
			<null />
		</property>
		<property name="ar">
			<list>
				<value>八嘎</value>
				<value>九噶</value>
			</list>
		</property>
	</bean>
	<bean id="userEntity3" class="com.svse.entity.UserEntity"
		autowire="byName">
		<property name="id" value="3"></property>
		<property name="name">
			<value>小红</value>
		</property>
		<!--
			该实体下包含一个对象名称为:admin的对象,设置了autowire 然后自动的寻找到id名为admin的bean,实现自动匹配
		-->
	</bean>
	<!--
		+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	-->

	<!-- 4、bean的name属性、depends-on="标识ID名" -->
	<!--
		+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	-->
	<!--
		bean中的ID 是唯一标识,而name 能多名称标识,相当于给同一个bean起多个名称,可以根据任意的一个别名获取到当前
		的bean,命名方式如:name="/user,yy,xx,aa" , id="xx"
		代码中可以根据任意你喜欢的名称(user,yy,xx,aa)获取,而 id只能根据xx获取; depends-on: 通过ID
		指定依赖的对象,被依赖者执行之后才会执行本身;例如:处理数据之前必须先链接数据库;
	-->
	<!--
		+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	-->

	<!-- 5、通过xml文件给实体中构造方法赋值 传递参数值,以及传递实体对象 -->
	<!--
		=============================================================================================
	-->
	<bean id="adminEntity1" class="com.svse.entity.AdminEntity">
		<property name="college" value="工业大学"></property>
		<property name="tel">
			<value></value>
		</property>
		<property name="ar">
			<null />
		</property>
	</bean>
	<bean id="userEntity4" class="com.svse.entity.UserEntity">
		<constructor-arg index="0" value="1"></constructor-arg>
		<constructor-arg index="1" value="大奖人"></constructor-arg>
		<constructor-arg index="2" ref="adminEntity1"></constructor-arg>
	</bean>
	<!--
		=============================================================================================
	-->

	<!-- 6、BeanFactory 的作用域 ,scope属性-->
	<!--
		scope="singleton" : 单例模式 ,查询一次后数据存入内存,然后常驻内存,再次查询的时候仍然是内存中的数据,
		数据没有和数据库同步; scope="prototype" :代理模式 , 只负责封装数据,能保证页面数据和数据库的同步
	-->
	<bean id="adminEntity6" class="com.svse.entity.AdminEntity"></bean>
	<bean id="userEntity6" class="com.svse.entity.UserEntity" scope="singleton"></bean>
	<!-- 單例模式下:
		UserEntity user1 = app.getBean("userEntity6",UserEntity.class);
		UserEntity user2= app.getBean("userEntity6",UserEntity.class);
		此時:user1==user2   : true
	 -->
	<bean id="userEntity7" class="com.svse.entity.UserEntity" scope="prototype"></bean>
	<!-- 代理模式下:
		UserEntity user1 = app.getBean("userEntity7",UserEntity.class);
		UserEntity user2= app.getBean("userEntity7",UserEntity.class);
		此時:user1!=user2   : false
	 -->
	 <!-- ==================================================================================== -->




</beans>
发表评论
用户名: 匿名