(1) Spring 是一个开源的免费框架(容器)
(2)Spring 是一个轻量级的,非入侵式的框架
(3)控制反转(IOC),面向切面编程(AOP)
(4)支持事务的处理,对框架整合的支持
总结: Spring就是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架
拓展:Spring Boot: 一个快速开发的脚手架,基于SpringBoot可以快速的开发单个微服务,约定大于配置
Spring Cloud: SpringCloud是基于 SpringBoot实现的
二、IOC理论推导-
UserDao 接口
-
UserDaolmpl 实现类
-
UserService 业务接口
-
UserServicelmpl 业务实现类
在之前的业务中,用户的需求可能会影响原来的代码。可以使用set接口进行动态实现值的注入。
之前程序是主动创建对象,使用了set注入后程序不再具有主动性,而是变成了被动的接受对象。
这种思想从本质上解决了问题,我们不用管理对象的创建。系统的耦合性大大降低,可以专注于扩展业务的实现。
(IOC原型)
- 控制反转IOC是一种设计思想,DI(依赖注入)是实现IOC的一种方法。没有IOC的程序中我们使用面向对象编程,对象的创建与对象间的依赖关系完全硬编码在程序中,对象创建由程序自己控制,控制反转后将对象创建转移第三方。
- Spring容器在初始化时先读取配置文件,根据配置文件或元数据创建与组织对象存入容器中,程序使用时再从loc容器中取出需要的对象。
- 采用XML方式配置Bean的时候,Bean的定义信息和实现是分离的,而采用注解的方式可以把两者合为一体,Bean的定义信息直接以注解的形式定义在实现类中,从而达到零配置的目的。
- 控制反转是一种通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式,在Spring中实现控制反转的是lic容器,其实现方法是依赖注入。
1.控制:谁来控制对象创建,传统应用程序的对象是由程序本身控制创建的,使用Spring后对象是由Spring来创建的
2.反转:程序本身不创建对象,而变成被动的接收对象
3.依赖注入:用set方法来进行注入
public String getStr(){
return str;
}
4.IOC是一种编程思想,由主动的编程变成被动的接收
5.要实现不同操作,我们只需要在xml配置文件中进行
6.IOC:对象由Spring来创建,管理,装配
public class MyTest {
public static void main(String[] args){
// 获取Spring的上下文对象
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
// 我们的对象现在都在Spring中管理了,我们要使用,直接去里面取出来就可以
Hello hello = (Hello)context.getBean("hello");
System.out.println(hello.toString());
}
五、IOC创建对象的方式
1.使用无参构造创建对象
2.假设要使用有参构造创建对象
(1) 下标赋值
(2) 通过类型创建
(3)通过参数名来设置
3.总结:在配置文件加载的时候,容器中管理的对象就已经初始化了
六、Spring配置1.别名(alias)
如果添加了别名,也可以使用别名获取到这个对象
2.Bean的配置
id: bean的唯一标识符,也就是相当于对象名
class: bean对象所对应的全限定名: 包名 + 类型
name: 也是别名,且name可以取多个别名(用逗号或空格或分号隔开)
3.import
一般用于团队开发,可以将多个配置文件导入合并为一个
不同类需要注册在不同的bean中,我们可以利用import将所有人的beans.xml合并为一个,使用时直接使用总的即可(相同id不会报错,自动选择其中一个)
applicationContext.xml



