目的:解决企业级应用开发的复杂性
理念:使现有技术更容易使用
优点:
- 开源免费
- 轻量级(本身很小),非入侵式(使用他不会改变原有代码)的框架
- 控制反转(IOC),面向切面(AOP)
- 支持事务,对框架整合的支持
**总结:**一个轻量级的控制翻转和面向切面编程的框架
IOC:
- 控制翻转:是一种通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式,DI(依赖注入)是实现它的方法
- 使用Set()注入后,程序不在具有主动性,它只能被动的接受对象
3.从本质上解决了问题,程序员不在去管理对象的创建,系统耦合性大大降低,可以更加专注与业务的实现
具体实现
1.配置文件
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="hello" class="com.liye.pijo.Hello">
<property name="str" value="Spring"/>
</bean>
</beans>
2.实现的类
public class Hello {
private String str;
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
@Override
public String toString() {
return "Hello{" +
"str='" + str + '\'' +
'}';
}
}
3.测试
public class MyTest {
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml");
Hello hello= (Hello) context.getBean("hello");
System.out.println(hello.toString());
}
}
4.运行结果
Hello{str='Spring'}
IOC:对象由Spring来创建,管理和装配;