Spring框架[一]——spring概念和ioc入门(ioc操作xml配置文件)

Posted 灰太郎^_^

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring框架[一]——spring概念和ioc入门(ioc操作xml配置文件)相关的知识,希望对你有一定的参考价值。

Spring概念

  • spring是开源的轻量级框架(即不需要依赖其他东西,可用直接使用)

spring核心主要两部分

  • aop:面向切面编程,扩展功能不是修改源代码来实现;
  • ioc:控制反转,比如:有一个类,在类中有个方法(非静态的方法),要调用类中的这个方法,则需要创建类的对象,使用对象调用方法。创建类对象的过程,需要new出来对象;而ioc则是将对象的创建不是通过new方式实现,而是交给spring配置来创建对象(即,将对象的创建交给spring来管理);

spring是一站式框架

  • spring在javaee三层结构中,每一层都提供不同的解决技术
    • web层:springMVC
    • service层:spring的ioc
    • dao层:spring的jdbcTemplate

spring版本

  • hibernate5.x
  • spring4.x

Spring入门

Spring的ioc操作

  • 即:把对象的创建交给spring进行管理
  • ioc两种操作方式:
    • ioc的配置文件方式
    • ioc的注解方式

IOC底层原理

  • ioc底层原理使用的技术
    • xml配置文件
    • dome4j解析xml
    • 工厂设计模式
    • 反射
  • 画图分析ioc实现原理
     

IOC入门案例

  • 步骤:
    • 导入jar包
      • 解压下载的spring-framework-4.2.4.RELEASE.zip文件,jar包特点:都有三个jar包(基本jar、文档jar、源码jar);
      • 做spring基本功能,只需导入四个核心点jar包即可(Beans、core、Context、SpEL);
      • 导入支持日志输出的jar包-logging、log4j(因为spring本身没有提供这种jar包);
    • 创建类,在类中创建方法
      package cn.cbb.ioc;
      
      public class User {
      
          public void add() {
              System.out.println("add ...");
          }
          
          public static void main(String[] args) {
              /**
               * 调用类中的方法,原始做法是创建类对象,用对象调用方法;而现在则不再这样做了,
               * 而是将对象的创建过程交给spring来配置实现,但是底层用的肯定是反射,我们不需
               * 要写反射代码,由spring代我们做此操作
               */
              User user = new User();
              user.add();
          }
      }
    • 创建spring配置文件,配置创建类
      • spring核心配置文件名称和位置不是固定的,建议放在src下面,官方建议applicationContext.xml
      • 引入schema约束
      • 配置对象创建,配置如下:
        <?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">
        
            <!-- ioc入门,配置对象的创建 -->
            <bean id="user" class="cn.cbb.ioc.User"></bean>
        </beans>
    • 写代码测试对象创建:
      package cn.cbb.ioc;
      
      import org.junit.Test;
      import org.springframework.context.ApplicationContext;
      import org.springframework.context.support.ClassPathXmlApplicationContext;
      
      public class IOCTest {
      
          @Test
          public void IOCTest() {
              //1、加载spring配置文件,根据配置创建对象
              ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
              //2、得到配置创建的对象
              User user = (User) context.getBean("user");
              System.out.println(user);
              user.add();
          }
      }

配置文件无提示问题

Spring引入schema约束,把约束文件引入到eclipse中,以便配置文件编写提示:

spring的bean管理(xml配置文件)

bean实例化三种方式