一.、什么是spring,它能够做什么?
Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
目的:解决企业应用开发的复杂性
功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
范围:任何Java应用
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
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"
default-autowire="byName"
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的用途 -->
<bean class="com.spring.ioc.biz.impl.UserBizImpl" id="userBiz"></bean>
<bean class="com.spring.ioc.biz.impl.UserBizImpl2" id="userBiz2"></bean>
<bean class="com.spring.action.UserAction" id="userAction">
<property name="userBiz" ref="userBiz"></property>
</bean>
<bean class="com.spring.action.TeaAction" id="teaAction">
<property name="userBiz" ref="userBiz2"></property>
</bean>
</beans>
UserBizImpl
package com.spring.ioc.biz.impl;
import com.spring.ioc.biz.UserBiz;
/**
* 模拟做项目实现某一项功能
* @author LeiFengJun
*
*/
public class UserBizImpl implements UserBiz {
public void doSomething() {
System.out.println("方法实现一:只为完成功能,不考虑性能");
// System.out.println("系统升级,性能更优");
}
}
UserBizImpl2
package com.spring.ioc.biz.impl;
import com.spring.ioc.biz.UserBiz;
/**
* 模拟做项目实现某一项功能
* @author LeiFengJun
*
*/
public class UserBizImpl2 implements UserBiz {
public void doSomething() {
System.out.println("系统升级,性能更优");
}
}
UserBiz
package com.spring.ioc.biz;
public interface UserBiz {
public void doSomething();
}
测试类
package com.spring.ioc.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.spring.action.ClzAction;
import com.spring.action.StudentAction;
import com.spring.action.TeaAction;
import com.spring.action.UserAction;
public class IocTest {
public static void main(String[] args) {
//通过建模获取spring的上下文,获取到了工程中的所有类
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-context.xml");
UserAction userAction = (UserAction) applicationContext.getBean("userAction");
userAction.aaa();
TeaAction teaAction = (TeaAction) applicationContext.getBean("teaAction");
teaAction.aaa();
}
}
打印出来的结果为:
方法实现一:只为完成功能,不考虑性能
系统升级,性能更优