spring , springmvc , myBatis , 也就是ssm , springmvc对应的是controller层 ,
myBatis对应的是持久层 , 而spring不属于任何层 , 主要是用来进行层与层之间的解耦 , 来连接
springmvc控制框架和mybatis持久层框架 , 和springmvc同功能的框架还有struts2框架 , 和myBatis同
功能还有hibernate框架 , 如果用的持久层框架是 hibernate那么就是 ssh了 , 控制层和持久层的两个框
架可以任意搭配 .
网上Spring的介绍是致力于全方位的简化Java开发。
为了降低Java开发的复杂性, Spring采取了以下4种关键策略:
基于POJO的轻量级和最小侵入性编程;
通过依赖注入和面向接口实现松耦合;
基于切面和惯例进行声明式编程;
通过切面和模板减少样板式代码。
我理解到的spring是关于它的IOC(控制反转)以及DI(依赖注入) 是什么呢 ,
IOC是spring的两个重要思想之一 , 控制反转 ,
那什么是控制反转呢 , 控制反转就是一种思想 , 这个思想是怎么想的呢 , 就是想把实体类 的生命周期交给spring去控制 , 让spring实现创建 ,实现初始化 , 实现销毁 .
那什么是DI呢 , 如果说IOC是一种思想 , 那么DI 就是这种思想的实现 , DI就是这种思想的实现过程
怎么实现呢 , 把一个类在spring的配置xml文件中通过这个类的路径(反射)来控制类的声明周期 ,
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="com.pojo.User" id ="user" />
</beans>
然后在其他类调用则是获取到这个xml配置文件通过调用方法来获取到id为user的这个bean标签 , 然后获取到这个类 ,
@Test
public void test() {
ApplicationContext ac = new ClassPathXmlApplicationContext(“applicationContext.xml”);
User user = (User) ac.getBean(“user”);
user.say();
}
网上搜到的DI就是 :
DI依赖注入:Dependency Injection。
依赖注入DI是指程序运行过程中,若需要调用另
一个对象协助时,无须在代码中创建被调用者,而是依赖于外部容器,由外部容器创
建后传递给程序。
依赖注入是目前最优秀的解耦方式。依赖注入让Spring的Bean(实体类)之间以配置文件的方式
IOC与DI的关系
IOC是一个概念,是一种思想,其实现方式多种多样。当前比较流行的实现方式之一
是DI。