搭建Spring环境,开发第一个Spring IOC程序

Spring 模块的介绍

1、核心模块( CoreContainer )

Spring核心模块包含有Core、Beans、 Context和Expression Language四个小模块。

其中, Core和Beans是整个Spring框架基础部分,也是Spring的核心依赖注入IoC与DI的最
基本实现, Spring的其他模块大多依赖这两个功能。

  • spring-core :其他模块的基础核心,包含Spring框架的核心工类, Spring其他模块都要
    使用该包里面的类。
  • spring-beans : Spring定义bean的支持,负责访问配置文件、创建和管理bean ,支持依赖
    注入和控制反转的相关操作。传说中的bean工厂类就在这个jar包中。
  • spring-context : spring运行时容器,在Core和Beans的基础上,提供对Spring的上下文
    支持, ApplicationContext是该包的关键,通过它,可以方便快捷的取出依赖注入的Bean。
  • spring-expression : spring表达式语言,帮助Spring在运行时查询和操作对象。支持设置
    /获取对象的属性值,方法的调用。

2、AOP模块

  • spring-aop :对于代理AOP的支持
  • spring-Aspects :对于Aspect的AOP支持

3、Web模块

  • spring-web :提供基础的web功能,在Web项目中提供Spring的容器
  • spring-webmvc :提供基于Servlet的SpringMVC
  • Spring-WebSocket :提供WebSocket功能
  • spring-webmvc-portlet :提供portlet的支持

4 :数据库模块

  • spring-jdbc :提供jdbc访问数据库的支持,包含了Srping对数据库访问操
    作进行封装的所有类,它提供了一个JDBC的抽象层,从而实现对其他厂商的
    支持。
  • spring-tx :提供对事物的支持
  • spring-orm :提供对象关系映射的支持,使得Spring可以方便的整合其他
    第三方ORM库如JAP、Mybatis、 Hibernate等
  • spring-oxm :提供对象xmI映射支持
  • spring-jms :提供对java消息服务的支持

搭建Spring环境

下载所需的jar包

https://maven.springframework.org/release/org/springframework/spring/4.3.9.RELEASE/
在这里插入图片描述

Jar 包文件目录的说明

  • docs文件夹:包含API文档和开发规范
  • libs:包含jar包和源码
  • 以.RELEASE.jar结尾的是class文件jar包
  • 以.RELEASE-javadoc.jar结尾的是API文档压缩包
  • 以.RELEASE-sources.jar结尾的是源文件压缩包

解压后拿出下面5个jar包

在这里插入图片描述

开发spring至少需要使用的jar(5+1)

spring-aop.jar 开发AOP特性
spring-beans.jar 处理Bean
spring-context.jar 处理spring上下文
spring-core.jar spring核心
spring-expression.jar spring表达式
第三方提供的日志jar

下载日志jar

commons-logging.jar

https://mvnrepository.com/artifact/commons-logging/commons-logging/1.1.1

在这里插入图片描述

开发工具的选择

  • 使用eclipse EE
    需下载安装eclipse支持spring的插件:spring tool suite
    (代码提示,自动生成配置信息等)

  • 使用 STS
    下载安装集成了spring tools 的 STS
    https://spring.io/tools3/sts/all

开发第一个spring程序(IOC)

  • 新建Java Project
  • 将(5+1)jar包配置到项目中去
  • 新建bean configuration…
    FileName:applicationContext.xml
    在这里插入图片描述
  • 写一个学生类
//Student.java
public class Student {
	private int stuNO;
	private String stuName;
	private int stuAge;
	
	public int getStuNO() {
		return stuNO;
	}
	public void setStuNO(int stuNO) {
		this.stuNO = stuNO;
	}
	public String getStuName() {
		return stuName;
	}
	public void setStuName(String stuName) {
		this.stuName = stuName;
	}
	public int getStuAge() {
		return stuAge;
	}
	public void setStuAge(int stuAge) {
		this.stuAge = stuAge;
	}
	@Override
	public String toString() {
		return "Student [getStuNO()=" + getStuNO() + ", getStuName()=" + getStuName() + ", getStuAge()=" + getStuAge()
				+ "]";
	}
  • 编写配置文件applicationContext.xml(将学生类放进SpringIOC容器中)
//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">

	<!-- 该文件中产生的所有对象,被spring放入了额一个spring ioc 容器的地方 -->
	<!-- id:唯一标识符  class:指定类型 -->
	<!-- property:class所代表的类的属性
		name:属性名
		value:属性值
	-->
	
	<bean id="student" class="cust.zaw.entity.Student">
		<property name="stuNO" value="2"></property>
		<property name="stuName" value="lc"></property>
		<property name="stuAge" value="24"></property>
	</bean>
</beans>
  • 写主函数
public class Test {

public static void main(String[] args) {

		//之前的方式
		/*
		Student student = new Student();
		student.setStuNO(1);
		student.setStuAge(23);
		student.setStuName("zs");
		System.out.println(student);
		*/
		
		//spring的方式
		//spring上下文对象:context
		//获取配置文件
		ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
		
		//执行从springIOC容器中获取一个id为student的对象
		
		Student student=(Student)context.getBean("student");
		System.out.println(student);
		
		//1.new
		//2.对象属性的复制
}
}
  • 点击运行

  • 备注:
    SpringIOC容器,帮我们new了对象,并且给对象赋值
    SpringIOC容器(超级工厂)
    可以存放任何对象

  • IOC 控制反转:(依赖注入:DI)
    反转的是:获取对象的方式

之前:Student student=new Student();
现在:getBean(“student”);
(直接从SpringIOC容器中获取applicationContext.xml)

  • 总结:无论什么对象,都可以直接去SpringIoc容器中获取,而不需要自己操作

IOC分两步:

  • 1.先给SpringIoc中存放对象并赋值
<bean id="student" class="cust.zaw.entity.Student">
		<property name="stuNO" value="2"></property>
		<property name="stuName" value="lc"></property>
		<property name="stuAge" value="24"></property>
</bean>
  • 2.从IOC容器中获取对象
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
		ICourse course=(ICourse)context.getBean(name);
  • 有S的表示已放进Spring IOC容器
    在这里插入图片描述
  • IOC 容器赋值:
    简单类型,value=“”
    对象类型(当一个类中有其他类 类型,为其赋值时使用),ref=“需要引用的id值”
    实现了 对象与对象之间的依赖关系

在这里插入图片描述

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页