zoukankan      html  css  js  c++  java
  • 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

     

    转载请注明出处:https://www.cnblogs.com/stu-jyj3621
  • 相关阅读:
    利用VS的预生成事件获取SVN版本作为项目内部版本号
    静态构造函数到底执行了多少次?
    C#之自定义的implicit和explicit转换
    FineUI之使用SQL脚本从数据库表中生成相应的输入控件
    文件操作
    PHP中文件类型 文件属性 路径以及 文件相关的函数
    MySqli 中预处理类 stmt
    MySql 事务处理
    MySqli 执行多条SQL语句
    PHP与MySqli
  • 原文地址:https://www.cnblogs.com/stu-jyj3621/p/14491123.html
Copyright © 2011-2022 走看看