前言:看了B站黑马程序员,狂神说JAVA,个人觉得还是狂神讲的更加细致,现记录自己的学习过程

 

一、Spring是一个框架,是为了让现有的技术更加容易使用,本身就是一个大杂烩,整合了现有的技术框架。

优点:Spring是一个开源的免费的框架(容器)!

Spring是一个轻量级的,非入侵式的框架

控制反转(IOC),面向切面编程(AOP)

支持事务的处理,对框架整合的支持

 

总结:Spring是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架。

 

二、控制反转:

控制:谁来控制对象的创建,传统应用程序的对象是由程序本身控制创建的,使用Spring后,对象是由Spring来创建的。

反转:程序本身不创建对象,而变成被动的接收对象

依赖注入:就是利用set方法来进行注入的。

IOC是一种变成思想,由主动的编程变成被动的接收。

Class A中用到了Class B的对象b,一般情况下,需要在A的代码中显式的new一个B的对象。
采用依赖注入技术之后,A的代码只需要定义一个私有的B对象,不需要直接new来获得这个对象,而是通过相关的容器控制程序来将B对象在外部new出来并注入到A类里的引用中。而具体获取的方法、对象被获取时的状态由配置文件(如XML)来指定。
所谓的IOC,就是由Spring来创建,管理,装配
 
Java语法:

类型 变量名 new 类型();

 Hello hello = new Hello();

 

现在只要在xml配置文件中配置即可

id = 变量名

class = new的对象

property相当于给对象中的属性设置一个值

 

<bean id ="hello" class="com.icecream.Hello">

  <property name="str" value="Spring”>

</bean>

</beans>

 

三、IOC创建对象的方式

1.使用无参构造创建对象,默认方式

2.假设我们需要使用有参构造创建对象。

  1.下标赋值

    

<bean id ="user" class="com.icecream.user">
<constructor-arg index="0" value="java学习"/></bean>

 

  2.通过类型创建,但是不建议使用

<bean id ="user" class="com.icecream.user">
<constructor-arg type="java.lang.string" value="java学习1"/></bean>

  3.通过参数名创建

<bean id ="user" class="com.icecream.user">
<constructor-arg name="name" value="java学习2"/></bean>

 

 总结:在配置文件加载的时候,容器中管理的对象就已经初始化了。

 

四、spring配置

1.别名:

alias=""即可

 <alias name="user" alias="userNwe"/>

如果添加了别名,我们也可以使用别名来获取到这个对象

2.

id:bean的唯一标识符,也就是相当于我们之前java中学的对象名

class:bean对象所对应的全限定名,:包名+类型

name:也是别名

import,一般用于团队开发使用,他可以将多个配置文件,导入合并为一个总的

<import resource ="bean.xml"/>
<import resource ="bean2.xml"/>
<import resource ="bean3.xml"/>

使用的时候使用总的配置就行了

 

五、依赖注入

1.构造器注入

2.Set 注入 (重点)

见:https://blog.csdn.net/qq_33369905/article/details/106647271?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165260651916781432989642%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165260651916781432989642&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-4-106647271-null-null.nonecase&utm_term=IOC&spm=1018.2226.3001.4450

 

 

 

参考文档:https://blog.csdn.net/qq_33369905/article/details/106647330?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165260651916781432989642%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165260651916781432989642&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-106647330-null-null.nonecase&utm_term=IOC&spm=1018.2226.3001.4450

 

posted on 2022-05-15 19:48  小熊冰淇淋  阅读(26)  评论(0)    收藏  举报