java Spring框架学习(一)

本文介绍了Spring的IoC(控制反转)概念,包括对象的创建、属性赋值和生命周期管理。DI(依赖注入)是其实现方式,允许开发者只需指定对象名称即可。通过配置文件,Spring容器管理bean对象,自动创建并赋值。文中还展示了如何通过ApplicationContext获取bean,并探讨了对象的创建时机。此外,文章提供了获取容器中所有bean名称的方法以及如何创建非配置类对象的示例。

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

IoC控制反转

1)分为控制和反转

控制:对象创建,属性赋值,对象声明周期管理

反转:把开发人员管理对象的权限转移给了代码之外的容易实现,由容器完成对象的管理

Spring就是一个容器,可以管理创建对象给对象赋值

2)loc技术实现

DI(依赖注入):只需要使用对象的名称就行,不用管怎么创建的查找的在容器中

Spring 的配置文件

spring 标准配置文件:
bean: bean就是java对象,spring 容器管理的java对象叫做bean 
 id :自定义对象的名称,唯一值
 class:类的名称 spring 通过反射机制创建对象,不能是接口
 spring根据id class 创建对象 把对象放到spring 中的一个map对象

主文件实现

public class RgylinM {
    public static void main(String[] args) {
        //SomeService service = new SomeServiceImpl();
        //service.doSome();
        //使用bean 创建对象
        String config="beans.xml";
        //ApplicationContext 表示 spring 对象
        //通过类加载配置bean文件来实现创建对象 需要进行所需要的转型
        ApplicationContext ctt=new ClassPathXmlApplicationContext(config);
        //从容器中获取指定对象名称
        SomeService temp = (SomeService)ctt.getBean("someService");
        temp.doSome();

    }
}

beans

<!--    id :自定义对象的名称,唯一值
        class:类的名称 spring 通过反射机制创建对象,不能是接口
        spring根据id class 创建对象 把对象放到spring 中的一个map对象
-->
    <bean id="someService" class="org.example.impl.SomeServiceImpl" />

也可以用普通类的创建

bean对象为

<bean id="rgylin_ord" class="org.example.impl.Rgylin_ord"/>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GjtYJmeC-1637732677588)(C:\Users\ASUS\Desktop\QQ截图20211124133256.png)]

测试spring是什么时候创建对象的

首先写一个无参构造方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HtSBvRqq-1637732677591)(C:\Users\ASUS\Desktop\QQ截图20211124125250.png)]

然后再text 包中就见一个MyText类去调用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nYSK6xcx-1637732677593)(C:\Users\ASUS\Desktop\QQ截图20211124125519.png)]

可以看到

对象是在创建spring对象会读取其配置文件,并创建文件声明中的对象(默认执行无参构造方法),所以剩下的我们就可以取就行了速度大大提升

在创建容器对象ApplicationContext会把配置文件中所有的对象都创建出来

获取容器对象的名称

    public void text(){
        String config="beans.xml";
        ApplicationContext temp= new ClassPathXmlApplicationContext(config);
        String[] all= temp.getBeanDefinitionNames();
        for(String i:all){
            System.out.println("名字是"+i); //名字是someService
        }

    }

spring 容器创建非定义类对象

以日期类为例

首先在bean中创建类

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

然后调用

        Date my_data= (Date)temp.getBean("rgylin_ddata");
        System.out.println(my_data);
		//得到结果
        //Wed Nov 24 13:24:46 CST 2021

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考学习链接https://www.bilibili.com/video/BV1hN411X77N

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值