1、什么是spring?
Spring是分层的 Java SE/EE应用full-stack轻量级开源框架,以IoC(Inversion of Control:反转控制)和AOP( Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Spring MVC和持久层 Spring JDBC以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的 Java EE企业应用开源框架。
spring 使现有的技术更容易使用,整合了现有的技术框架。
官网地址:https://spring.io/projects/spring-framework
版本地址:
GItHub地址:https://github.com/spring-projects%E3%80%82
优点特点:开源框架,轻量级,非入侵式,控制反转(IoC),面向切面编程(AOP),支持事务处理,支持框架整合。
缺点:整合多,导致配置繁琐。
2、框架体系结构
IOC理论思想:
控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则, 可以用来减低计算机代码之间的耦合度。
其中最常见实现方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。
通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。
业务层根据用户的输入,程序员控制业务逻辑分析用户输入,对对象进行创建调用。
转变为(控制反转操作)
业务层根据用户输入自动的控制业务对对象进行选择调用。(对象都存储在IOC容器中)
这样子对象就由spring来创建,管理,装配。我们只需要修改配置,不修改程序,就可以实现对对象的不同操作。配置:使用配置文件.XML;使用注解;
依赖注入DI:@Autowired注解属性注入,本质利用set方法进行动态注入。
依赖注入方法(Dependency Injection,简称DI):
1. 构造函数注入(Constructor Injection):通过构造函数将依赖项注入到对象中。在构造函数中,将依赖项作为参数传入,然后在对象被创建时将其保存在成员变量中。
2. 设值注入(Setter Injection):通过对象的setter方法来注入依赖项。这种方式允许在对象创建后动态地改变依赖项。
3. 接口注入(Interface Injection):通过接口来定义需要注入的依赖项,实现类必须实现这些接口,并由外部容器负责注入依赖项。
4. 注解注入(Annotation injection):@Autowired注解将依赖项注入到对象中。
Dao层使用do层(通过Mybatis映射对象,DicValue是do层实体)
Service层(实现)使用Dao层(接口)
@Autowired
private UserMapper userMapper;
Controller层(实现)使用Service层(接口)
@Autowired
private UserService userService;