1、spring简介
Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring的一个最大的目的就是使JAVA EE开发更加容易.
同时,Spring致力于提供一个以统一的、高效的方式构造整个应用,并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。可以说Spring是一个提供了更完善开发环境的一个框架,可以为POJO(Plain Old Java Object)对象提供企业级的服务.
Spring为简化企业级应用开发而生,使用Spring可以使简单的javaBean实现以前只有EJB才能实现的功能。
看了这张图片是不是觉得头大?这是spring框架的模块图。而真正学习spring框架,从特性方面入手比较好一些。
2、搭建spring开发环境
现在我们要着手搭建一个spring的开发环境,第一步,我们要找齐所需的jar包
这里面包括了两个有关消息的jar包,4个spring功能jar包,如果你eclipse配置有maven插件,使用maven配置spring的开发环境会更加简单。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
如果你有maven插件的话,将上面一段话引入pom.xml就完成了spring-boot的引入。接下来,还要配置spring的配置文件。 新建一个xml文件,将以下上下文引入,spring的开发环境就配置好了 ```xml <?xml version="1.0" encoding="UTF-8"?> ```
3.IOC(DI)
IOC全称Inversion of Control,就是控制反转,这是spring的基本思想之一。它的基本概念是控制权反转。之前我们创建对象同常通过关键字new运行构造方法来创建一个新对象,然而现在,我们要把创建对象这个过程交给spring的beanFactory来实现。 IBM中这样描述IOC:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器 (在 Spring 框架中是 IOC 容器) 负责将这些联系在一起。 下面我们需要来手写一个例子,在刚才新建的xml文件中,我们可以通过bean节点来配置实体bean.<bean id="apple" class="com.zzxt.spring.ioc.Apple"></bean>
<bean id="Orange" class="com.zzxt.spring.ioc.Orange"></bean>
其中,bean属性的id在IOC容器中必须是唯一的,如果没有指定,spring将自动定性类名作为bean的名字。我们可将业务bean注入到IOC中,这样会使日后的更新变得方便。 注入之后,我们可以编写一个测试类看一看是否成功注入
package com.zzxt.spring.ioc;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.zzxt.spring.ioc.bean.Apple;
public class TestIOC {
private ApplicationContext ioc;
@Before
public void initIoc() {
ioc = new ClassPathXmlApplicationContext("applicationContext.xml");
System.out.println("IOC 容器初始化完成!!!");
}
@Test
public void testIoc() {
Apple apple = ioc.getBean("apple", Apple.class);
apple.tasted();
}
}
可以在实体bean Apple的tasted(吃)方法中写点内容,比如一句输出,看是否能执行,如果能执行,说明注入和之前的配置成功了。