DAY04-Sping01

作者: 建国同学 | 来源:发表于2020-04-27 10:43 被阅读0次

    一、Spring介绍

    • Spring 是一个轻量级的 IoC 、 DI和 AOP 容器的开源框架
    • Spring是一个能帮你创建对象,设置对象属性的,可存放这些对象的容器框架

    Spring在JavaEE开发中作用

    image.png

    Spring优势

    • Spring 除了不能帮我们写业务逻辑,其余的几乎什么都能帮助我们简化开发。

    Spring 能帮我们低侵入/低耦合地根据配置文件创建及组装对象之间的依赖关系。
    Spring 面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制等。
    Spring 能非常简单的且强大的声明式事务管理。
    Spring 提供了与第三方数据访问框架(如Hibernate、JPA)无缝集成,且自己也提供了一套 JDBC 模板来方便数据库访问。
    Spring 提供与第三方 Web(如 Struts1/2、JSF)框架无缝集成,且自己也提供了一套 Spring MVC 框架,来方便 Web 层搭建。
    Spring 能方便的与如 Java Mail、任务调度、缓存框架等技术整合,降低开发难度。

    二、 IoC和DI思想

    IoC :Inversion of Control(控制反转)

    不是什么技术,而是一种设计思想,就是将原本在程序中手动创建对象的控制权,交由 IoC 容器来管理。(不需要自己手动创建对象,设置对象属性值)

    IoC

    DI:Dependency Injection:依赖注入

    image.png

    指IoC容器创建对象的过程中,将对象依赖属性(常量,对象)通过配置设值给该对象。
    其类必须提供对应 setter 方法

    • 注入常量:<property name="对象属性名称" value="需要注入的值"/>


      image.png

      Spring帮我们做类型转换,但前提是能转换,不能会报错的。

    • 注入bean:<property name="对象属性名称" ref="容器另外一个bean的id值" />


      image.png

    三、 使用Spring IoC

    • 添加依赖
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.0.8.RELEASE</version>
    </dependency>
    
    • 根据需求编写类
    • 通过配置告诉Spring来管理对象
    <!-- 
                配置数据库连接池对象才配置初始化与销毁化方法
                若发现类名是以FactoryBean 结尾,注意创建对象类型
                属性名必须对应是 setter 方法
     -->
    <bean id="唯一性" class="类全限定名" [init-method="初始方法" destroy-method="销毁方法" scope="作用域,singleton:单例 (缺省),prototype:多例"] > 
          <property name="属性名" value="属性值" | ref="容器中另外一个bean的 id 值">
                ........
    </bean>
    底层利用全限定名进行反射创建对象,利用内省机制给属性赋值
    
    • 启动容器获取对象
      使用Spring测试启动容器
    1. 添加依赖
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>5.0.8.RELEASE</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.0.8.RELEASE</version>
    </dependency>
    
    1. 贴注解
      @RunWith(SpringJUnit4ClassRunner.class) //在测试方法之前启动容器
      @ContextConfiguration(" classpath:Spring配置文件") //指定加载的配置文件
      @Autowired //贴字段上字段类型就是从容器中获取的对象的类型
      @ContextConfiguration,则去测试类的路径找测试类名-context.xml 配置文件,如:PersonTest-context.xml。(路径需相同)


      image.png

    相关文章

      网友评论

        本文标题:DAY04-Sping01

        本文链接:https://www.haomeiwen.com/subject/uggewhtx.html