Spring5第二篇:开发一个简单的Spring程序

目录

本文须知

Spring程序环境

Spring的核心API

程序开发

Spring的底层实现原理


本文须知

        本文内容来自于B站孙帅suns的spring课程视频,由本人根据视频学习整理而成。然而,由于个人理解和整理的差异,可能存在部分地方的误差或讲解不够明确的情况。

        为了获得更详细的课程内容和准确的解释,请您移步至B站,搜索孙帅suns获取详细课程视频内容,以便深入了解和学习。孙帅suns的视频将为您提供更全面、详细的知识和解释,帮助您更好地理解netty应用的相关内容。

        在阅读本文时,请注意本文的目的是为了提供一个概述和个人整理的观点,而不是取代原始视频课程的内容。如有任何疑问或不明之处,建议您参考原始视频课程以获取更准确的信息。

        感谢您的理解和支持!

        在此附上B站对应课程视频链接:学不会Spring?因为你没有找对人

Spring程序环境

        Spring的jar包
        Spring的配置文件
                配置文件的放置位置:任意位置,没有硬性要求
                配置文件的命名:没有硬性要求,建议applicatonContext.xml

Spring的核心API

  • ApplicationContext
    • 作用:Spring提供的ApplicationContext这个工厂,用于对象的创建
    • 好处:解耦合
  • ApplicationContext接口类型
    • 非Web环境:ClassPathXmlApplicationContext
    • Web环境:XmlWebApplicationContext
  • 重量级资源(如果一个对象它占用的内存比较多,那么就是重量级资源)
    • ApplicationContext工厂会占用大量的内存
    • 对于重量级资源来说,我们不会频繁的创建对象,一个应用只会创建一个工厂对象
    • ApplicationContext工厂一定是线程安全的(多线程并发访问)

程序开发

开发步骤:

  1. 创建对象
  2. 对applicationContext.xml进行配置
  3. 通过工厂类获取对象

配置配置文件

<bean id = "person" class = "com.dida.pojo.person"/>

通过工厂类获取对象

ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
Person person = (person) ctx.getBean("person");

名词解释:spring工厂创建的对象,叫做bean或者组件component

Spring工厂的相关方法

ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");

//通过这种方式获取对象就不像上面一样需要强制类型转换
Person person = ctx.getBean("person", Person.class);

//当前Spring配置文件中,只能有一个Bean class 是Person类型
Person person = ctx.getBean(Person.class);

//获取的是spring工厂配置文件当中所有bean标签id的值
Spring[] beanDefinitionNames = ctx.getBeanDefinitionNames();

//根据类型获取spring配置文件当中相关类型的bean标签的id的值
Spring[] beanNameForType = ctx.getBeanNameForType(person.class);

//判断是否存在指定id的值的bean,不能根据name值来判断
ctx.containsBeanDefinition("a");

//判断是否存在指定id的值的bean,可以根据name值来判断
ctx.containsBean("a");

配置文件当中需要注意的细节

  1. 只配置class属性:<bean class="com.dida.pojo.Person">
    1. 上面这种情况下,spring会默认给一个id值。
    2. 应用场景:
      1. 如果这个bean只需要使用一次,那么就可以省略id值;
      2. 如果这个bean会使用多次,或者被其他bean引用时,则需要设置id值;
  2. name属性:
    1. 作用:用于在spring配置文件当中,为bean对象定义别名(小名)。
    2. id属性和name属性相同的地方:
      1. ctx.getBean("")里面既可以写name的值也可以写id的值,都可以获取bean对象;
      2. <bean id="" class="">等效于<bean name="" class="">
    3. id属性和name属性的区别:
      1. 别名可以定义多个<bean name="p,p1,p2" class="">,但是id属性只能有一个值
      2. XML的id属性值命名要求:必须以字母开头,后续可以接字母、数字、下划线、连字符,不能以特殊字符开头,而name属性的值没有要求所以name属性会应用在特殊命名的场景下,但是XML发展到现在,这个对于id属性的限制已经不存在了。

Spring的底层实现原理

        spring是可以调用类的私有构造方法来创建对象的

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ikwil

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值