Spring 的bean 对象的设置最原始的方法

本文介绍了如何在Spring中创建bean.xml配置文件,包括声明bean并指定其类和id。展示了如何通过接口和实现类创建服务,并利用Spring容器管理对象。在测试类中,演示了如何使用Spring容器获取并调用对象的方法,以及获取容器中对象的数量和信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、先是创建一个bean.xml的配置文件(注:bean可以设置为其他名字)

<?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">
 <!--
    告诉spring创建对象
    声明备案,就是告诉spring创建某个类的对象
    id:对象的自定义名称,唯一值,spring通过这个名称找到对象,必须使用类
    class:类的权限名称,(不能是接口,因为spring是反射机制创建对象,必须使用类)

    spring就完成了, SomeService service = new SomeServiceImpl();
    spring把创建好的对象放入到map中,spring框架有一个map存放对象。
    springmap.map(id的值,对象)

    例如 springmap.map("someservice",new SomeServiceImpl());

    一个bean标签声明一个对象
    -->

    <bean id="someservice" class="cn.qiang.service.impl.SomeServiceImpl"></bean>

    <bean id="someservice1" class="cn.qiang.service.impl.SomeServiceImpl"></bean>

    <!--
         spring 能创建一个非自定义的对象吗,创建一个存在的某个类的对象
    -->
    <bean id="mydate" class="java.util.Date"></bean>


</beans>
<!--spring 的配置文件-->
<!--1、beans:是根标签,spring吧Java对象称为beans-->
<!--2.spring-beans.xsd是约束文件,和mybatis指定的的态度是一样的-->

2、创建一个接口和他的实现类

SomeService接口

package cn.qiang.service;

public interface SomeService {
    void dosome();
}

SomeServiceImpl接口的实现类

package cn.qiang.service.impl;

import cn.qiang.service.SomeService;

public class SomeServiceImpl implements SomeService {
    @Override
    public void dosome() {
        System.out.println("执行了SomeService的doSome()方法");
    }

    public SomeServiceImpl() {
        System.out.println("SomeServiceImpl的无参数构造");
    }
}

3、测试类

package com.qiang;

import cn.qiang.service.SomeService;
import cn.qiang.service.impl.SomeServiceImpl;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.Date;

public class MyTest {

    @Test
    public void test01(){
        SomeService service = new SomeServiceImpl();
        service.dosome();
    }


    /**
     * spring 默认创建对象的时间:在创建spring容器的时候,会创建配置文件中的所有对象
     * spring 创建对象:默认调用的是无参数构造方法
     */
    @Test
    public void test02(){
        //使用spring容器创建的对象,
        //指定spring配置文件的名称
        String config="beans.xml";
        //创建表示spring容器的对象,ApplicationContext
        //ApplicationContext就是表示spring容器,通过容器获取对象了

        //ClassPathXmlApplicationContext:表示从类路径中加载spring的配置文件
        ApplicationContext ac = new ClassPathXmlApplicationContext(config);

        //从容器中获取某个对象,你要调用对象的方法
        //getBean("配置文件中的bean的id值")
        SomeService service = (SomeService) ac.getBean("someservice");

        //使用spring创建好的对象
        service.dosome();
    }


    /**
     * 获取搜ring容器中的Java对象的信息
     */
    @Test
    public void test03(){
        String config="beans.xml";
        ApplicationContext ac = new ClassPathXmlApplicationContext(config);
        //使用Spring容器提供的方法,获取容器中定义的对象的数量
        int nums = ac.getBeanDefinitionCount();
        System.out.println("容器中定义对象的数量:"+nums);
        //容器中每个定义的对象的名称
        String[] names = ac.getBeanDefinitionNames();
        for (String name:names
             ) {
            System.out.println(name);
        }
    }

    @Test
    public void test04(){
        String config = "beans.xml";
        ApplicationContext ac = new ClassPathXmlApplicationContext(config);

        //使用getbean();
        Date my = (Date) ac.getBean("mydate");
        System.out.println("Date:"+my);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值