Spring框架学习(一)

这个学习是参照下面这个链接学习,作总结的。

链接: https://www.w3cschool.cn/wkspring/pesy1icl.html.

代码内容我就不放了,毕竟你们可以参考原文直接复制代码。这边也是我自己的学习,主要以自己记录为主,有什么需要帮助的可以给我留言(我自己还是个学渣呢,略略略~)

接下来开启我的Spring框架的自学。

首先那么多文档的介绍对我来说实在是太抽象了。(枯燥又不能完全理解,所以留到后面回头看)
在这里插入图片描述

Spring Hello World实例

这里用eclipse来写代码。
在这里插入图片描述

总结:这个比较简单了,说的是Spring是如何创建对象的。

1,创建了一个HelloWorld的类,有一个属性,并且有它的get、set方法。
2,那个Beans.xml重要的内容是这段:

 <bean id="helloWorld" class="com.tutorialspoint.HelloWorld">
       <property name="message" value="Hello World!"/>
   </bean>

意思就是:我创建一个对象(根据类),他的id如上,属性和值我也如上。
3.在MainApp.java里,

 ApplicationContext context =  new ClassPathXmlApplicationContext("Beans.xml");
HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
obj.getMessage();

意思就是:我调用了Beans.xml(我刚刚对我要创建对象的描述),根据id取出创建的对象,并且调用其方法。

这个比较简单,很初步的理解,我也不知道后期的Spring有多少要学的。继续加油吧。

瞅瞅我们的进度:
在这里插入图片描述

开始Spring IoC的学习

在这里插入图片描述

Spring BeanFactory 容器

这个使用的例子与我们上面Spring HelloWorld实例就这个地方不同。

Spring BeanFactory 容器的MainApp.java在这里插入图片描述
Spring HelloWorld实例的MainApp.java
在这里插入图片描述

你瞅瞅这句话就知道为啥用的是 ApplicationContext了。

ApplicationContext 包含 BeanFactory 所有的功能,一般情况下,相对于 BeanFactory,ApplicationContext 会更加优秀。当然,BeanFactory 仍可以在轻量级应用中使用,比如移动设备或者基于 applet 的应用程序。

最常被使用的 ApplicationContext 接口实现:

  1. FileSystemXmlApplicationContext:该容器从 XML 文件中加载已被定义的 bean。在这里,你需要提供给构造器 XML 文件的完整路径。

  2. ClassPathXmlApplicationContext:该容器从 XML 文件中加载已被定义的 bean。在这里,你不需要提供 XML 文件的完整路径,只需正确配置 CLASSPATH 环境变量即可,因为,容器会从 CLASSPATH 中搜索 bean 配置文件。

  3. WebXmlApplicationContext:该容器会在一个 web 应用程序的范围内加载在 XML 文件中已被定义的 bean。
    第一个比较麻烦要写完整路径,第三个没有举例,我们直接用第二个 ClassPathXmlApplicationContext就好了。

在这里插入图片描述

Bean 的作用域

当在 Spring 中定义一个 bean 时,你必须声明该 bean 的作用域的选项。例如,为了强制 Spring 在每次需要时都产生一个新的 bean 实例,你应该声明 bean 的作用域的属性为 prototype。同理,如果你想让 Spring 在每次需要时都返回同一个bean实例,你应该声明 bean 的作用域的属性为 singleton。

Spring 框架支持以下五个作用域,分别为singleton、prototype、request、session和global session,5种作用域说明如下所示,

注意,如果你使用 web-aware ApplicationContext 时,其中三个是可用的。

singleton 是默认的作用域,也就是说,当定义 Bean 时,如果没有指定作用域配置项,则 Bean 的作用域被默认为 singleton。
在这里插入图片描述
在这里插入图片描述
我现在产生了问题:
objA和ojbB真的都是他的别名吗?
答:是的。
如果给ojbB也赋值了,调用ojbA有结果吗?结果是谁?
答:有结果,是最近一次修改值。
再创建一个objC也是最近一次的赋值结果吗?
答:是的。

prototype就是各自用各自的名字了在这里插入图片描述

学到这里了https://www.w3cschool.cn/wkspring/xypt1icg.html
这个新的章节还没有开始整理呢,心里有数就好,哈哈哈哈。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值