开发者学堂课程【Java Web 开发系列课程:Spring 框架入门:02_spring_ioc】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/538/detail/7334
02_spring_ioc
内容介绍:
一、hello spring
二、思考问题
一、hello spring
Ioc 功能实现怎么执行?
spring 的核心的功能就是 ioc 功能。
在 Java 软件里新建一个 Java Project,Project name 为 02spring4_hello。
创建新的
file,导入相关
jar
包
commons-logging-1.1.1.jar
spring-aop-4.1.6.RELEASE.jar
spring
-
aspects-4.1.6.RELEASE.jar
spring-beans-4.1.6.RELEASE.jar
spring
-
context-4.1.6.RELEASE.jar
spring
-
context
-
support-4.1.6.RELEASE.jar
spring-core-4.1.6.RELEASE.jar
spring-expression-4.1.6.RELEASE.jar
spring-jdbc
-
4.1.6.RELEASE.jar
spring-orm-4.1.6.RELEASE.jar
spring-tx-4.1.6.RELEASE.jar
spring-web-4.1.6.RELEASE.jar
spring-webmvc-4.1.6.RELEASE.jar
编写spring配置文件(名称可以自定义)
Hello
java:
public class Hello {
private String name;
public void setName
(String name) {
this.name = name;
}
public void show
(
)
{
System. out . println("hello,"+name);
}
}
新建一个file,取名为beans.xml:
xmlns= "http://www. springframework.org/schema/beans
xmlns:xsi="http://www.w3.org/2001/XML Schema-instance
xsi:schemalocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
value= "张三"/>
< /beans>
测试代码
public class Test {
public static void main(String[] args) {
//解析 beans.xml 文件 生成管理相应的 bean 对象
ApplicationContext context = new
ClassPathXmlApplicationContext("beans .xm
l
");
Hello hello = (Hello)context. getBean("hello");
hello. Show
(
) ;
}
}
二、思考问题
Hello 对象是谁创建的?
Hello 对象是由 spring 容器创建的。可以写很多个 bean,称为 bean 工厂,以前要创建很多个对象,现在对象都交由 spring 创建。
Hello 对象属性是怎么设置的?
Hello 对象属性是由 spring 容器来设置的。
这个过程就叫控制反转:
控制的内容:指谁来控制对象的创建;传统的应用程序对象的创建是由程序本身来控制的,使用 spring 后,是由 spring 来创建对象的。
反转:正转是指程序来创建对象,反转是指程序本身不去创建对象,而变为被动接收对象。 总结:以前对象是由程序本身来创建,使用 spring 后,程序变为被动接受 spring 创建好的对象。
控制反转——依赖注入(dependency injection),service 依赖于 dao,hello 依赖于 name,name 是用容器给他的,这个过程为依赖注入。