spring-ioc

Ioc(Inversion of Control):控制反转,是一个理论、概念、思想。把一个对象的创建、赋值、管理工作都交给代码之外的容器实现,也就是对象的创建是有其他外部资源完成。

控制:创建对象,对象的属性赋值,对象之间的关系管理。

反转:把原来的开发人员管理、创建对象的权限转移给代码之外的容器实现。由容器代替开发人员管理对象、创建对象,给属性赋值。

正转:有开发人员在代码中用new的构造方式创建对象,开发人员主动管理对象。

容器:是一个服务器软件,一个框架(spring)。

为什么要使用ioc:目的是减少对代码的改动,也能实现不同的功能,实现解耦合。

java中创建对象有哪些方式:

1、构造方式,new student()

2、反射

3、序列化

4、克隆

5、ioc:容器创建对象

6、动态代理

ioc的体现:

servlet  

1、创建类继承HttpServlet

2、在web.xml注册servlet,使用<servlet-name>XXX</servlet-name>

              <servlet-class>XXX</servlet-class>

3、没有创建Servlet对象,没有xxx=new XXX();

4、Servlet是Tomcat服务器创建的,Tomcat也称为容器,里面有Servlet对象,Listener,Filter对象

ioc的技术实现

DI是ioc的技术实现,

DI(Dependency Injection):依赖注入,只需要在程序汇总提供要使用的对象名称就可以,至于对象如何在容器中创建、赋值、查找都由容器内部实现。

spring是使用的di实现了ioc的功能,spring底层创建对象,使用的是反射机制。

spring是一个容器,管理对象,给属性赋值,底层是反射创建对象。

juint:单元测试,一个工具类,做测试方法使用的。

单元:指定的是方法,一个类中有很多方法,一个方法称为单元。

使用单元测试

1、需要加入juint依赖

<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方法。

----------------------------------------------------------------------------------------------------------------------------------------------------------

1、多个配置优势

1)每个文件的大小笔一个文件要小很多。效率高

2)避免多人竞争带来的冲突。

如果你的项目有多个模块(相关的功能在一起),一个模块一个配置文件。

学生考勤一个配置文件

学生成绩一个配置文件

多文件的分配方式:

1)按功能模块:一个功能一个配置文件

2)按类的功能,数据库相关的配置一个配置文件,做事务功能的一个配置文件,做service功能的一个配置文件等。

2、基于注解的di:通过注解完成java对象创建和属性赋值

使用注解的步骤:

1、加入maven的依赖spring-context,在你加入spring-context的同时,间接加入spring-aop的依赖,注解必须使用spring-aop的注解

2、在类中加入spring的注解(多个不同功能的注解)

3、在spring的配置文件中,加入一个组件扫描器的标签<context:component-scan base-package="包名">,说明注解在你的项目中的位置。

学习的注解

1、@Component,创建对象

2、@Respotory,创建dao对象,用来访问数据库的

3、@Service,创建service对象,处理业务逻辑的,可以有事务功能

4、@Controller,创建控制器对象的,接受请求,显示处理结果的

5、@Value,简单类型属性的赋值

6、@Autowired,spring框架中应用类型的赋值注解,支持byName、byType,默认是byType

7、@Resource,jdk中的注解,使用自动注入给引用类型赋值,支持byName,byType,默认是byName

 

posted @ 2021-03-06 16:12  我等着你  阅读(53)  评论(0编辑  收藏  举报