Spring框架初始

                                        Spring--第一天

Spring框架简介

1.认识框架

 spring框架都包含在spring-framework-4.1.6.RELEASE-dist.jar的包中,对它进行解压得到三个文档:

  1.   docs文档(spring框架的帮助文档,包括api和官方文档说明)   
  2. libs文档(各种jar包,java框架的主要组成)
  3. schema文档 (是各种.xsd文件,.xsd文件是DTD(xml的语法检查器)的升级版,它主要用在spring框架的配置文件(applicationcontext文件)中)             

          3.1 xml语法检查器:用来快速编程,给你提示补全等

          3.2扩展性:每次引入一个.xsd文件,就引入了一个xml命名空间(xmlns),比DTD更简洁一点。

从docs的官方文档说明中知道:

spring框架由以下几个组成,

1.最底层的test,是spring提供的测试用的

2.然后Core  Comtainer核心容器,指spring框架的最基本的组成,也就是我们如果想用spring框架必须要引入Beans,Core ,Cntext,SpEl.这四个jar包。

    Beans:对象容器。

    Core:spring核心

    Context:上下文对象

    SpEl:spring的表达式

上面两层是它的其他功能,都对应的相应的jar包,如使用AOP技术需要先引入spring-aop-4.1.6.RELEASE.jar包

 2.Spring框架的功能和作用

   spring的最主要功能包括:

  1. IOC/DI:控制反转/依赖注入(总结:就是用一个容器,来管理我们需要实例化的所有对象)
  2. AOP:面向切面编程(为了解决现在的纵向编程的问题,引入了横向编程,在一个方法(切点)之前需要实现的功能(前置通知),在方法之后需要实现的功能(后置通知),所以它简化了主要业务的繁琐程度,使业务代码需要执行的功能更加转一,它的底层实现是代理设计模式,而且是动态代理,因为代理模式(明星-经纪人)恰好也是能使明星更加专心演出,无需思考它的生活方面,行程方面的问题)
  3. 声明式事务:它是基于通知的,它改变了aop的一些结构(通知--->切点)变为了·(通知——>事务——>切点),这里的事务通常是数据库的回滚,提交。而数据库的数据插入,成功就保存,失败就回滚,刚好符合aop的横向编程,所以spring框架帮我们写好了事务处理模块,我们只需要声明在哪个方法上调用。

3.spring框架的搭建

         1.导入jar包(最少5个),除了上面提到的四个核心包之外,还要导入一个commons-logging-1.1.3.jar日志包

         2.src 下新建 applicationContext.xml。

<?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">
  <!-- id表示获取到对象标识
    	 class 创建哪个类的对象
     -->
    <bean id="peo" class="com.pojo.People"/>
</beans>

         3.编写测试方法

package com.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.pojo.People;


public class Test {
	public static void main(String[] args) {
//		People peo = new People();
		ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
		People people = ac.getBean("peo",People.class);
		System.out.println(people);
		
//		String[] names = ac.getBeanDefinitionNames();
//		for (String string : names) {
//			System.out.println(string);
//		}
	}
}

4.IOC/DI 

看了各种文档,帖子,然而越看越抽象,个人觉得,就是在类与类之间加了一个容器,这个容器来创建和管理类的对象。通过这个容器实现了解耦。解程序员和类之间的耦。没有这个容器时,一个类引用另一个类的对象,需要通过new来实例化另一个类的对象。有了这个容器之后,我们通过配置文件applicationcontext文件来在容器中创建对象,一个类引用另一个类的对象时,我们不需要实例化对象,只是从容器中得到对象。

5.spring中创建对象的三种方式

        1.通过构造方法创建

              无参构造

             有参构造

        2.实例工厂

            

        3.静态工厂

5. Bean属性赋值

      1.通过构造方法设值

      2.设值注入(通过类中属性的set方法)

6.IOC和DI

    IOC和DI是一样的。

    IOC:控制反转,是指把原来程序员写代码创建和管理对象的任务交给了Bean容器

    DI:依赖注入,是指当一个类中需要另一个类的对象时,把另一个类的对象赋值给A的过程

          

发布了14 篇原创文章 · 获赞 8 · 访问量 4731

猜你喜欢

转载自blog.csdn.net/qq_41223538/article/details/103948137