为了账号安全,请及时绑定邮箱和手机立即绑定

小编Spring是什么、spring容器、IOC和DI

标签:
Java

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方法注入 ![](http://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.用法如下图: ![](http://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=)

©著作权归作者所有:来自51CTO博客作者小杨Java的原创作品,如需转载,请注明出处,否则将追究法律责任


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消