JAVA语言之小编Spring是什么、spring容器、IOC和DI
小标 2019-06-19 来源 : 阅读 1369 评论 0

摘要:本文主要向大家介绍了JAVA语言之小编Spring是什么、spring容器、IOC和DI,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言之小编Spring是什么、spring容器、IOC和DI,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

JAVA语言之小编Spring是什么、spring容器、IOC和DI

1.Spring
(1)Spring是什么?
是一个轻量级的、用来简化企业级应用开发的开发框架。


注:
a.简化开发:
Spring对常用的api做了简化,比如,使用Spring
jdbc来访问数据库,就不用再考虑如何获取连接、关闭连接、处理异常等等。
b.解耦:
Spring容器(Spring框架的一个模块)帮我们管理
对象(包括对象的创建及对象之间的依赖关系),
这样一来,对象之间的耦合度会大大降低,提供高了
系统的维护性。
c.集成其它框架:
Spring可以将其它一些常用的框架集成进来,比如
可以将Quartz,MyBatis等集成进来。
(2)Spring容器
1)Spring容器是什么?
Spring框架的一个核心模块,用于管理对象。


注:
管理对象指的是,spring容器会用我们创建对象,
并且建立对象之间的依赖关系。
2)如何启动Spring容器?
step1.导包。


<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.2.8.RELEASE</version>
</dependency>
step2.添加配置文件(applicationContext.xml)。


将配置文件添加到main/resources下。
step3.启动Spring容器。


ApplicationContext ac =
new ClassPathXmlApplicationContext(
"applicationContext.xml");
3)创建对象
a.方式一  使用无参构造器


step1. 给类添加无参构造器(缺省构造器)。
step2.  在配置文件当中,使用bean元素来进行配置。



step3. 启动容器,调用容器提供的getBean方法。
    //通过容器获得对象
    Apple ap1 =
        ac.getBean("ap1",Apple.class);
b.方式二  使用静态工厂方法 (了解)

c.方式三  使用实例工厂方法 (了解)

 
4)作用域
a.默认情况下,对于某个bean,容器只会创建一个实例。
b.如果要让容器创建多个实例,需要设置bean的作用域。

   
5)生命周期
spring容器在创建好对象之后,会调用初始化方法, 在销毁该对象之前,会调用销毁方法。
       
   
6)延迟加载
a.默认情况下,容器启动之后,会将所有作用域为singleton的bean实例化。
b.延迟加载指的是,通过设置lazy-init="true"告诉容器, 启动之后不再创建其实例。
   
   
(3)IOC和DI
1)IOC是什么? (Inversion Of Controll 控制反转)
对象之间的依赖关系应该由容器来建立。
2)DI是什么? (Dependency Injection 依赖注入)
容器通过调用set方法或者构造器来建立对象之间的依赖关系。
注:
    IOC是目标,DI是手段。
3)set方法注入
step1. 为类添加set方法。
step2. 在配置文件当中,使用property元素来配置set 方法注入。
   
   
       
   
step3. 启动容器,调用getBean方法。
3)set方法注入
![](//i2.51cto.com/images/blog/201812/05/800e7fdae63e852396da98d0d7752eed.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
4)构造器注入
step1. 添加相应的带参的构造器。
step2. 使用元素来配置构造器注入。
 
   
   
       
   
step3. 启动容器,调用getBean方法。
4)自动装配 (了解)
a.什么是自动装配?
容器依据某些规则,自动查找符合要求的对象,
然后建立对象之间的依赖关系。
注: 容器仍然要调用set方法或者构造器。
b.如何自动装配?
使用autowire属性指定装配的规则:

   
 
5)注入基本类型的值

   
   

6)注入集合类型的值
a.支持四种集合类型的值的注入,分别是List,Set,Properties,Map。
b.注入方式如下:
   
           
               打猎
               看书
               编程
               编程
           
       
   
       
           洛阳
           金陵
           开封
       
   
   
       
           
              
       
   
   
       
           tom
           1234
       
   
7)引用的方式注入集合类型的值
   
   
       打猎
       看书
       编程
   
   
       北京
       南京
       东京
   
   
       
       
   
   
       John
       1234
   
   
       
       
       
       
   
8)读取properties文件的内容
   
    
9)spring表达式
a.spring表达式的作用?
可以用来读取其它bean的属性
b.用法如下图:
![](//i2.51cto.com/images/blog/201812/05/23d87db1dd4a6b4ce775fa429262c531.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved