当前位置: 首页 > news >正文

定西市网站建设咨询百度搜索推广官网

定西市网站建设咨询,百度搜索推广官网,惠州网站建设方案报价,营销网站设计与规划方案未来的几周时间,大概率我会更新一下Spring家族的一些简单知识。而什么是Spring家族,好多同学还不是很清楚,我先来简单介绍一下吧: 所谓Spring家族,它其实就是一个框架,是基于Servlet再次进行封装的内容。为…

未来的几周时间,大概率我会更新一下Spring家族的一些简单知识。而什么是Spring家族,好多同学还不是很清楚,我先来简单介绍一下吧:

所谓Spring家族,它其实就是一个框架,是基于Servlet再次进行封装的内容。为啥说是再次进行封装呢,就是因为Servlet也是封装的一门用于Web端的技术,他们的基础都是Java。所以说,想要学习Spring,建议大家先去了解一下Java基础语法以及Servlet技术。

Spring是什么

通常意义下,我们所说的Spring就是Spring Framework,这是一个开源框架,有着活跃而庞大的社区。为啥说Java的生态很完善,我认为Spring家族就提供了许多保证生态完善的轮子。而Spring框架由于支持广泛的应用场景,使得Java企业级的应用开发变得更简单。

框架为会啥流行呢?或者换句话说,为啥Spring会有这么庞大的用户量?刚开始使用Java解决某一问题时,代码冗杂而功能不全,而使用一些工具方法就可以使得本来繁杂的代码变得简单,而积聚了众多工具方法的组合,就可以称之为框架,既然有了可以使代码变简单的办法,那么就一定会被更多人所用,自然而然也会流行起来。

用一句话来概括Spring框架:Spring是包含了众多工具方法的IoC容器。

IoC是什么

IoC的全称是Inverson of Control,译为中文就是控制反转。其内容就是对对象的生命周期进行控制反转,结果就是降低耦合。

举个简单的例子来说吧:在传统开发中,A类引用B类,B类引用C类,C类引用D类,因此在A类中需要new一个B类,B类中需要new一个C类,而C类中需要new一个D类,假如D类的构造方法发生了改变,那么随之而来的就是需要去改变ABC三个类的构造方法;但是在Spring开发中,不需要进行new类,而是直接把需要使用类的对象给传进来,这样当D类发生改变时,并不需要去动其他的类,从而减少了许多不必要的麻烦,降低了类与类之间的耦合度。

DI是什么

DI的全称是Dependency Injection,译为中文就是依赖注入。其内容就是IoC容器在运行期间,动态的将某种依赖关系注入到对象当中。

从客观角度来看,IoC和DI描述的都是同一件事,即通过IoC容器,动态的将某种依赖关系注入到对象当中。不同的则是,IoC是一种思想,是从整体层面解释的概念,而DI则表示的是一种技术,用这种依赖注入的技术来控制对象生命周期的反转。

容器是什么

顾名思义,容器就是用来存放物品的一种装置。在Spring中,容器就是用来存放对象的装置。既然是容器,那么就表明其可以放物品,也可以拿物品。因此学习Spring时最核心的就是学会如何将对象存储到Spring中,如何将对象从Spring中取出来。

明白了Spring核心功能,那么它的好处是啥呢?首先将对象存储到IoC容器中就表示将未来所有可能用到的工具都放入仓库中,啥时候用啥时候取就可以了,而用完再放入容器中即可,非常的简单便捷。而传统的开发中new就相当于每次使用工具的时候,都现场制作一把,然后用完以后,直接废弃,下次再用的时候再制作,非常麻烦,这就是Spring开发和传统开发的区别。

Spring的创建和存取

1. 创建

创建一个maven项目

f7c494baea5b4eacadc044eb2f629070.png

引入Spring-beans(管理对象的模块)和Spring-context(Spring上下文)依赖

    <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.2.3.RELEASE</version></dependency></dependencies>

2. 存取

a. 创建一个Bean对象

所谓的Bean对象其实就是Java语言中的一个普通对象。

package org.example;public class User {public String sayHi() {return "hello world";}
}

b. 添加配置文件

在resourse目录添加配置文件spring-config.xml(后缀是xml不可变,但是前缀是可以改变的);xml文件的作用就是告诉Spring框架要存取的对象是啥。

0456ad4d28bb4cc9abb32848d0ba33b0.png

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"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"></beans>

c. 存对象

将Bean对象配置到xml文件中。

<bean id="user" class="org.example.User"></bean>
<!--id表示的是Bean对象的名称,不可重复;而class表示的是对象本身,即包名+类名-->

d. 取对象

读对象的话先要得到Spring对象,再从Spring对象中取Bean对象;获取Spring对象可以使用ApplicationContext。

package org.example;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class App {public static void main(String[] args) {//1. 先得到Spring对象ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");//2. 从Spring对象中得到Bean对象User user = context.getBean("user", User.class);//3. 使用Bean对象System.out.println(user.sayHi());}
}

对于得到Spring对象来说,有两种方法可以得到。

一种就是使用ApplicationContext,另一种方法就是BeanFactory。

package org.example;import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;public class App {public static void main(String[] args) {//1. 先得到Spring对象BeanFactory context = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));//2. 从Spring对象中取到Bean对象User user = context.getBean("user", User.class);//3. 使用Bean对象System.out.println(user.sayHi());}}

ApplicationContext和BeanFactory的异同

相同点:

两者都可以得到Spring对象;

两者都是来自Spring的顶级接口(即可以有很多类来继承他们)。

不同点:
07277c3f138341d6ada49a37da195fb0.png

cdef00e2ab794f6eab39b368c3d94ef5.png

继承关系,从上图可以看出,ApplicationContext是继承了BeanFactory,也就是说ApplicationContext不仅拥有BeanFactory的基础功能,还在其功能之上加了些许其他功能,例如国际化支持、资源访问以及事件传播等,而BeanFactory则只有最基础访问Bean的能力。

性能,ApplicationContext是一次性加载,即程序运行的时候将Bean对象都给加载出来,因此后续访问Bean的时候就会很快,而BeanFactory则是在使用某个对象的时候才进行加载,所有在执行Bean获取的时候会比较慢。

Spring中取对象的三种方法

        //第一种方法,使用Bean名称进行获取//当xml中没有出现这个Bean名称时,依然进行强转,那么可能会出现错误User user1 = (User) context.getBean("user");//第二种方法,使用Bean类型来获取//当xml中出现两次及以上,即一个Bean对象但是有好几个名字时,也会报错User user2 = context.getBean(User.class);//第三种方法,使用Bean名称和类型来获取User user3 = context.getBean("user", User.class);

总结

了解了Spring是包含了众多工具方法的IoC容器;

了解了IoC、DI以及容器的思想;

了解了Spring的创建和存取。

上述已经实现了Spring的存取,但是实现方法还是比较复杂,接下来会写一篇关于Spring存取更简单的方式,其中涉及到的内容也比较多,例如有配置文件、五大注解、Bean注解以及三大注入等内容。

http://www.hkea.cn/news/475203/

相关文章:

  • 自己可以进行网站建设吗河北网站推广
  • 网站建设与管理论文seo整站怎么优化
  • 西安做网站收费价格网站流量监控
  • 福州网站制作有限公司南京疫情最新情况
  • 国外品牌设计网站天津疫情最新消息
  • 宁波有做网站的地方吗seo报价单
  • 深圳企业网站开发中国法律服务网app最新下载
  • 大连企业网站建站国外域名注册网站
  • 站长工具seo综合查询权重百度在线搜索
  • 伊犁网站建设评价怎样才能上百度
  • 房地产网站建设方案百度实名认证
  • 做外贸可以在哪些网站注册网络项目免费的资源网
  • 中国建设银行信用卡网站首页青岛关键词优化平台
  • 阿里云网站建设考试题目长沙网站推广服务公司
  • 甘肃建设项目审批权限网站俄罗斯搜索引擎yandex官网入口
  • 网站建设公司新员工培训ppt模板百度热门搜索排行榜
  • 仿魔客吧网站模板网址大全是ie浏览器吗
  • 网站产品后台界面怎么做湖南关键词排名推广
  • 网站数据每隔几秒切换怎么做的湖南百度seo排名点击软件
  • 网站制作先学什么百度新闻下载安装
  • 河南省网站建设哪家好免费观看行情软件网站进入
  • 粘合剂东莞网站建设体育热点新闻
  • 百度网站排名关键词整站优化培训网站建设
  • 网络平台代理seo外包 杭州
  • 东方头条网站源码免费推广软件工具
  • 北京网站建设公司分享网站改版注意事项流程优化四个方法
  • 案例学 网页设计与网站建设手机百度seo快速排名
  • 江门网站建设总部电话产品推广渠道有哪些
  • 网站建设全攻略站长之家ping检测
  • 导航网站 cmsgoogle chrome谷歌浏览器