spring-ioc控制反转(理论)
1.spring第一个核心功能 ioc
控制反转(Inversion of Control,缩写为IoC),是一个概念,是一种思想。指将传统上由程序代码直接操控的对象调用权交给容器,通过容器来实现对象的装配和管理。控制反转就是对对象控制权的转移,从程序代码本身反转到了外部容器。通过容器实现对象的创建,属性赋值,依赖的管理。
- IoC(Inversion of Control):控制反转,是一个理论,概念,思想。
- 描述的:把对象的创建,赋值。管理工作都交给代码之外的容器实现,也就是对象的创建是由其他外部资源完成。
- 控制:创建对象,对象的属性赋值,对象之间的关系管理。
- 反转:把原来的开发人员管理,创建对象的权限转移给代码之外的容器实现。由容器代替开发人员管理对象。创建对象,给属性赋值
- 正转:由开发人员在代码中,使用new构造方法创建对象,开发人员主动管理对象。
public static void main(String args[]){
//在代码中,创建对象。--正转
Student student = new Student();
}
- 容器:是一个服务器软件,一个框架(spring)
- 为什么要使用ioc:目的就是减少对代码的改动,也能实现不同的功能。实现解耦合。
2. java中创建对象有哪些方式
1.构造方法,new Student()
2.反射
3.序列化
4.克隆
5.ioc:容器创建对象
6.动态代理
3. ioc的体现:servlet
1.创建类继承HttpServlet
2.在web.xml注册servlet
<servlet-name>RegisterServlet</servlet-name>
<servlet-class>com.putao.controller.RegisterServlet</servlet-class>
3.没有创建Servlet对象,没有MyServlet myServlet = new MyServlrt();
4.servlet是Tomcat服务器它给你创建的。Tomcat也称为容器
Tomcat作为容器:里面存放的有servlet对象,Listener,Filter对象
4.ioc的技术实现
DI是ioc的技术实现
DI(Dependency Injection):依赖注入,只需要在程序中提供要使用的对象的名称就可以了,至于对象如何在容器中创建,赋值,查找都由容器内部实现。
spring是使用的di实现了ioc的功能,spring底层创建对象,使用的是反射机制。
spring是一个容器,管理对象,给属性赋值,底层是反射创建对象。
spring-context 和 spring-webmvc是spring中的两个模块
spring-context:是ioc功能的,创建对象的。
spring-webmvc:做web开发使用的,是servlet的升级
spring-webmvc中也会用到spring-context中创建对象的功能的。
5.Junit:单元测试
一个工具类库,做测试方法使用的。
单元:指定的是方法,一个类中有很多方法,一个方法称为单元。
使用单元测试:
- 1.需要加入Junit依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
- 2.创建测试作用的类:叫做测试类
src/test/java目录中创建类 - 3.创建测试方法
1)public方法
2)没有返回值 void
3)方法名称自定义,建议名称是test+你要测试方法名称
4)方法没有参数
5)方法的上面加入@Test,这样的方法是可以单独执行的。不用使用main方法。