目录
一、Spring的介绍
1.1 什么是Spring?
Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。
1.2 Spring能够做什么?
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情, 然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益
目的:解决企业应用开发的复杂性
功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
范围:任何Java应用
二、Spring中IoC的特点
但在Pom.xml中,放入一下代码,目的:将当前项目所用的jar包依赖版本定义在外部,目的在于所有jar包版本进行统一管理
<properties>
<spring.version>5.0.1.RELEASE</spring.version>
<javax.servlet.version>4.0.0</javax.servlet.version>
<junit.version>4.12</junit.version>
</properties>
创建一个接口UserBiz
一个接口必然有一个实现类,创建实现类
UserBizImpl1:
创建Web:
OrderAction:
UserAction:
spring/pom.xml
需要导入jar包依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.javaxl</groupId>
<artifactId>spring</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>spring Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<spring.version>5.0.1.RELEASE</spring.version>
<javax.servlet.version>4.0.0</javax.servlet.version>
<junit.version>4.12</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- 2、导入spring依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 5.1、junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!-- 5.2、servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${javax.servlet.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>spring</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
spring-conctext.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"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<!-- IOC的主要作用管理整个项目的javabean、依靠依赖注入、控制翻转 -->
<bean class="com.zxw.biz.UserBizImpl1" id="userBiz"></bean>
<bean class="com.zxw.web.UserAction" id="userAction">
<property name="userBiz" ref="userBiz"></property>
</bean>
<bean class="com.zxw.web.OrderAction" id="orderAction">
<property name="userBiz" ref="userBiz"></property>
</bean>
</beans>
新建一个demo
demo:
package com.zxw.ioc.demo;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.zxw.web.OrderAction;
import com.zxw.web.UserAction;
/*
* 1.对Spring框架的配置文件进行建模、建模之后, spring-context.xml所有的javabean信息都会加载spring 容器上下文中
* 2.上下文中就包哈了 spring-context.xml 所有对象
*
* IOC的特点 - 什么叫做控制反转
* 指的是将创建对象的权利反转spring容器来完成
*
*/
public class Demo1 {
@SuppressWarnings("resource")
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("/spring-context.xml");
UserAction userAction = (UserAction) context.getBean("userAction");
userAction.list();
OrderAction orderAction = (OrderAction) context.getBean("orderAction");
orderAction.list();
}
}
效果: