Spring-管理Bean 使用BeanFactory管理Bean

Bean:

package com.gc.action;

import java.util.Date;

import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.DisposableBean;

public class HelloWorld
//implements InitializingBean,DisposableBean
{

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

	public void afterPropertiesSet() {
		// TODO Auto-generated method stub
		this.msg="HelloWorld";
		this.date=new Date();
		System.out.println("2000");
	}

	public void cleanup() {
		// TODO Auto-generated method stub
		this.msg="";
		this.date=null;
	    System.out.println("您销毁了msg"+this.msg+"和date"+this.date);
	}

	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;
	}

}

配置文件:

<?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" init-method="afterPropertiesSet" destroy-method="cleanup">
    <!--将其变量msg通过依赖注入-->

    </bean>

</beans>

测试程序:

package com.gc.test;

import java.util.Date;

import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;

import com.gc.action.HelloWorld;

public class TestHelloWorld {
    public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException
    {
    	//通过ClassPathResource获取配置文档
    	ClassPathResource res=new ClassPathResource("config.xml");

    	//通过XmlBeanFactory来解析配置翁当
    	XmlBeanFactory factory=new XmlBeanFactory(res);

    	//根据id获取Bean
    	HelloWorld helloWorld=(HelloWorld)factory.getBean("HelloWorld");

    	//拿出Bean在配置文档中设定的内容
    	System.out.println(helloWorld.getDate()+" "+helloWorld.getMsg()+"------");
    }
}
时间: 2024-09-20 12:58:21

Spring-管理Bean 使用BeanFactory管理Bean的相关文章

为什么我配置Spring的事务后不能得到BEAN

问题描述 我配置Spring的事务后不能得到BEAN如果把事务的部分去掉的话就能够得到下面这是applicationContext.xml<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins

Spring多数据源分布式事务管理/springmvc+spring+atomikos[jta]+druid+mybatis

项目进行读写分离及分库分表,在一个业务中,在一个事务中处理时候将切换多个数据源,需要保证同一事务多个数据源数据的一致性.此处使用atomikos来实现:最后附源码: 1:spring3.0之后不再支持jtom[jta]了,第三方开源软件atomikos(http://www.atomikos.com/)来实现.  2:org.springframework.transaction.jta.JotmFactoryBean类,spring-tx-2.5.6.jar中有此类,spring-tx-3.0

Spring Security实现动态权限管理

我所理解的动态权限就是RBAC(Role-Based Access Control). 就是可以自定义角色,配置角色可以访问哪些URL.然后给不同的角色设置不同的角色. 为什么用Spring Security?听说Spring Security是基于Shiro的.Shiro没用过.之所以用Spring Security是因为它安全.废话!是因为可以帮你防御csrf等攻击.其实现在的Chrome浏览器的同源策略已经很不错了,想csrf也没那么容易.Spring Security能防住多少我也不知道

详解Java的Spring框架中的事务管理方式_java

数据库事务是被当作单个工作单元的操作序列.这些操作要么全部完成或全部不成功.事务管理是面向企业应用程序,以确保数据的完整性和一致性RDBMS中的重要组成部分.事务的概念可以用下面的描述为ACID四个关键属性来描述: 原子性: 一个事务应该被视为单个操作单元表示的操作的任一整个序列是成功的或不成功的. 一致性: 这代表了数据库的参照完整性,在桌等唯一主键的一致性 隔离性: 可能有很多事务处理相同的数据集的同时,每个事务都应由他人隔离,以防止数据损坏. 持久性: 一旦事务完成,本次事务的结果必须作出

spring入门(8) 装配Bean之自动装配

Spring_Autowiring collaborators 在Spring3.2.2中自动装配类型,分别为:no(default)(不采用自动装配). byName,byType,constructor下面来分别介绍一下这些是如何自动装配的 <bean id="foo" class="...Foo" autowire="autowire type"> Mode            Explanation no: (Default

Spring Web Flow 2中流管理的持久化:事务性Web流的持久化策略

Spring Web Flow 是一种新颖的 Java Web 框架,它扩展了 Spring MVC 技术.使用 Spring Web Flow 的应用开发围绕着定义为 Web 流的用例展开. 将开发工作区根据 Web 流进行组织使开发体验更有意义.更具上下文.此外,Spring Web Flow 对 JPA/Hibernate 持久化的支持也是其最重要的服务器端改进之一. 尽管 SpringSource 和 Spring Web Flow 项目组详细介绍了 Spring Web Flow,但是

全面分析Spring的编程式事务管理及声明式事务管理

开始之前 关于本教程 本教程将深入讲解 Spring 简单而强大的事务管理功能,包括编程式事务和声明式事务.通过对本教程的学习,您将能够理解 Spring 事务管理的本质,并灵活运用之. 先决条件 本教程假定您已经掌握了 Java 基础知识,并对 Spring 有一定了解.您还需要具备基本的事务管理的知识,比如:事务的定义,隔离级别的概念,等等.本文将直接使用这些概念而不做详细解释.另外,您最好掌握数据库的基础知识,虽然这不是必须. 系统需求 要试验这份教程中的工具和示例,硬件配置需求为:至少带

Spring 2.0中新的Bean类型实现原理

我们知道,在Spring2.0中,除了singleton及prototype两种类型的Bean以外.默认情况下还增加了request.session及global session三种类型的Bean,增加的三种类型的Bean主要应用于Web应用程序中.本文不打算分析三种类型的Bean的用法,只是简单分析框架的实现原理. Spring2.0中新增了一个用来表示Bean范围的Scope接口 public interface Scope { Object get(String name, ObjectF

我在一个项目中看到spring配置文件中的几个bean只有class属性,没有id,怎么回事?

问题描述 我在一个项目中看到spring配置文件中的几个bean只有class属性,没有id,怎么回事? 我今天在学习spring时,学到项目中配置文件中,有几个bean,都是只是写了class,并没有指明id,这是怎么回事,这样是错误的,还是针对特殊的功能的某种特殊的写法 解决方案 spring是有默认值得.貌似是class的驼峰命名 首字母小写