shuiluobu 2020-03-07
官网:https://spring.io/projects/spring-framework
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.3.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.2.3.RELEASE</version> </dependency>
总结:Spring就是一个轻量级的控制反转和面向切面编程的框架
组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:
BeanFactory
,它是工厂模式的实现。BeanFactory
使用控制反转(IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。弊端:发展了太多之后,违背了原来的理念!配置十分繁琐,人称:"配置地狱"
用户不同的需求可能会导致我们不断的修改源码,会存在成本问题
可以使用Set接口实现,让用户自己调用,选择
@Data public class UserServiceImpl implements UserService { // private UserDao userDao = new UserDaoMysqlImpl(); private UserDao userDao; public void getUser() { userDao.getUser(); } }
这种思想,本质上解决问题!系统耦合度大大降低,可以更加专注在业务的实现上!
控制反转IOC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IOC的一种方法,
控制反转后将对象交第三方,控制反转就是:获得依赖对象的方式反转了。
采用XML方式配置Bean的时候,Bean的定义信息是和实现分离的,而采用注解的方式可以把两者合为一体,Bean的定义信息直接以注解的形式定义在实现类中,从而达到了零配置的目的。
控制反转是一种通过描述(XML或注解)并通过第三方去生产或获取特点对象的方式。在Spring中实现控制反转的是IOC容器,而实现的方法是依赖注入(Dependency Injection DI)