Spring-Bean的属性(1.单独定义BEAN,ID为之的BEAN参考之 2.在BEAN中直接定义参考的BEAN)

首先在名称为HelloWorld的Bean中增加一个Date类型的私有变量

然后改写Spring的配置文档config.xml,添加一个id为date的Bean,并在原来的id为HelloWorld的Bean中参考配置文档中定义的id为date的Bean

最后修改测试程序TestHelloWorld.java

一定要注意构造函数!

helloworld.java

package com.gc.action;

import java.util.Date;

public class HelloWorld {

	private String msg=null;//该变量用来存储字符串
	private Date date=null;//该变量用来存储日期

	public HelloWorld(String msg)
	{
		    this.msg=msg;
	}

	public HelloWorld()//这个必须写,否则不能转到上面的那个
	{
	    this.msg=msg;
	}

	//设定变量msg的set方法
	public void setMsg(String msg) {
		this.msg=msg;
	}

	//获取变量msg的get方法
	public String getMsg() {
		return this.msg;
	}

	public Date getDate() {
		return this.date;
	}

	public void setDate(Date date) {
		this.date = date;
	}

}

不写构造函数的话,JVM虚拟机内部会默认去找原先的那个没有参数的构造函数,从而导致我的程序出错!

config.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-->
    <bean id="HelloWorld" class="com.gc.action.HelloWorld">
    <!--将其变量msg通过依赖注入-->
    <property name="msg">
    <value>english zhuzhengke</value>
    </property>

        <property name="date">
    <ref bean="date"/>
    </property>

    </bean>

    <bean id="date" class="java.util.Date"/>
</beans>

TestHelloWorld.java

package com.gc.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

import com.gc.action.HelloWorld;

public class TestHelloWorld {
    public static void main(String[] args)
    {
    	//通过ApplicationContext来获取Spring文件的配置
    	ApplicationContext actx=new FileSystemXmlApplicationContext("config.xml");

        //通过Bean的id来获取Bean
    	HelloWorld helloworld=(HelloWorld)actx.getBean("HelloWorld");

    	//打印输出
    	System.out.println(helloworld.getMsg()+""+helloworld.getDate());
    }
}

输出:

english zhuzhengkeMon Mar 19 15:10:02 CST 2012

另外一种定义BEAN属性的方法:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <!--定义一个Bean-->
    <bean id="HelloWorld" class="com.gc.action.HelloWorld">
    <!--将其变量msg通过依赖注入-->
    <property name="msg">
    <value>english zhuzhengke</value>
    </property>

        <property name="date">
    <bean id="date" class="java.util.Date"/>
    </property>

    </bean>

</beans>

输出:

english zhuzhengkeMon Mar 19 15:10:02 CST 2012

时间: 2024-08-09 04:32:17

Spring-Bean的属性(1.单独定义BEAN,ID为之的BEAN参考之 2.在BEAN中直接定义参考的BEAN)的相关文章

java中方法定义的时候是不允许嵌套一个方法吗

问题描述 java中方法定义的时候是不允许嵌套一个方法吗 java中方法定义的时候是不允许嵌套一个方法吗内部类分为静态和非静态的吗 解决方案 是不允许的,已经明白了 解决方案二: java方法重写的时候,一个调用父类还是子类方法的问题 解决方案三: 静态内部类和非静态内部类的区别 解决方案四: 当然不允许了.....

el-在&amp;amp;lt;c:forEach &amp;amp;gt;&amp;amp;lt;/c:forEach&amp;amp;gt;中如何定义数组变量,请jstl高手指导

问题描述 在<c:forEach ></c:forEach>中如何定义数组变量,请jstl高手指导 在/c:forEach中如何定义数组变量,请jstl高手指导 解决方案 <% String[] colors = new String[] { "red", "green", "yellow", "black","silver" }; pageContext.setAttribu

spring:如何用代码动态向容器中添加或移除Bean ?

先来看一张类图: 有一个业务接口IFoo,提供了二个实现类:FooA及FooB,默认情况下,FooA使用@Component由Spring自动装配,如果出于某种原因,在运行时需要将IFoo的实现,则FooA换成FooB,可以用代码动态先将FooA的实例从容器中删除,然后再向容器中注入FooB的实例,代码如下: 1.IFoo接口: package yjmyzz; import org.springframework.beans.factory.DisposableBean; public inte

使用Spring注解注入属性

1.1. 使用注解以前我们是怎样注入属性的 类的实现: public class UserManagerImpl implements UserManager { private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } ... } 配置文件: < bean id="userManagerImpl" class="com.kedacom.spr

Spring使用外部属性文件以及常见错误(内附大量图片,很有借鉴意义)

一.在 Spring Config 文件中配置 Bean 时,有时候需要在 Bean 的配置里添加 系统部署的细节信息,如文件路径,数据源配置信息.而这些部署细节实际上需要在配置文件外部来定义. 二.Spring 提供了一个 PropertyPlaceholderConfigurer 的 BeanFactory 后置处理器.这个处理器允许用户将 Bean 的配置部分内容外移到属性文件中,然后可以在 Bean 的配置文件 里使用形式为 ${var}的变量,PropertyPlaceholderCo

PHP中如何定义类及其成员属性与操作

 类的概念:类是具有相同属性和操作的一组对象的集合.它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和操作两个主要部分.在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和操作说明两个主要部分. 1.类的定义: i. 类的关键字定义使用class 1.定义一个空类 Class Person{}; 2.定义一个有成员属性和操作的类 Class Person{ 成员属性........ 操    作........ } 3.定义一个不能被继承的类,使用final

JBoss中使用EJB有状态bean钝化时间设置

JBoss中使用EJB有状态bean钝化时间设置: 修改 standardjboss.xml 文件 <container-configuration> <container-name>Standard Stateful SessionBean</container-name> <call-logging>false</call-logging> <invoker-proxy-binding-name>stateful-rmi-invo

面试-spring事务传播属性有哪几种

问题描述 spring事务传播属性有哪几种 今天面试遇到的问题,spring事务传播属性有哪几种?常用的有哪些 解决方案 spring事务传播属性与隔离级别spring事务传播属性与隔离级别Spring 事务传播属性 解决方案二: 1.propagation_required spring默认的事务方式,如果当前存在事务,沿用当前事务,不存在事务,开启一个事务2.propagation_suports 以当前事务方式运行,当前没事务,不开启新的事务3.propagation_mandatory

sqlserver2005-关于MVC+Jsp模式学生成绩管理系统中src下servlet和bean的设置问题

问题描述 关于MVC+Jsp模式学生成绩管理系统中src下servlet和bean的设置问题 <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %> 无标题文档 /jsp:useBean <% if(stu_id==null){response.sendRedirect("login.jsp"