Spring学习笔记1
前言:看了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相当于给对象中的属性设置一个值
2.通过类型创建,但是不建议使用 3.通过参数名创建 总结:在配置文件加载的时候,容器中管理的对象就已经初始化了。 四、spring配置 1.别名: alias=""即可 如果添加了别名,我们也可以使用别名来获取到这个对象 2. id:bean的唯一标识符,也就是相当于我们之前java中学的对象名 class:bean对象所对应的全限定名,:包名+类型 name:也是别名 import,一般用于团队开发使用,他可以将多个配置文件,导入合并为一个总的 使用的时候使用总的配置就行了 五、依赖注入 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<bean id ="user" class="com.icecream.user">
<constructor-arg type="java.lang.string" value="java学习1"/>bean>
<bean id ="user" class="com.icecream.user">
<constructor-arg name="name" value="java学习2"/>bean>
<alias name="user" alias="userNwe"/>
<import resource ="bean.xml"/>
<import resource ="bean2.xml"/>
<import resource ="bean3.xml"/>