欢迎光临散文网 会员登陆 & 注册

初识Spring框架

2023-03-30 18:51 作者:小白新手网络教程  | 我要投稿

1.为何要学习Spring框架

学习框架相当于从”小作坊“到”工厂“的升级,小作坊什么都需要自己来完成,而框架就在一定意义上实现了自动化,框架更加易用、简单且高效。

2.Servlet以及Spring Boot

2.1 servlet框架步骤

①首先创建一个maven项目选择webapp

②搜索servlet添加框架到pom.xml中

③添加业务代码、实体类、控制器

④运行项目(借助tomcat)

3、Spring核心与设计思想

3.1 初识Spring

通常所说的Spring就是Spring Framework(Spring框架),用一句话概括Spring:Spring是包含了众多工具方法的IoC容器。

3.2 什么是IoC?

IoC即 Inversion of Control 译为中文为”控制反转“的意思,简单理解就是把程序的控制权反转过来,举一个简单的例子:构建车的过程,构建一辆车,车需要依赖于车身,而车身又依赖于底盘,而底盘依赖于轮胎,如下图所示:

上下为依赖关系

实现这个构造过程需要在每个实体类里面new所依赖的类,整个程序呈现出层层依赖的结构,这正是问题所在,当最底层代码进行改动之后,就需要对整个调用链的代码进行修改。这就是传统开发中的弊端,如何解决呢?

要想解决上面的问题我们可以考虑不在每个类中自己new新的下级类,此时我们只需要将原来由自己创建的下级类,改为传递的方式(也就是注入的方式),因为我们不需要在当前类中创建下级类了,所以下级类即使发生变化(创建或减少参数),也与当前类无关了,这样就完成了程序的解耦
PS:解耦指的是解决了代码的耦合性,耦合性也可以叫做程序的相关性。好的程序的耦合性是很低的,也就是较大可能实现了程序的解耦。

基于以上思路,我们把调用汽车的程序改造一下,把创建子类的方式改为注入传递的方式:

并且一层一层网上堆叠

Spring是包含了众多工具方法的IoC容器,既然Spring是一个IoC容器,那么我们就可以认为,以上的这些解耦的相关操作,Spring框架可以帮助我们完成,我们可以直接用所需要的类的对象(这里的直接的前提是我们已经将对象放入到容器中了),而不用自己创建。
Spring具备的两个最基础的功能:
①将对象放入到容器中
②从容器中取出对象
也就是说学Spring最核心的功能,就是学如何将对象存到Spring中,再从Spring中获取对象的过程

3.3什么是DI

DI 即 Dependency Injection 译为 依赖注入。

所谓依赖注入就是在IoC运行期间,自动地将某种依赖关系注入到对象中。所以DI和IoC 是从不同的角度描述的同一件事情。IoC是一种思想,而DI是具体的实现。

4、Spring创建与使用
4.1 创建 Spring项目
①创建一个普通的Maven项目
②添加Spring的框架支持(依赖)到pom.xml文件中(spring-context、spring-beans)
③添加启动类
4.2 存储 Bean 对象
存储Bean对象分为以下两步:
        ①存储Bean之前,得先有Bean才行,因此要创建一个Bean
        ②将创建的Bean 注册到Spring容器中,添加注册信息到xml文件中

MR xiaobai

4.3 获取并使用Bean对象

获取Bean对象,分为以下三步:

①得到Spring上下文对象,因为对象都已经注册到Spring中交给Spring管理了,所以要获取对象就要从Spring中获取,那么就得先得到Spring的上下文。

//1.得到上下文分为两种
 
第一种ApplicationContext:
 
 ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
 
第二种BeanFactory:
 
 BeanFactory beanFactory  = new XmlBeanFactory(new
ClassPathResource("spring-config.xml"));

思考:

※ApplicationContext VS BeanFactroy

①继承关系和功能方面:ApplicationContext 是 BeanFactroy的子类,其除了继承了BeanFactroy 访问容器的能力外,它还具有独特的特性,还添加了对国际化支持、资源访问支持、以及事件传播等方面的支持。
②性能方面:ApplicationContext 一次性加载并初始化所有的Bean对象,而  BeanFactroy 是需要哪个才去加载哪个,因此更加轻量。(BeanFactory发挥了老一辈的节俭品质)
②通过Spring上下文,获取某一个指定的Bean对象。

//2.获取指定的bean对象
User user = (User) context.getBean("user");

ps:getBean() 方法有很多重载方法,我们也可以使用其他方式来获取Bean:

//根据类型获取Bean,有局限性,若是一个Bean被注册了两次,此种就会报错
 
User user = context.getBean(User.class);

// 根据 名称+类型获取Bean,这种比较常用
User user = context.getBean("user",User.class);

③使用Bean对象。

   //3.使用bean对象
   user.sayHi("张三");

总结初始Spring框架

总结:

可能存在的潜在问题:在pom.xml中配置的相关依赖


这里可能出现红色标识符,表明自己的工厂没有搭配好

这里需要修改文件的配置以及所需的依赖









初识Spring框架的评论 (共 条)

分享到微博请遵守国家法律