java getbean不同实现_java Spring系列之 配置文件的操作 +Bean的生命周期+不同数据类型的注入简析+注入的原理详解+配置文件中不同标签体的使用方式...

本文深入探讨Spring配置文件的操作,包括Bean的生命周期、不同类型的注入方式及配置文件中的标签使用。通过实例解析了单例与多例Bean的区别,并介绍了依赖注入的概念,展示了如何通过set方法和构造器进行注入。此外,还讨论了普通数据类型和集合的注入方式。
摘要由CSDN通过智能技术生成

Spring系列之 配置文件的操作

写在文章前面:

本文带大家掌握Spring配置文件的基础操作以及带领大家理清依赖注入的概念,本文涉及内容广泛,如果各位读者耐心看完,应该会对自身有一个提升

c5330d546f1feca9d12135c2df872344.png

Spring配置文件的作用

Spring配置文件是用于Spring工厂进行Bean生产,依赖关系注入,Bean实例分发的图纸,他类似于人类的大脑,我们必须掌握这张图纸的使用方法,才能进行相关的操作,灵活运用这张图纸准确的表达自己的意图。运筹帷幄,决胜千里。Spring的配置文件是一个或多个标准的xml文档,applicationContext.xml文件是默认的配置文件,当容器启动找不到配置文件时,就会尝试加载这个配置文件。

未使用Spring前程序的开发步骤

这里以配置一个User类为例,UserImp为接口,User为其实现类,我们本来使用一个 UserImp接口去接收一个User的实现对象,本来是通过以下代码:

UserImp user=new User()

流程图:

3e29081b6bdd12e727b9399015cfa62c.png

使用上述方法的缺点:代码的耦合度过高

使用Spring框架操作

这里以配置一个User类为例,UserImp为接口,User为其实现类,我们使用一个 UserImp接口去接受一个User的实现对象,代码如下:

UserDao user=Spring客户端.getBean(id标识符)

那么其内部的原理是怎么样的呢?要实现解耦,基本上都是使用配置文的方式,Spring自然也不例外,下面通过一张流程图解来带领大家更好的领会

流程图解:

3e974bb5cd30532efcdbb8a8a0adcab1.png

Spring入门实现步骤

1.在pom.xml中导入Spring框架的坐标

2.创建Bean

3.创建applicationContext.xml

4.在xml中经行配置

5.创建ApplicationContext对象getBean

实现一个简单的Spring案例

项目结构:

90a1547efe935d4d5d4f5503611fbf68.png

主函数,使用Spring的API获取Bean实例

存在的文件夹:

10f7d99b4b1b33d19fab0d23ef72964f.png

package com.pjh.Dao.Demo;

import com.pjh.Dao.UserDaoImp.UserDaoImp;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class demo1 {

public static void main(String[] args) {

ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");

UserDaoImp userDaoImp =(UserDaoImp) classPathXmlApplicationContext.getBean("userDaoImp");

userDaoImp.save();

}

}

创建Spring的配置文件:applicationContext.xml

存在的文件夹:

8ebfc2e090deed64db703224164b3ad8.png

代码:

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开发的基本坐标,在pom.xml配置文件

文件位置

0849d38b3b41b8aa16316feb9941687a.png

代码:

4.0.0

com.pjh

SpringIOCInit

1.0-SNAPSHOT

org.springframework

spring-context

5.0.3.RELEASE

编写userDaoImp类的相关信息:

package com.pjh.Dao.UserDaoImp;

import com.pjh.Dao.UserDao;

public class UserDaoImp implements UserDao{

public void save() {

System.out.println("save runing!!");

}

}

运行结果

成功执行

66f1367befb5eced10798f631d260be5.png

Bean标签介绍与基本属性

3.1 Bean标签的基本配置

用于配置文件交由Spring配置,默认调用无参构造,如果没有无参构造则创建失败

id:Bean实例在Spring中的唯一标识符

class:Bean实例的全限定名称

如果你在某个实现类中复写了有参构造,记得添加无参构造方法,因为你复写了有参构造后,原本的无参构造会消除掉,如果你在这个时候仍然在Spring的配置文件中默认使用无参构造,那么这时候他就会报错

如图

2c43c514cd826bbef1c8470a4f278133.png

3.2Bean的标签范围配置

8dfa4415a3326c6e738a66d138469f45.png

这里讲解一下singleton(单例的)和prototype(多例的)

当scope取值为singleton时:

Bean的实例化个数:1个

Bean的实例化时机:当Spring核心配置文件被加载时

Bean的生命周期:

对象创建:当应用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值